**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
299 lines
6.8 KiB
Markdown
299 lines
6.8 KiB
Markdown
# 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
|