# Instructions de dĂ©ploiement - Formation Manager Itinova Version: **d0d9d870** Date: 3 janvier 2025 ## 📋 RĂ©sumĂ© des modifications Cette mise Ă  jour contient les corrections suivantes : 1. **Bug d'inscription - Mauvais apprenant associĂ©** - CrĂ©ation d'une procĂ©dure publique `apprenants.createPublic` - Les inscriptions depuis la page publique fonctionnent correctement 2. **Bug email de confirmation - Variables non remplacĂ©es** - Correction du template d'inscription dans la base de donnĂ©es - Ajout de la variable `{{datesHTML}}` dans l'objet variables - Toutes les variables sont maintenant correctement remplacĂ©es 3. **AmĂ©lioration de l'interface des templates d'emails** - Ajout du bouton `{{datesHTML}}` dans l'Ă©diteur - PrĂ©visualisation amĂ©liorĂ©e avec exemple de dates formatĂ©es --- ## 🚀 DĂ©ploiement automatique (recommandĂ©) ### PrĂ©requis - AccĂšs SSH au serveur VPS - Git configurĂ© avec accĂšs au dĂ©pĂŽt - PM2 installĂ© pour la gestion du processus - pnpm installĂ© ### Étapes 1. **Se connecter au serveur VPS** ```bash ssh votre-utilisateur@votre-serveur.com ``` 2. **Aller dans le rĂ©pertoire du projet** ```bash cd /chemin/vers/formation-manager-itinova ``` 3. **Rendre le script exĂ©cutable** ```bash chmod +x deploy-update.sh ``` 4. **ExĂ©cuter le script de mise Ă  jour** ```bash ./deploy-update.sh ``` Le script va automatiquement : - ✅ Sauvegarder la base de donnĂ©es - ✅ ArrĂȘter le serveur - ✅ RĂ©cupĂ©rer les derniĂšres modifications - ✅ Installer les dĂ©pendances - ✅ Appliquer les migrations - ✅ Compiler le projet - ✅ RedĂ©marrer le serveur --- ## 🔧 DĂ©ploiement manuel Si vous prĂ©fĂ©rez effectuer la mise Ă  jour manuellement : ### 1. Sauvegarde de la base de donnĂ©es ```bash # CrĂ©er un rĂ©pertoire de backup mkdir -p backups # Sauvegarder la base de donnĂ©es mysqldump -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE > backups/db-backup-$(date +%Y%m%d-%H%M%S).sql ``` ### 2. ArrĂȘter le serveur ```bash pm2 stop formation-manager ``` ### 3. RĂ©cupĂ©rer les modifications ```bash git fetch origin git checkout main git pull origin main ``` ### 4. Installer les dĂ©pendances ```bash pnpm install ``` ### 5. Appliquer les migrations de base de donnĂ©es ```bash pnpm db:push ``` **OU** appliquer manuellement le script SQL : ```bash mysql -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE < update-database.sql ``` ### 6. Compiler le projet ```bash pnpm build ``` ### 7. RedĂ©marrer le serveur ```bash pm2 restart formation-manager # OU si c'est le premier dĂ©marrage : pm2 start npm --name "formation-manager" -- start ``` ### 8. VĂ©rifier le statut ```bash pm2 status formation-manager pm2 logs formation-manager --lines 50 ``` --- ## đŸ§Ș Tests aprĂšs dĂ©ploiement AprĂšs le dĂ©ploiement, vĂ©rifiez que tout fonctionne correctement : ### 1. Test d'inscription publique - [ ] Aller sur la page d'inscription publique d'une formation - [ ] CrĂ©er une nouvelle inscription avec un nouvel apprenant - [ ] VĂ©rifier que l'apprenant est correctement créé dans la base de donnĂ©es - [ ] VĂ©rifier que l'inscription est associĂ©e au bon apprenant ### 2. Test de l'email de confirmation - [ ] Effectuer une inscription - [ ] VĂ©rifier la rĂ©ception de l'email de confirmation - [ ] VĂ©rifier que toutes les variables sont remplacĂ©es (notamment `{{prenomApprenant}}` et `{{datesHTML}}`) - [ ] VĂ©rifier que les invitations ICS sont jointes (une par date) ### 3. Test de l'interface des templates - [ ] Aller dans Configuration > Templates d'emails - [ ] VĂ©rifier que le bouton "Dates (HTML)" est prĂ©sent - [ ] Cliquer sur le bouton pour insĂ©rer `{{datesHTML}}` - [ ] VĂ©rifier la prĂ©visualisation --- ## 📊 VĂ©rification de la base de donnĂ©es Pour vĂ©rifier que la mise Ă  jour du template d'inscription a Ă©tĂ© appliquĂ©e : ```sql SELECT type, name, bodyContent, updatedAt FROM emailTemplates WHERE type = 'inscription'; ``` Le `bodyContent` doit contenir les variables `{{prenomApprenant}}`, `{{nomApprenant}}`, et `{{datesHTML}}`. --- ## 🔄 Rollback (en cas de problĂšme) Si vous rencontrez des problĂšmes aprĂšs la mise Ă  jour : ### 1. Restaurer la base de donnĂ©es ```bash # Lister les sauvegardes disponibles ls -lh backups/ # Restaurer une sauvegarde mysql -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE < backups/db-backup-YYYYMMDD-HHMMSS.sql ``` ### 2. Revenir Ă  la version prĂ©cĂ©dente du code ```bash # Voir l'historique des commits git log --oneline # Revenir au commit prĂ©cĂ©dent git checkout COMMIT_HASH # RĂ©installer les dĂ©pendances pnpm install # Recompiler pnpm build # RedĂ©marrer pm2 restart formation-manager ``` --- ## 📞 Support En cas de problĂšme lors du dĂ©ploiement : 1. Consulter les logs du serveur : `pm2 logs formation-manager` 2. VĂ©rifier l'Ă©tat du serveur : `pm2 status` 3. VĂ©rifier les logs de la base de donnĂ©es 4. Contacter le support technique --- ## 📝 Notes importantes - **Sauvegarde automatique** : Le script `deploy-update.sh` crĂ©e automatiquement une sauvegarde de la base de donnĂ©es avant toute modification - **Temps d'arrĂȘt** : Le dĂ©ploiement nĂ©cessite un arrĂȘt temporaire du serveur (environ 2-3 minutes) - **Variables d'environnement** : Assurez-vous que toutes les variables d'environnement nĂ©cessaires sont correctement configurĂ©es (DATABASE_URL, RESEND_API_KEY, etc.) - **Permissions** : Le script doit ĂȘtre exĂ©cutĂ© avec les permissions appropriĂ©es pour accĂ©der Ă  la base de donnĂ©es et redĂ©marrer PM2 --- **Version du checkpoint** : d0d9d870 **Date de crĂ©ation** : 3 janvier 2025 **Auteur** : Manus AI