Aller au contenu principal

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​

ÉtapeDé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​

ApplicationURL
Discoverhttps://discover.stageconnect.app
Careerhttps://career.stageconnect.app
Adminhttps://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​

VariableDescription
NEXT_PUBLIC_API_URLURL du backend
NEXT_PUBLIC_SUPABASE_URLURL Supabase
NEXT_PUBLIC_SUPABASE_ANON_KEYClé anon (publique par nature, pas de risque)

Déploiement du Backend (Dokploy)​

Comment ça marche​

ÉtapeDé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​

VariableDescription
SECRET_KEYClé de signature JWT
DATABASE_URLURL PostgreSQL Supabase
SUPABASE_URLURL du projet Supabase
SUPABASE_ANON_KEYClé anon
SUPABASE_SERVICE_ROLE_KEYClé service role
REDIS_HOSTURL Redis
SIGNOZ_ENDPOINTURL 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 lint passe sans erreur (frontends)
  • npm run build ré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) :

  1. Aller dans l'interface Dokploy
  2. Sélectionner le déploiement précédent
  3. Cliquer sur "Redeploy"

Frontend (Vercel) :

  1. Aller dans le dashboard Vercel
  2. Aller dans "Deployments"
  3. Sélectionner le déploiement précédent
  4. Cliquer sur "Redeploy"

Si la DB est impliquée​

  1. Ne pas panicquer
  2. Vérifier les logs de migration
  3. Si nécessaire : alembic downgrade -1 (à faire manuellement)
  4. 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