# Guide de Mise Ă  Jour - Formation Manager Itinova ## 📋 Vue d'ensemble Ce guide explique comment mettre Ă  jour l'application Formation Manager Itinova sur votre serveur VPS. ## ⚠ Avant de commencer ### PrĂ©requis - AccĂšs SSH au serveur VPS - Droits sudo/root - L'application doit ĂȘtre dĂ©jĂ  installĂ©e et fonctionnelle - Connexion Ă  la base de donnĂ©es MySQL/TiDB ### Informations importantes - **Temps d'arrĂȘt estimĂ©**: 5-10 minutes - **Sauvegarde automatique**: Oui (10 derniĂšres sauvegardes conservĂ©es) - **Rollback possible**: Oui (via les sauvegardes) ## 🚀 MĂ©thode 1: Mise Ă  jour automatique (RecommandĂ©e) ### Étape 1: TĂ©lĂ©charger les fichiers de mise Ă  jour TĂ©lĂ©chargez le package de mise Ă  jour depuis Manus et transfĂ©rez-le sur votre serveur: ```bash # Sur votre machine locale scp formation-manager-update.tar.gz user@votre-serveur:/tmp/ # Ou utilisez SFTP/WinSCP pour transfĂ©rer le fichier ``` ### Étape 2: Extraire le package ```bash # Se connecter au serveur ssh user@votre-serveur # Extraire le package cd /tmp tar -xzf formation-manager-update.tar.gz cd formation-manager-itinova ``` ### Étape 3: Rendre les scripts exĂ©cutables ```bash chmod +x deployment-scripts/*.sh ``` ### Étape 4: Lancer la mise Ă  jour ```bash sudo ./deployment-scripts/update-app.sh ``` Le script va automatiquement: 1. ✅ CrĂ©er une sauvegarde complĂšte 2. ✅ ArrĂȘter le service 3. ✅ Sauvegarder la configuration (.env) 4. ✅ Copier les nouveaux fichiers 5. ✅ Restaurer la configuration 6. ✅ Installer les dĂ©pendances 7. ✅ Appliquer les migrations de base de donnĂ©es 8. ✅ Construire l'application 9. ✅ RedĂ©marrer le service ### Étape 5: VĂ©rifier le bon fonctionnement ```bash # VĂ©rifier le statut du service sudo systemctl status formation-manager-itinova # Voir les logs en temps rĂ©el sudo journalctl -u formation-manager-itinova -f # Tester l'application dans le navigateur # Ouvrir: http://votre-domaine.com ``` ## 🔧 MĂ©thode 2: Mise Ă  jour manuelle Si vous prĂ©fĂ©rez contrĂŽler chaque Ă©tape: ### 1. CrĂ©er une sauvegarde ```bash sudo ./deployment-scripts/backup-before-update.sh ``` ### 2. ArrĂȘter le service ```bash sudo systemctl stop formation-manager-itinova ``` ### 3. Sauvegarder la configuration ```bash sudo cp /var/www/formation-manager-itinova/.env /tmp/.env.backup ``` ### 4. Copier les nouveaux fichiers ```bash cd /var/www/formation-manager-itinova sudo find . -mindepth 1 -maxdepth 1 ! -name '.env' ! -name 'node_modules' -exec rm -rf {} + sudo cp -r /tmp/formation-manager-itinova/* . ``` ### 5. Restaurer la configuration ```bash sudo cp /tmp/.env.backup /var/www/formation-manager-itinova/.env ``` ### 6. Installer les dĂ©pendances ```bash cd /var/www/formation-manager-itinova sudo pnpm install --prod ``` ### 7. Appliquer les migrations ```bash sudo pnpm db:push ``` ### 8. RedĂ©marrer le service ```bash sudo systemctl start formation-manager-itinova sudo systemctl status formation-manager-itinova ``` ## 🔄 Restauration d'une sauvegarde (Rollback) Si la mise Ă  jour pose problĂšme, vous pouvez restaurer une sauvegarde: ### 1. Lister les sauvegardes disponibles ```bash ls -lh /var/backups/formation-manager-itinova/ ``` ### 2. Choisir une sauvegarde ```bash # Exemple: backup_20240119_143022 BACKUP_DIR="/var/backups/formation-manager-itinova/backup_20240119_143022" ``` ### 3. ArrĂȘter le service ```bash sudo systemctl stop formation-manager-itinova ``` ### 4. Restaurer les fichiers ```bash cd /var/www/formation-manager-itinova sudo rm -rf * sudo tar -xzf $BACKUP_DIR/app_files.tar.gz -C . ``` ### 5. Restaurer la configuration ```bash sudo cp $BACKUP_DIR/.env.backup /var/www/formation-manager-itinova/.env ``` ### 6. Restaurer la base de donnĂ©es (optionnel) ```bash # Extraire le dump SQL gunzip -c $BACKUP_DIR/database.sql.gz > /tmp/restore.sql # Restaurer dans MySQL mysql -h HOST -u USER -p DATABASE < /tmp/restore.sql # Nettoyer rm /tmp/restore.sql ``` ### 7. RedĂ©marrer le service ```bash sudo systemctl start formation-manager-itinova sudo systemctl status formation-manager-itinova ``` ## 📝 NouveautĂ©s de cette version ### Corrections de bugs - ✅ **DĂ©calage horaire**: Les heures s'affichent maintenant correctement dans le formulaire d'Ă©dition des sĂ©quences (9h00 reste 9h00) - ✅ **Menu navigation**: Ajout du menu latĂ©ral sur la page Import Excel ### AmĂ©liorations - ✅ **RĂ©organisation**: Menu "Import Excel" dĂ©placĂ© dans la section Configuration pour une meilleure organisation ### Migrations de base de donnĂ©es Aucune migration majeure dans cette version. Le script `pnpm db:push` synchronisera automatiquement le schĂ©ma. ## 🆘 RĂ©solution de problĂšmes ### Le service ne dĂ©marre pas ```bash # Voir les logs d'erreur sudo journalctl -u formation-manager-itinova -n 100 --no-pager # VĂ©rifier les permissions sudo chown -R www-data:www-data /var/www/formation-manager-itinova sudo chmod -R 755 /var/www/formation-manager-itinova sudo chmod 600 /var/www/formation-manager-itinova/.env ``` ### Erreur de connexion Ă  la base de donnĂ©es ```bash # VĂ©rifier le fichier .env sudo cat /var/www/formation-manager-itinova/.env | grep DATABASE_URL # Tester la connexion MySQL mysql -h HOST -u USER -p -e "SELECT 1;" ``` ### Port dĂ©jĂ  utilisĂ© ```bash # Voir quel processus utilise le port 3000 sudo lsof -i :3000 # Tuer le processus si nĂ©cessaire sudo kill -9 PID ``` ### ProblĂšme de permissions ```bash # RĂ©initialiser les permissions cd /var/www/formation-manager-itinova sudo chown -R www-data:www-data . sudo chmod -R 755 . sudo chmod 600 .env ``` ## 📞 Support En cas de problĂšme: 1. **VĂ©rifier les logs**: `sudo journalctl -u formation-manager-itinova -f` 2. **Consulter la documentation**: Voir les guides dans `/var/www/formation-manager-itinova/deployment-package/` 3. **Restaurer une sauvegarde**: Suivre la procĂ©dure de rollback ci-dessus ## ✅ Checklist post-mise Ă  jour - [ ] Le service est dĂ©marrĂ©: `sudo systemctl status formation-manager-itinova` - [ ] L'application est accessible dans le navigateur - [ ] La connexion fonctionne (test avec un utilisateur admin) - [ ] Les sĂ©quences s'affichent correctement - [ ] Le formulaire d'Ă©dition affiche les bonnes heures - [ ] Le menu Import Excel est dans la section Configuration - [ ] Les emails de confirmation fonctionnent (test d'inscription) ## 📊 Commandes utiles ```bash # Voir les logs en temps rĂ©el sudo journalctl -u formation-manager-itinova -f # RedĂ©marrer le service sudo systemctl restart formation-manager-itinova # Voir le statut sudo systemctl status formation-manager-itinova # Voir les derniĂšres erreurs sudo journalctl -u formation-manager-itinova -p err -n 50 # Espace disque df -h # Utilisation mĂ©moire free -h # Processus Node.js ps aux | grep node ``` --- **Date de crĂ©ation**: $(date +%Y-%m-%d) **Version**: 36474438