Pratique

Checklist déploiement sécurisé Next.js

Une application Next.js en production doit être pensée comme une application web complète : secrets, headers, dépendances, logs, reverse proxy, base de données et authentification.


Variables d'environnement

  • séparer local et production
  • ne jamais commiter .env
  • utiliser des secrets longs
  • limiter les variables exposées au navigateur
  • préfixer uniquement ce qui doit être public avec NEXT_PUBLIC_
  • protéger les fichiers .env sur le serveur

Attention

Une variable NEXT_PUBLIC_* est visible côté navigateur. Elle ne doit jamais contenir de secret.


Dépendances

  • utiliser npm ci en production
  • auditer les dépendances
  • mettre à jour régulièrement
  • éviter les paquets inutiles
  • vérifier les warnings importants
npm ci
npm audit --omit=dev

Build et migrations

Ordre typique :

npm ci
npx prisma generate
npx prisma migrate deploy
npm run build
pm2 restart app

Les migrations doivent être testées avant production.


Authentification

  • utiliser un secret Auth.js fort
  • configurer l'URL publique
  • activer la confiance proxy si nécessaire
  • protéger les pages privées
  • limiter les inscriptions
  • appliquer du rate limiting
  • journaliser les erreurs auth utiles

Reverse proxy

Nginx ou équivalent doit gérer :

  • HTTPS
  • redirection HTTP vers HTTPS
  • headers de sécurité
  • timeouts
  • taille maximale de requête
  • rate limiting
  • logs d'accès

Base de données

  • ne pas exposer PostgreSQL publiquement
  • utiliser un mot de passe fort
  • créer un utilisateur dédié
  • sauvegarder régulièrement
  • tester les restaurations
  • appliquer les migrations proprement
  • limiter les droits applicatifs si possible

Logs

À surveiller :

  • erreurs serveur
  • erreurs auth
  • erreurs Prisma
  • codes HTTP 4xx et 5xx
  • redémarrages PM2
  • espace disque

SEO et pages privées

  • vérifier robots.txt
  • exclure /admin, /app, /api, /login, /inscription
  • générer un sitemap
  • configurer l'URL canonique
  • éviter d'indexer les pages privées

À retenir

Le déploiement sécurisé d'une app Next.js ne se limite pas au code. Il inclut les secrets, le proxy, la base, les logs, les dépendances et le processus de mise à jour.

Précédent
Durcissement VPS