# Guide de Déploiement en Production — TER Ferrovia Régional Ce guide détaille la procédure complète pour déployer et maintenir l'application Next.js avec **PM2** et **Nginx** sur le nom de domaine **`ter-ferrovia.mrpatator.fr`**. --- ## 1. Prérequis sur le serveur (Ubuntu / Debian / Linux) Installez Node.js (v20+), PM2, Nginx et Certbot : ```bash # Mise à jour du système sudo apt update && sudo apt upgrade -y # Installation de Node.js 20 LTS curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs nginx certbot python3-certbot-nginx # Installation globale de PM2 sudo npm install -g pm2 ``` --- ## 2. Configuration du projet et des variables d'environnement 1. Clonez ou transférez le dossier de l'application sur le serveur : ```bash cd /var/www/ git clone ferrovia-regional cd ferrovia-regional ``` 2. Créez le fichier de variables d'environnement `.env` (ou `.env.production`) : ```bash nano .env ``` *Renseignez vos identifiants Supabase :* ```env NEXT_PUBLIC_SUPABASE_URL=https://votre-projet.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=votre-cle-anon-supabase PORT=3000 NODE_ENV=production ``` > ⚠️ **Important :** Les variables `NEXT_PUBLIC_*` sont intégrées par Next.js au moment de la commande `npm run build`. Assurez-vous que `.env` est bien présent **avant** d'exécuter le build. --- ## 3. Premier démarrage avec PM2 Exécutez les commandes suivantes : ```bash # 1. Installation des dépendances npm ci --prefer-offline || npm install # 2. Compilation de production Next.js npm run build # 3. Démarrage de l'application via le fichier ecosystem pm2 start ecosystem.config.cjs --env production # 4. Sauvegarde de l'état PM2 et configuration du démarrage automatique au reboot pm2 save pm2 startup ``` *(Suivez l'instruction affichée par `pm2 startup` si une commande sudo vous est demandée).* ### Commandes utiles PM2 : - Voir le statut : `pm2 status` - Consulter les logs en temps réel : `pm2 logs ter-ferrovia` - Redémarrer l'application sans coupure : `pm2 reload ter-ferrovia` - Arrêter : `pm2 stop ter-ferrovia` --- ## 4. Configuration de Nginx (Reverse Proxy) 1. Copiez la configuration Nginx fournie : ```bash sudo cp nginx/ter-ferrovia.mrpatator.fr.conf /etc/nginx/sites-available/ter-ferrovia.mrpatator.fr ``` 2. Activez le site : ```bash sudo ln -s /etc/nginx/sites-available/ter-ferrovia.mrpatator.fr /etc/nginx/sites-enabled/ ``` 3. Vérifiez la syntaxe Nginx et rechargez : ```bash sudo nginx -t sudo systemctl reload nginx ``` --- ## 5. Activation du certificat HTTPS / SSL avec Certbot Assurez-vous que l'enregistrement DNS **A** pour `ter-ferrovia.mrpatator.fr` pointe bien vers l'adresse IP de votre serveur, puis lancez : ```bash sudo certbot --nginx -d ter-ferrovia.mrpatator.fr ``` Certbot configurera automatiquement le certificat SSL Let's Encrypt et activera le renouvellement automatique. --- ## 6. Mises à jour ultérieures (Déploiement Continu) Pour appliquer de futures mises à jour sur le serveur : ```bash # Option 1 : Via le script automatisé bash deploy.sh # Option 2 : Manuellement git pull npm install npm run build pm2 reload ecosystem.config.cjs --update-env ```