Déploiement
Ce fichier documente comment le code est déployé en production.
Principe
Déploiement avec validation CI
Le déploiement est automatique avec validation CI.
Un push sur main déclenche le pipeline CI (lint, tests, build) avant le déploiement. Les tests doivent passer pour que le déploiement réussisse.
Déploiement des Frontends (Vercel)
Comment ça marche
| Étape | Déclencheur |
|---|---|
| 1. | Développeur push sur main |
| 2. | Vercel détecte le push |
| 3. | Build automatique (npm run build) |
| 4. | Déploiement en production |
Configuration
- Plateforme : Vercel
- Branche :
main - Build :
npm run build && npm run start - Variables : Configurées dans le dashboard Vercel
URLs de production
| Application | URL |
|---|---|
| Discover | https://discover.stageconnect.app |
| Career | https://career.stageconnect.app |
| Admin | https://admin.stageconnect.app |
Pull Requests
Les PRs génèrent automatiquement des URLs de preview. Utiliser ces URLs pour les reviews avant de merger.
Variables à configurer
| Variable | Description |
|---|---|
NEXT_PUBLIC_API_URL | URL du backend |
NEXT_PUBLIC_SUPABASE_URL | URL Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Clé anon (publique par nature, pas de risque) |
Déploiement du Backend (Dokploy)
Comment ça marche
| Étape | Déclencheur |
|---|---|
| 1. | Développeur push sur la branche de production |
| 2. | Dokploy détecte le push |
| 3. | Build de l'image Docker |
| 4. | Déploiement du nouveau conteneur |
Configuration
- Plateforme : Dokploy (VPS auto-hébergé)
- Conteneur : Docker
- Image :
stageconnect-backend(voir Dokploy pour le tag exact)
Variables à configurer
| Variable | Description |
|---|---|
SECRET_KEY | Clé de signature JWT |
DATABASE_URL | URL PostgreSQL Supabase |
SUPABASE_URL | URL du projet Supabase |
SUPABASE_ANON_KEY | Clé anon |
SUPABASE_SERVICE_ROLE_KEY | Clé service role |
REDIS_HOST | URL Redis |
SIGNOZ_ENDPOINT | URL SigNoz (monitoring) |
Migrations Alembic
Risque sur les migrations
Les migrations sont appliquées au démarrage du conteneur.
Problème : Si une migration échoue, le conteneur peut redémarrer en boucle.
Solution actuelle : Vérifier manuellement avant de déployer.
URL de production
Checklist Avant Déploiement
À faire avant chaque push en production
-
npm run lintpasse sans erreur (frontends) -
npm run buildréussit (frontends) - Tests manuels pertinents passés
- Variables d'environnement vérifiées
Après le déploiement
- Vérifier que l'API responde
- Vérifier les logs dans Dokploy
- Tester une fonctionnalité critique
Rollback d'Urgence
Procédure si quelque chose ne fonctionne pas
Backend (Dokploy) :
- Aller dans l'interface Dokploy
- Sélectionner le déploiement précédent
- Cliquer sur "Redeploy"
Frontend (Vercel) :
- Aller dans le dashboard Vercel
- Aller dans "Deployments"
- Sélectionner le déploiement précédent
- Cliquer sur "Redeploy"
Si la DB est impliquée
- Ne pas panicquer
- Vérifier les logs de migration
- Si nécessaire :
alembic downgrade -1(à faire manuellement) - Contacter l'équipe immédiatement
Environnement Local → Production
Flow complet
Développeur
│
▼
git push origin main
│
▼
Vercel / Dokploy ────▶ Production
│
▼
Vérification manuelle (dev)
Règle Absolue
Ne jamais déployer sans avoir testé localement au préalable.
- Les tests CI doivent passer avant déploiement
- En cas de doute, ne pas déployer