# đŸ–„ïž Guide de dĂ©ploiement de l'interface Admin Ce guide explique comment dĂ©ployer l'interface d'administration sur votre serveur **marama.syoul.fr**. --- ## 📋 Vue d'ensemble ``` ┌─────────────────────┐ ┌──────────────────────────┐ │ APK Client │ │ Admin Web │ │ (Statique) │ │ marama.syoul.fr │ │ │ │ │ │ ‱ Accueil │ │ ‱ Login admin │ │ ‱ Explorer │ ←────│ ‱ Gestion clients │ │ ‱ Mana Tracker │ │ ‱ GĂ©nĂ©ration tokens │ │ ‱ Infos │ │ ‱ QR codes │ └─────────────────────┘ └──────────────────────────┘ Voyageurs GĂ©rant (vous) ``` --- ## 🚀 DĂ©ploiement en 5 Ă©tapes ### Étape 1 : Build de l'application admin ```bash cd "/home/syoul/Ccompagnon Marama" ./scripts/build-server.sh ``` Ce script va : - ✅ Configurer Next.js en mode serveur (avec API routes) - ✅ Build l'application - ✅ PrĂ©parer les fichiers dans `deploy/` - ✅ CrĂ©er les scripts de lancement **⏱ DurĂ©e :** 2-3 minutes --- ### Étape 2 : TransfĂ©rer sur votre serveur ```bash # Depuis votre machine locale rsync -avz --delete deploy/ user@marama.syoul.fr:/var/www/pension-admin/ # Remplacez 'user' par votre nom d'utilisateur SSH ``` **Alternative avec SCP :** ```bash scp -r deploy/* user@marama.syoul.fr:/var/www/pension-admin/ ``` --- ### Étape 3 : Configuration sur le serveur ```bash # Se connecter au serveur ssh user@marama.syoul.fr # Aller dans le dossier cd /var/www/pension-admin # Configurer le mot de passe admin cp .env.example .env nano .env ``` **Contenu de `.env` :** ```bash # ⚠ IMPORTANT : Changez ce mot de passe ! ADMIN_PASSWORD=votre_mot_de_passe_tres_securise # Port (optionnel) PORT=3000 ``` --- ### Étape 4 : Installer et dĂ©marrer #### Option A : Lancement simple (test) ```bash chmod +x start.sh ./start.sh ``` L'admin sera accessible sur `http://marama.syoul.fr:3000` #### Option B : Avec PM2 (production, recommandĂ© ⭐) ```bash # Installer PM2 (si pas dĂ©jĂ  fait) npm install -g pm2 # DĂ©marrer l'application pm2 start npm --name "pension-admin" -- start # Sauvegarder la config PM2 pm2 save # Configurer le dĂ©marrage auto pm2 startup # Suivre les instructions affichĂ©es # Commandes utiles PM2 pm2 status # Voir le statut pm2 logs pension-admin # Voir les logs pm2 restart pension-admin # RedĂ©marrer pm2 stop pension-admin # ArrĂȘter ``` --- ### Étape 5 : Configuration Nginx (reverse proxy) #### A. CrĂ©er la configuration Nginx ```bash sudo nano /etc/nginx/sites-available/pension-admin ``` **Contenu du fichier :** ```nginx server { listen 80; server_name admin.marama.syoul.fr; # Logs access_log /var/log/nginx/pension-admin-access.log; error_log /var/log/nginx/pension-admin-error.log; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } } ``` #### B. Activer la configuration ```bash # CrĂ©er le lien symbolique sudo ln -s /etc/nginx/sites-available/pension-admin /etc/nginx/sites-enabled/ # Tester la configuration sudo nginx -t # Recharger Nginx sudo systemctl reload nginx ``` #### C. Configurer SSL (HTTPS) avec Let's Encrypt ```bash # Installer Certbot (si pas dĂ©jĂ  fait) sudo apt install certbot python3-certbot-nginx # Obtenir le certificat SSL sudo certbot --nginx -d admin.marama.syoul.fr # Le renouvellement est automatique ! ``` --- ## 🔐 Configuration DNS Ajoutez un enregistrement A ou CNAME dans votre DNS : ``` Type: A Nom: admin.marama.syoul.fr (ou juste "admin") Valeur: [IP de votre serveur] TTL: 3600 ``` --- ## 🎯 Utilisation de l'interface admin ### 1. Se connecter ``` URL: https://admin.marama.syoul.fr Mot de passe: celui dĂ©fini dans .env ``` ### 2. Ajouter un client 1. Cliquer sur **"Nouveau client"** 2. Remplir le formulaire : - **Email** : email du voyageur - **N° Bungalow** : 1, 2, 3, etc. - **WiFi** : nom et mot de passe - **Message du gĂ©rant** : message personnalisĂ© 3. Cliquer sur **"CrĂ©er"** 4. Un **QR code** et un **lien unique** sont gĂ©nĂ©rĂ©s automatiquement ### 3. Partager avec le client **Option A : QR Code** (recommandĂ©) - Afficher le QR code - Le voyageur scan avec son tĂ©lĂ©phone - L'app se configure automatiquement **Option B : Lien** - Copier le lien unique - L'envoyer par email/SMS au client --- ## 🔄 Mise Ă  jour de l'application Quand vous modifiez le code : ```bash # Sur votre machine locale cd "/home/syoul/Ccompagnon Marama" ./scripts/build-server.sh # TransfĂ©rer rsync -avz --delete deploy/ user@marama.syoul.fr:/var/www/pension-admin/ # Sur le serveur ssh user@marama.syoul.fr cd /var/www/pension-admin pm2 restart pension-admin ``` --- ## 📂 Structure des fichiers sur le serveur ``` /var/www/pension-admin/ ├── .next/ # Application Next.js compilĂ©e ├── public/ # Assets statiques ├── data/ │ └── clients.json # Base de donnĂ©es des clients (créé auto) ├── package.json # DĂ©pendances ├── next.config.js # Config Next.js ├── .env # Variables d'environnement (mot de passe) ├── start.sh # Script de lancement └── DEPLOY.md # Documentation ``` --- ## 🔒 SĂ©curitĂ© ### Recommandations importantes 1. **Mot de passe fort** ```bash # GĂ©nĂ©rer un mot de passe sĂ©curisĂ© openssl rand -base64 32 ``` 2. **Permissions fichiers** ```bash chmod 600 /var/www/pension-admin/.env chmod 600 /var/www/pension-admin/data/clients.json ``` 3. **Firewall** ```bash # Autoriser uniquement HTTP/HTTPS sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable ``` 4. **Sauvegarde des donnĂ©es** ```bash # CrĂ©er un cron job pour sauvegarder clients.json 0 2 * * * cp /var/www/pension-admin/data/clients.json /backup/clients-$(date +\%Y\%m\%d).json ``` --- ## 🐛 DĂ©pannage ### L'application ne dĂ©marre pas ```bash # VĂ©rifier les logs pm2 logs pension-admin # VĂ©rifier que Node.js est installĂ© node --version # doit ĂȘtre >= 18 # RĂ©installer les dĂ©pendances cd /var/www/pension-admin rm -rf node_modules npm ci --production pm2 restart pension-admin ``` ### Erreur 502 Bad Gateway ```bash # VĂ©rifier que l'app tourne pm2 status # VĂ©rifier les logs Nginx sudo tail -f /var/log/nginx/pension-admin-error.log # RedĂ©marrer Nginx sudo systemctl restart nginx ``` ### Les clients ne peuvent pas se connecter ```bash # VĂ©rifier les permissions du fichier data ls -la /var/www/pension-admin/data/ # VĂ©rifier le contenu cat /var/www/pension-admin/data/clients.json # Si le fichier n'existe pas, l'app le crĂ©era automatiquement ``` ### Changer le mot de passe admin ```bash # Sur le serveur cd /var/www/pension-admin nano .env # Modifier ADMIN_PASSWORD # RedĂ©marrer pm2 restart pension-admin ``` --- ## 📊 Monitoring ### Voir les statistiques avec PM2 ```bash pm2 monit # Monitoring en temps rĂ©el pm2 logs # Voir tous les logs pm2 status # Statut de toutes les apps ``` ### Logs Nginx ```bash # Logs d'accĂšs sudo tail -f /var/log/nginx/pension-admin-access.log # Logs d'erreurs sudo tail -f /var/log/nginx/pension-admin-error.log ``` --- ## 🎓 Commandes utiles ```bash # RedĂ©marrer l'application pm2 restart pension-admin # Voir les logs en direct pm2 logs pension-admin --lines 100 # Recharger l'app (sans downtime) pm2 reload pension-admin # ArrĂȘter l'application pm2 stop pension-admin # DĂ©marrer l'application pm2 start pension-admin # Supprimer de PM2 pm2 delete pension-admin # Sauvegarder la config PM2 pm2 save ``` --- ## 💡 Conseils 1. **Tester localement d'abord** ```bash # Sur votre machine npm run dev # Ouvrir http://localhost:3000/admin ``` 2. **Utiliser un sous-domaine dĂ©diĂ©** - `admin.marama.syoul.fr` (recommandĂ©) - PlutĂŽt que `marama.syoul.fr/admin` 3. **Configurer les sauvegardes automatiques** - Le fichier `data/clients.json` contient toutes vos donnĂ©es - Sauvegardez-le rĂ©guliĂšrement 4. **Monitoring avec Uptime Robot** - Gratuit - Vous alerte si le site est down --- ## 📞 Support Si vous rencontrez des problĂšmes : 1. VĂ©rifier les logs : `pm2 logs pension-admin` 2. VĂ©rifier Nginx : `sudo nginx -t` 3. VĂ©rifier les permissions : `ls -la data/` --- **Version** : 1.0.0 - Novembre 2025 **Serveur** : marama.syoul.fr **URL Admin** : https://admin.marama.syoul.fr