Files
formation-manager-itinova/INSTRUCTIONS-DEPLOIEMENT.md
Manus Sandbox aa85bf43b9 Checkpoint: Version finale avec scripts de déploiement pour VPS
Contenu de cette version :

1. Corrections de bugs :
   - Bug d'inscription (procédure publique createPublic)
   - Bug email de confirmation (variables {{prenomApprenant}} et {{datesHTML}})
   - Amélioration interface templates d'emails

2. Scripts de déploiement VPS :
   - deploy-update.sh : Script automatique de mise à jour
   - update-database.sql : Script SQL de mise à jour de la base
   - INSTRUCTIONS-DEPLOIEMENT.md : Documentation complète

Le script deploy-update.sh gère automatiquement :
- Sauvegarde de la base de données
- Arrêt/redémarrage du serveur
- Récupération du code
- Installation des dépendances
- Migrations de base de données
- Compilation du projet

Prêt pour le déploiement en production.
2025-12-03 04:37:04 -05:00

5.6 KiB

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

    ssh votre-utilisateur@votre-serveur.com
    
  2. Aller dans le répertoire du projet

    cd /chemin/vers/formation-manager-itinova
    
  3. Rendre le script exécutable

    chmod +x deploy-update.sh
    
  4. Exécuter le script de mise à jour

    ./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

# 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

pm2 stop formation-manager

3. Récupérer les modifications

git fetch origin
git checkout main
git pull origin main

4. Installer les dépendances

pnpm install

5. Appliquer les migrations de base de données

pnpm db:push

OU appliquer manuellement le script SQL :

mysql -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE < update-database.sql

6. Compiler le projet

pnpm build

7. Redémarrer le serveur

pm2 restart formation-manager
# OU si c'est le premier démarrage :
pm2 start npm --name "formation-manager" -- start

8. Vérifier le statut

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 :

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

# 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

# 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