This commit is contained in:
mathis committed 2026-09-23 23:30:18 +02:00
1 parent aaec7e8d0f
commit bc9c88a548
6 files changed
+279 -7

No files matched your search

+122
View File
@@ -0,0 +1,122 @@
# 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 <URL_DU_DEPOT> ferrovia-regional
cd ferrovia-regional
```
2. Créez le fichier de variables d'environnement `.env.local` (ou `.env.production`) :
```bash
nano .env.local
```
*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.local` 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
```