Files
ferrovia-regional/README-DEPLOY.md
T
2026-09-23 23:30:18 +02:00

3.3 KiB

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 :

# 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 :

    cd /var/www/
    git clone <URL_DU_DEPOT> ferrovia-regional
    cd ferrovia-regional
    
  2. Créez le fichier de variables d'environnement .env.local (ou .env.production) :

    nano .env.local
    

    Renseignez vos identifiants Supabase :

    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.local est bien présent avant d'exécuter le build.


3. Premier démarrage avec PM2

Exécutez les commandes suivantes :

# 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 :

    sudo cp nginx/ter-ferrovia.mrpatator.fr.conf /etc/nginx/sites-available/ter-ferrovia.mrpatator.fr
    
  2. Activez le site :

    sudo ln -s /etc/nginx/sites-available/ter-ferrovia.mrpatator.fr /etc/nginx/sites-enabled/
    
  3. Vérifiez la syntaxe Nginx et rechargez :

    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 :

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 :

# 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