# 🚀 Workflow de DĂ©ploiement - ThĂ© Tip Top ## 📊 Vue d'ensemble des environnements | Environnement | Branche | Base de donnĂ©es | Port DB | URLs | |---------------|---------|-----------------|---------|------| | **DEV** | `dev` | `thetiptop_dev` | 5433 | https://dev.dsp5-archi-o24a-15m-g3.fr
https://api.dev.dsp5-archi-o24a-15m-g3.fr | | **PREPROD** | `preprod` | `thetiptop_preprod` | 5434 | https://preprod.dsp5-archi-o24a-15m-g3.fr
https://api.preprod.dsp5-archi-o24a-15m-g3.fr | | **PROD** | `main` | `thetiptop` | 5432 | https://dsp5-archi-o24a-15m-g3.fr
https://api.dsp5-archi-o24a-15m-g3.fr | --- ## 🔄 Workflow Git ``` dev → preprod → main ↓ ↓ ↓ DEV PREPROD PROD ``` --- ## 📝 ProcĂ©dure de dĂ©ploiement ### 1ïžâƒŁ **DĂ©veloppement sur DEV** ```bash # Vous ĂȘtes sur la branche dev git checkout dev # Faire vos modifications... # Commit et push vers dev git add . git commit -m "feat: description de la fonctionnalitĂ©" git push origin dev ``` **DĂ©ploiement DEV :** ```bash # Sur le serveur DEV cd /path/to/backend git pull origin dev cp .env.dev .env npm install npm run dev ``` --- ### 2ïžâƒŁ **DĂ©ploiement vers PREPROD** AprĂšs avoir testĂ© sur DEV et validĂ© les fonctionnalitĂ©s : ```bash # Merger dev vers preprod git checkout preprod git pull origin preprod git merge dev git push origin preprod ``` **DĂ©ploiement PREPROD :** ```bash # Sur le serveur PREPROD cd /path/to/backend git pull origin preprod cp .env.preprod .env npm install npm run dev ``` **⚠ Tests Ă  effectuer en PREPROD :** - [ ] Toutes les fonctionnalitĂ©s principales - [ ] Authentification (Google, Facebook) - [ ] Jeu et attribution des lots - [ ] Interface admin - [ ] Tirage au sort - [ ] Performance et sĂ©curitĂ© --- ### 3ïžâƒŁ **DĂ©ploiement en PRODUCTION** AprĂšs validation complĂšte en PREPROD : ```bash # Merger preprod vers main git checkout main git pull origin main git merge preprod git push origin main ``` **DĂ©ploiement PRODUCTION :** ```bash # Sur le serveur PRODUCTION cd /path/to/backend git pull origin main cp .env.production .env # ⚠ IMPORTANT : VĂ©rifier les secrets en production nano .env # VĂ©rifier JWT_SECRET, SESSION_SECRET, etc. npm install npm run build # Si nĂ©cessaire npm start ``` --- ## đŸ—„ïž Gestion des bases de donnĂ©es ### Migration de donnĂ©es DEV → PREPROD ```bash # Dump de la base DEV pg_dump -h 51.75.24.29 -p 5433 -U postgres -d thetiptop_dev > dev_dump.sql # Restaurer en PREPROD psql -h 51.75.24.29 -p 5434 -U postgres -d thetiptop_preprod < dev_dump.sql ``` ### Migration de donnĂ©es PREPROD → PROD ```bash # Dump de la base PREPROD pg_dump -h 51.75.24.29 -p 5434 -U postgres -d thetiptop_preprod > preprod_dump.sql # ⚠ BACKUP PROD avant restauration ! pg_dump -h 51.75.24.29 -p 5432 -U postgres -d thetiptop > prod_backup_$(date +%Y%m%d).sql # Restaurer en PROD psql -h 51.75.24.29 -p 5432 -U postgres -d thetiptop < preprod_dump.sql ``` --- ## 🔐 Configuration des secrets ### Secrets Ă  changer ABSOLUMENT en PRODUCTION : - `JWT_SECRET` - GĂ©nĂ©rer avec : `openssl rand -base64 32` - `SESSION_SECRET` - GĂ©nĂ©rer avec : `openssl rand -base64 32` - `NEXTAUTH_SECRET` - GĂ©nĂ©rer avec : `openssl rand -base64 32` ### OAuth en production : 1. **Google OAuth** : CrĂ©er un nouveau projet sur Google Cloud Console avec les URLs de prod 2. **Facebook OAuth** : CrĂ©er une nouvelle app Facebook avec les URLs de prod --- ## ✅ Checklist avant dĂ©ploiement PRODUCTION - [ ] Tous les tests passent en PREPROD - [ ] Les secrets ont Ă©tĂ© changĂ©s (JWT, SESSION) - [ ] OAuth configurĂ© avec les URLs de production - [ ] Backup de la base de donnĂ©es PROD effectuĂ© - [ ] Variables d'environnement vĂ©rifiĂ©es - [ ] CORS configurĂ© avec les domaines de production - [ ] Logs configurĂ©s pour la production - [ ] Plan de rollback prĂ©parĂ© --- ## 🚹 Rollback en cas de problĂšme ### Si problĂšme en PRODUCTION : ```bash # 1. Revenir Ă  la version prĂ©cĂ©dente git checkout main git reset --hard git push origin main --force # 2. Restaurer le backup de la base de donnĂ©es psql -h 51.75.24.29 -p 5432 -U postgres -d thetiptop < prod_backup_YYYYMMDD.sql # 3. RedĂ©marrer l'application npm start ``` --- ## 📞 Support En cas de problĂšme, vĂ©rifier : 1. Les logs du serveur 2. Les logs de la base de donnĂ©es 3. Les variables d'environnement 4. La configuration CORS 5. Les certificats SSL --- **DerniĂšre mise Ă  jour** : $(date +%Y-%m-%d)