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