Skip to Content
Wagoo SaaS 1.0.25 is released 🎉
07 DeploymentProductionDéployer en production

Déployer en production

Guide complet pour mettre votre Wagoo en production.

Étape 1 : Préparer votre code

Vérifier le code

# Vérifier que tout compile pnpm build # Tests pnpm test # Linting pnpm lint

Commiter et pusher

# Assurez-vous que .env.local est dans .gitignore cat .gitignore | grep .env # Commiter le code git add . git commit -m "PrĂŞt pour la production" git push origin main

Étape 2 : Préparer la base de données

Créer la DB en production

Vous avez 2 options :

Option 1 : Hosted DB (Recommandé)

  • Heroku PostgreSQL
  • AWS RDS
  • DigitalOcean Managed Databases
  • Render.com PostgreSQL

Avantages:

  • âś… Sauvegardes automatiques
  • âś… Haute disponibilitĂ©
  • âś… Monitoring inclus

Option 2 : Auto-hébergée

  • VPS avec PostgreSQL
  • NĂ©cessite la maintenance

Récupérer la connexion

Exemple avec Render :

PostgreSQL://user:password@host:5432/database

Étape 3 : Préparer les secrets

Créez un fichier .env.production (local):

# Database DATABASE_URL="postgresql://user:password@host:5432/db" # Auth - better-auth BETTER_AUTH_SECRET="votre-secret-très-long-et-aléatoire" BETTER_AUTH_URL="https://monsite.com" # OAuth GitHub (optionnel) GITHUB_ID="..." GITHUB_SECRET="..." # OAuth Google (optionnel) GOOGLE_ID="..." GOOGLE_SECRET="..." # Stripe NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_live_..." STRIPE_SECRET_KEY="sk_live_..." STRIPE_WEBHOOK_SECRET="whsec_..." # Email (optionnel) SMTP_HOST="smtp.gmail.com" SMTP_PORT="587" SMTP_USER="votre-email@gmail.com" SMTP_PASSWORD="votre-password" SMTP_FROM="noreply@monsite.com" # Autres NODE_ENV="production"

⚠️ Ne commites JAMAIS ce fichier!

Étape 4 : Runner les migrations

Avant le déploiement:

Assurez-vous que la base de données est à jour :

# Créer la DB si elle n'existe pas createdb production_db # Appliquer les migrations Prisma DATABASE_URL="postgresql://user:password@host:5432/db" \ pnpm prisma migrate deploy

Étape 5 : Choisir un provider

Vercel (Recommandé)

Avantages :

  • âś… DĂ©ploiement automatique avec Git
  • âś… Serverless (pas de serveur Ă  gĂ©rer)
  • âś… HTTPS automatique
  • âś… Scaling automatique
  • âś… Free tier gĂ©nĂ©reux

Voir : Déployer avec Vercel

Autres providers

Pour AWS, DigitalOcean, etc. :

# Build pnpm build # Lancer node .next/standalone/server.js

Vous avez besoin d’un serveur Node.js actif.

Étape 6 : Configurer le domaine

  1. Achetez/préparez votre domaine
  2. Configurez les records DNS
  3. Activez SSL/HTTPS
  4. Voir : Domaine personnalisé

Étape 7 : Vérifier les logs

Après le déploiement :

# Vérifier les logs tail -f /var/log/app.log # Ou dans Vercel Dashboard # Deployments → Logs

Étape 8 : Activer le monitoring

Voir : Monitoring

Checklist finale

  • âś… Code pusĂ© sur Git
  • âś… Build local OK (pnpm build)
  • âś… Tests passent (pnpm test)
  • âś… Linting OK (pnpm lint)
  • âś… .env.local dans .gitignore
  • âś… BD production créée et migrĂ©e
  • âś… Secrets configurĂ©s
  • âś… Stripe en mode Live
  • âś… Webhooks configurĂ©s pour l’URL production
  • âś… Domaine DNS configurĂ©
  • âś… SSL/HTTPS actif
  • âś… Monitoring en place

Variables d’environnement critiques

VariableCritiqueExemple
DATABASE_URL✅postgresql://…
BETTER_AUTH_SECRETâś…(secret long)
BETTER_AUTH_URL✅https://monsite.com 
STRIPE_SECRET_KEY✅sk_live_…
NODE_ENVâś…production
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY✅pk_live_…

Sécurité en production

Secrets

✅ Utilisez un gestionnaire de secrets ✅ Jamais en clair dans Git ✅ Rotation régulière ✅ Audit des accès

Base de données

✅ Sauvegardes quotidiennes ✅ Réplication en standby ✅ Chiffrement au repos ✅ Authentification forte

Application

✅ HTTPS obligatoire ✅ Headers de sécurité ✅ Rate limiting ✅ WAF (optionnel)

Performances en production

Optimisations

// next.config.mjs export default { compress: true, images: { optimization: true, formats: ['image/avif', 'image/webp'], }, poweredByHeader: false, }

Monitoring

  • Response time < 500ms
  • CPU usage < 80%
  • Memory usage < 80%
  • Error rate < 0.1%

Rollback si problème

Rollback Vercel

  1. Vercel Dashboard → Deployments
  2. Cliquez sur le déploiement précédent
  3. Cliquez “Promote to Production”

Rollback manuel

git revert <commit-hash> git push origin main # Le déploiement se refait automatiquement

Prochaines étapes

→ Déployer avec Vercel → Configurer l’environnement

Last updated on