V0.5.0.1
This commit is contained in:
1 parent
aaec7e8d0f
commit
bc9c88a548
6 files changed
+279
-7
No files matched your search
@@ -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
|
||||
```
|
||||
Reference in new issue
Block a user