**Modifications apportées** : 1. **backup-before-update.sh** : - APP_DIR: /var/www/formation-manager-itinova - BACKUP_DIR: /var/backups/formation-manager-itinova 2. **update-app.sh** : - APP_DIR: /var/www/formation-manager-itinova - SERVICE_NAME: formation-manager-itinova 3. **GUIDE_MISE_A_JOUR.md** : - Tous les chemins mis à jour vers formation-manager-itinova - Tous les noms de service corrigés 4. **README.md** : - Documentation mise à jour avec les bons chemins - Exemples corrigés 5. **Nouveau package créé** : - formation-manager-update-20251127_095935.tar.gz (2.6M) - Prêt pour déploiement sur le serveur VPS
6.8 KiB
6.8 KiB
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:
# 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
# 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
chmod +x deployment-scripts/*.sh
Étape 4: Lancer la mise à jour
sudo ./deployment-scripts/update-app.sh
Le script va automatiquement:
- ✅ Créer une sauvegarde complète
- ✅ Arrêter le service
- ✅ Sauvegarder la configuration (.env)
- ✅ Copier les nouveaux fichiers
- ✅ Restaurer la configuration
- ✅ Installer les dépendances
- ✅ Appliquer les migrations de base de données
- ✅ Construire l'application
- ✅ Redémarrer le service
Étape 5: Vérifier le bon fonctionnement
# 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
sudo ./deployment-scripts/backup-before-update.sh
2. Arrêter le service
sudo systemctl stop formation-manager-itinova
3. Sauvegarder la configuration
sudo cp /var/www/formation-manager-itinova/.env /tmp/.env.backup
4. Copier les nouveaux fichiers
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
sudo cp /tmp/.env.backup /var/www/formation-manager-itinova/.env
6. Installer les dépendances
cd /var/www/formation-manager-itinova
sudo pnpm install --prod
7. Appliquer les migrations
sudo pnpm db:push
8. Redémarrer le service
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
ls -lh /var/backups/formation-manager-itinova/
2. Choisir une sauvegarde
# Exemple: backup_20240119_143022
BACKUP_DIR="/var/backups/formation-manager-itinova/backup_20240119_143022"
3. Arrêter le service
sudo systemctl stop formation-manager-itinova
4. Restaurer les fichiers
cd /var/www/formation-manager-itinova
sudo rm -rf *
sudo tar -xzf $BACKUP_DIR/app_files.tar.gz -C .
5. Restaurer la configuration
sudo cp $BACKUP_DIR/.env.backup /var/www/formation-manager-itinova/.env
6. Restaurer la base de données (optionnel)
# 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
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
# 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
# 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é
# 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
# 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:
- Vérifier les logs:
sudo journalctl -u formation-manager-itinova -f - Consulter la documentation: Voir les guides dans
/var/www/formation-manager-itinova/deployment-package/ - 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
# 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