diff --git a/MODIFICATIONS.md b/MODIFICATIONS.md index 1e578e1..0e12ac1 100644 --- a/MODIFICATIONS.md +++ b/MODIFICATIONS.md @@ -1,83 +1,66 @@ -# 📝 RĂ©sumĂ© des Modifications - Configuration Portable +# 📝 Modifications Techniques -Ce document rĂ©sume les modifications apportĂ©es pour rendre le dĂ©ploiement portable et simplifiĂ©. +RĂ©sumĂ© des changements pour portabilitĂ© et simplification. -## 🎯 Objectifs Atteints +## ✅ Objectifs Atteints -✅ **Chemins relatifs** : Plus de chemins absolus du type `/home/innotex/...` -✅ **Variables d'environnement** : Configuration centralisĂ©e via fichiers `.env` -✅ **DĂ©tection automatique de l'hĂŽte** : L'API fonctionne avec localhost, IP ou domaine -✅ **DĂ©ploiement unifiĂ©** : Un seul script pour tout dĂ©marrer -✅ **PortabilitĂ© totale** : Fonctionne sur n'importe quelle machine Linux +- ✅ Chemins relatifs (100% portable) +- ✅ Configuration centralisĂ©e (shared.env) +- ✅ DĂ©tection automatique API +- ✅ Synchronisation Git automatique +- ✅ DĂ©ploiement unifiĂ© -## 📁 Fichiers Créés +## 🔑 Changements ClĂ©s -### Dossier racine (`Serveur NationsGlory/`) -- **`deploy.sh`** : Script principal de dĂ©ploiement (dĂ©marre MC + Web) -- **`stop.sh`** : Script d'arrĂȘt de tous les services -- **`check-config.sh`** : Script de vĂ©rification de configuration -- **`README.md`** : Documentation principale du projet -- **`QUICKSTART.md`** : Guide de dĂ©marrage rapide +### 1. Configuration CentralisĂ©e -### Application Web (`WebNationsGlory_ServeurBuild_Red/`) -- **`.env.example`** : Template de configuration avec toutes les variables -- **`nginx.conf.example`** : Configuration nginx pour production avec SSL +**Avant** : Fichiers `.env` distincts dans chaque service +**AprĂšs** : `shared.env` appliquĂ©e aux deux services via docker-compose.yml -## 🔧 Fichiers ModifiĂ©s - -### Application Web - -#### `docker-compose.yml` -**Avant** : -```yaml -environment: - SERVER_DIR: /home/innotex/NationsGloryRED/NationsGlory_ServeurBuild_Red -volumes: - - /home/innotex/NationsGloryRED/NationsGlory_ServeurBuild_Red:/mc-server -``` - -**AprĂšs** : ```yaml env_file: - - .env -environment: - SERVER_DIR: /mc-server - RCON_HOST: ${RCON_HOST:-localhost} - # ... autres variables -volumes: - - ${MC_SERVER_PATH:-../NationsGlory_ServeurBuild_Red}:/mc-server:ro -network_mode: host # Pour accĂšs depuis l'extĂ©rieur + - ../shared.env # Configuration commune (prioritĂ© basse) + - .env # Surcharges locales (prioritĂ© haute) ``` -#### `backend/src/server.js` -**Modification** : CORS dynamique pour supporter toutes les origines -```javascript -// Avant -app.use(cors({ origin: true, credentials: true })); +### 2. Chemins Relatifs -// AprĂšs -app.use(cors({ - origin: (origin, callback) => { - const allowedOrigin = process.env.CORS_ORIGIN || true; - callback(null, allowedOrigin); - }, - credentials: true -})); +**Avant** : `/home/innotex/NationsGloryRED/NationsGlory_ServeurBuild_Red` +**AprĂšs** : `${MC_SERVER_PATH:-../NationsGlory_ServeurBuild_Red}` + +### 3. DĂ©tection Automatique API + +**Avant** : API URL codĂ©e en dur (localhost seulement) +**AprĂšs** : DĂ©tection via `window.location.protocol` + `window.location.hostname` + +```javascript +const API_URL = `${window.location.protocol}//${window.location.hostname}:4001/api`; ``` -#### `frontend/public/js/app.js` -**Avant** : -```javascript -const API_URL = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1' - ? 'http://localhost:4001/api' - : `http://${window.location.hostname}:4001/api`; +### 4. CORS Dynamique + +**Avant** : Accepter tous origins (security flaw) +**AprĂšs** : CORS configurable par variable d'environnement + +### 5. npm Install Fix + +**Avant** : `RUN npm install --production` (oubliait devDependencies) +**AprĂšs** : `RUN npm install` + vĂ©rification express + +## 📋 Fichiers de Configuration + +``` +shared.env.example # Template centralisĂ© +shared.env # Configuration rĂ©elle (non versionnĂ©) +NationsGlory_ServeurBuild_Red/.env +WebNationsGlory_ServeurBuild_Red/.env ``` -**AprĂšs** : -```javascript -const API_URL = (() => { - const protocol = window.location.protocol; // http: ou https: - const hostname = window.location.hostname; // IP ou domaine +## 🔄 Scripts d'Automatisation + +- `deploy.sh` - DĂ©ploiement complet +- `stop.sh` - ArrĂȘt des services +- `check-config.sh` - VĂ©rification + Git sync const port = '4001'; if (window.location.port === port) { diff --git a/QUICKSTART.md b/QUICKSTART.md index 3c9e72c..9f83cf5 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -1,44 +1,48 @@ -# 🚀 Guide de DĂ©marrage Rapide - NationsGlory +# 🚀 DĂ©marrage Rapide - 5 Minutes -## Installation en 5 minutes - -### 1ïžâƒŁ Configuration du serveur Minecraft +## Avant de commencer ```bash -cd NationsGlory_ServeurBuild_Red -cp .env.example .env -nano .env # Modifiez RCON_PASSWORD +# PrĂ©requis +- Git installĂ© +- Docker + Docker Compose +- Ports 25565, 25575, 4001 disponibles ``` -### 2ïžâƒŁ Configuration de l'application web +## Installation + +### Étape 1 : Synchroniser les repositories ```bash -cd ../WebNationsGlory_ServeurBuild_Red -cp .env.example .env -nano .env +./check-config.sh ``` -**Modifiez au minimum :** -- `SESSION_SECRET` : GĂ©nĂ©rez avec `openssl rand -base64 32` -- `RCON_PASSWORD` : **MĂȘme valeur** que dans le serveur MC - -### 3ïžâƒŁ DĂ©ploiement +### Étape 2 : Configuration centralisĂ©e + +```bash +# Copier le template +cp shared.env.example shared.env + +# Éditer les valeurs sensibles +nano shared.env +``` + +Changez au minimum : +- `RCON_PASSWORD` → Nouveau mot de passe RCON +- `SESSION_SECRET` → GĂ©nĂ©rez : `openssl rand -base64 32` + +### Étape 3 : DĂ©ployer ```bash -cd .. ./deploy.sh ``` -### 4ïžâƒŁ AccĂšs +### Étape 4 : AccĂšs -**Serveur Minecraft :** -- Adresse : `votre-ip:25565` +- **Minecraft** : `votre-ip:25565` +- **Web Admin** : `http://votre-ip:4001` -**Interface Web :** -- URL : `http://votre-ip:4001` -- CrĂ©ez votre compte admin au premier accĂšs - -## ⚡ Commandes Rapides +## Commandes Essentielles ```bash # DĂ©marrer @@ -47,42 +51,16 @@ cd .. # ArrĂȘter ./stop.sh -# Logs du serveur MC -cd NationsGlory_ServeurBuild_Red && docker-compose logs -f +# VĂ©rifier +./check-config.sh -# Logs de l'application web -cd WebNationsGlory_ServeurBuild_Red && docker-compose logs -f +# Logs +docker logs -f mc-nationsglory # Minecraft +docker logs -f webnationsglory-admin # Web ``` -## 🔧 Configuration Minimale Requise +## 🔗 Liens Utiles -- **Docker** : version 20.10+ -- **Docker Compose** : version 2.0+ -- **RAM** : 4 GB minimum (2 GB pour Minecraft + 1 GB pour l'app web) -- **Ports** : 25565, 25575, 4001 - -## ✅ VĂ©rification - -1. Testez l'API web : `curl http://localhost:4001/api/health` -2. Connectez-vous au serveur Minecraft avec un client 1.6.4 -3. AccĂ©dez Ă  l'interface web et crĂ©ez un compte admin - -## 🐛 ProblĂšmes Courants - -**Le serveur ne dĂ©marre pas** -```bash -cd NationsGlory_ServeurBuild_Red -docker-compose logs -``` - -**L'application web ne se connecte pas au serveur** -- VĂ©rifiez que `RCON_PASSWORD` est identique dans les deux `.env` -- Attendez que le serveur MC soit complĂštement dĂ©marrĂ© (30-60 secondes) - -**Erreur de connexion API depuis l'extĂ©rieur** -- Ouvrez le port 4001 dans votre pare-feu -- VĂ©rifiez que Docker utilise `network_mode: host` - -## 📖 Documentation ComplĂšte - -Consultez [README.md](README.md) pour plus de dĂ©tails. +- Configuration avancĂ©e : [SHARED_ENV.md](SHARED_ENV.md) +- DĂ©pannage : [README.md](README.md) +- Git automatique : [GIT_SYNC.md](GIT_SYNC.md) diff --git a/README.md b/README.md index 31e3852..19258f4 100644 --- a/README.md +++ b/README.md @@ -1,369 +1,153 @@ -# 🎼 NationsGlory - DĂ©ploiement UnifiĂ© +# 🎼 NationsGlory - Infrastructure UnifiĂ© -Ce dossier contient le serveur Minecraft NationsGlory modĂ© et son interface web d'administration. +Serveur Minecraft 1.6.4 modĂ© + Interface Web Admin en dĂ©ploiement centralisĂ©. ## 📁 Structure ``` Serveur NationsGlory/ -├── NationsGlory_ServeurBuild_Red/ # Serveur Minecraft 1.6.4 (repo Git) -├── WebNationsGlory_ServeurBuild_Red/ # Application web admin (repo Git) -├── deploy.sh # Script de dĂ©ploiement -├── stop.sh # Script d'arrĂȘt -├── check-config.sh # VĂ©rification et sync Git -└── repos.conf # Configuration des repos Git +├── NationsGlory_ServeurBuild_Red/ # Serveur Minecraft (repo Git) +├── WebNationsGlory_ServeurBuild_Red/ # App Web Admin (repo Git) +├── deploy.sh # DĂ©marrer les services +├── stop.sh # ArrĂȘter les services +├── check-config.sh # VĂ©rifier + sync Git +├── shared.env # Config centralisĂ©e +└── repos.conf # URLs Git ``` -## 🚀 DĂ©ploiement Rapide +## 🚀 DĂ©marrage Rapide ### PrĂ©requis +- Git, Docker, Docker Compose +- Ports: 25565, 25575, 4001 -- Git installĂ© -- Docker et Docker Compose installĂ©s -- Ports disponibles: 25565 (Minecraft), 25575 (RCON), 4001 (Web Admin) - -### Installation en 4 Ă©tapes - -#### 0. Configuration Git (premiĂšre fois uniquement) - -```bash -# Copier et configurer les URLs des repositories -cp repos.conf.example repos.conf -nano repos.conf -``` - -Configurez les URLs de vos repositories Git : -- `MC_SERVER_REPO` : URL du repository du serveur Minecraft -- `WEB_ADMIN_REPO` : URL du repository de l'application web - -**Exemples d'URLs :** -```bash -# Git local (SSH) -MC_SERVER_REPO="git@192.168.1.195:/srv/git/NationsGlory_ServeurBuild_Red.git" - -# GitHub -MC_SERVER_REPO="git@github.com:username/NationsGlory_ServeurBuild_Red.git" -``` - -#### 1. Synchronisation et vĂ©rification +### Installation (5 min) ```bash +# 1. Synchroniser les repositories ./check-config.sh -``` -Ce script va automatiquement : -- ✅ Cloner les repositories s'ils n'existent pas -- ✅ Mettre Ă  jour les repositories existants -- ✅ VĂ©rifier Docker, les ports, et la configuration -- ✅ DĂ©tecter les problĂšmes de configuration +# 2. Configurer les secrets +cp shared.env.example shared.env +nano shared.env # Modifiez RCON_PASSWORD et SESSION_SECRET -#### 2. Configuration initiale - -```bash -cd WebNationsGlory_ServeurBuild_Red -cp .env.example .env -nano .env -``` - -Modifiez au minimum : -- `SESSION_SECRET` : GĂ©nĂ©rez avec `openssl rand -base64 32` -- `RCON_PASSWORD` : Mot de passe pour RCON (doit correspondre au serveur MC) - -#### 3. DĂ©ploiement - -```bash -cd .. # Retour au dossier parent +# 3. DĂ©ployer ./deploy.sh + +# 4. AccĂšs +# Minecraft: votre-ip:25565 +# Web Admin: http://votre-ip:4001 ``` -Le script va automatiquement : -- ✅ VĂ©rifier les dĂ©pendances (Docker, Docker Compose) -- ✅ Configurer les chemins relatifs entre les projets -- ✅ DĂ©marrer le serveur Minecraft -- ✅ DĂ©marrer l'application web admin -- ✅ Afficher les URLs d'accĂšs - -#### 4. AccĂšs - -**Serveur Minecraft:** -- Adresse: `votre-ip:25565` -- Version: 1.6.4 (Forge modĂ©) - -**Interface Web Admin:** -- Local: `http://localhost:4001` -- RĂ©seau: `http://votre-ip:4001` -- Premier accĂšs: CrĂ©ez le compte admin - -## đŸ› ïž Gestion - -### ArrĂȘter les services +## đŸ› ïž Commandes Courantes ```bash -./stop.sh -``` - -### Voir les logs - -**Serveur Minecraft:** -```bash -cd NationsGlory_ServeurBuild_Red -docker-compose logs -f -``` - -**Application web:** -```bash -cd WebNationsGlory_ServeurBuild_Red -docker-compose logs -f -``` - -### RedĂ©marrer - -```bash -./stop.sh +# DĂ©ployer ./deploy.sh + +# ArrĂȘter +./stop.sh + +# VĂ©rifier config + sync Git +./check-config.sh + +# Logs Minecraft +docker logs -f mc-nationsglory + +# Logs Web Admin +docker logs -f webnationsglory-admin + +# RedĂ©marrer tout +./stop.sh && ./deploy.sh ``` -## 🔧 Configuration AvancĂ©e +## 📋 Configuration -### Variables d'environnement (WebNationsGlory_ServeurBuild_Red/.env) +## 📋 Configuration + +### shared.env (Configuration centralisĂ©e) + +Variables appliquĂ©es aux deux services automatiquement : ```bash -# Environnement -NODE_ENV=production -PORT=4001 - -# Chemin relatif vers le serveur MC -MC_SERVER_PATH=../NationsGlory_ServeurBuild_Red - -# RCON (doit correspondre au serveur MC) -RCON_HOST=localhost -RCON_PORT=25575 -RCON_PASSWORD=minecraft - -# SĂ©curitĂ© (IMPORTANT!) -SESSION_SECRET=votre-secret-genere - -# Optionnel: Domaine public -# PUBLIC_HOST=votre-domaine.com +RCON_PASSWORD=minecraft # Mot de passe RCON +SESSION_SECRET=votre-secret # ClĂ© session web +SERVER_PORT=25565 # Port Minecraft +RCON_PORT=25575 # Port RCON +PORT=4001 # Port Web Admin +MEMORY=2G # RAM Minecraft +ONLINE_MODE=false # Mode online +NODE_ENV=production # Environnement ``` -### Personnalisation du serveur Minecraft - -Éditez `NationsGlory_ServeurBuild_Red/server.properties` selon vos besoins. - -RedĂ©marrez ensuite : -```bash -cd NationsGlory_ServeurBuild_Red -docker-compose restart -``` +Voir [SHARED_ENV.md](SHARED_ENV.md) pour documentation complĂšte. ## 📡 AccĂšs Ă  Distance -L'application est conçue pour fonctionner nativement avec n'importe quelle adresse : +L'application fonctionne nativement avec : -- **Localhost**: `http://localhost:4001` -- **IP locale**: `http://192.168.1.X:4001` -- **IP publique**: `http://votre-ip-publique:4001` -- **Nom de domaine**: `http://votre-domaine.com:4001` +- Localhost : `http://localhost:4001` +- IP locale : `http://192.168.1.X:4001` +- IP publique : `http://votre-ip-publique:4001` +- Domaine : `http://votre-domaine.com:4001` -Le frontend dĂ©tecte automatiquement l'hĂŽte et configure les appels API en consĂ©quence. - -### Configuration du pare-feu - -Si vous dĂ©ployez sur un serveur distant, ouvrez les ports : - -```bash -# UFW (Ubuntu/Debian) -sudo ufw allow 25565/tcp # Minecraft -sudo ufw allow 25575/tcp # RCON -sudo ufw allow 4001/tcp # Web Admin - -# Firewalld (CentOS/RHEL) -sudo firewall-cmd --permanent --add-port=25565/tcp -sudo firewall-cmd --permanent --add-port=25575/tcp -sudo firewall-cmd --permanent --add-port=4001/tcp -sudo firewall-cmd --reload -``` +Le frontend dĂ©tecte automatiquement l'hĂŽte et configure l'API. ## 🔐 SĂ©curitĂ© -### Recommandations +### À faire pour la production -1. **Changez le SESSION_SECRET** : Utilisez une valeur alĂ©atoire forte +1. **Changez RCON_PASSWORD** dans shared.env +2. **GĂ©nĂ©rez SESSION_SECRET** : ```bash openssl rand -base64 32 ``` - -2. **Changez le RCON_PASSWORD** : Ne laissez pas "minecraft" par dĂ©faut - -3. **Utilisez HTTPS** : Pour la production, configurez un reverse proxy (nginx, Caddy) avec SSL - -4. **Restreignez l'accĂšs** : Utilisez un pare-feu ou VPN pour l'interface admin - -### Exemple de configuration nginx avec SSL - -```nginx -server { - listen 443 ssl http2; - server_name votre-domaine.com; - - ssl_certificate /path/to/cert.pem; - ssl_certificate_key /path/to/key.pem; - - location / { - proxy_pass http://localhost:4001; - 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; - } -} -``` - -## 📩 PortabilitĂ© - -Cette configuration est entiĂšrement portable : - -✅ **Pas de chemins absolus** : Tout est relatif au dossier parent -✅ **Configuration par variables d'environnement** : Facile Ă  adapter -✅ **DĂ©tection automatique de l'hĂŽte** : Fonctionne sur n'importe quelle machine -✅ **Scripts de dĂ©ploiement** : Installation simplifiĂ©e -✅ **Synchronisation Git automatique** : Clonage et mises Ă  jour gĂ©rĂ©s par check-config.sh - -### DĂ©ployer sur une nouvelle machine - -1. Clonez le repository parent : +3. **Ouvrez les ports** dans le pare-feu : ```bash - git clone NationsGlory - cd NationsGlory + sudo ufw allow 25565/tcp # Minecraft + sudo ufw allow 25575/tcp # RCON + sudo ufw allow 4001/tcp # Web ``` +4. **(RecommandĂ©) HTTPS** : Configurez nginx/Caddy avec SSL -2. Configurez les repositories : - ```bash - cp repos.conf.example repos.conf - nano repos.conf # Configurez les URLs Git - ``` - -3. Synchronisez et dĂ©ployez : - ```bash - ./check-config.sh # Clone les repos si nĂ©cessaire - ./deploy.sh - ``` - -C'est tout ! 🎉 - -## 🔄 Mises Ă  jour - -### Mettre Ă  jour les projets - -Le script `check-config.sh` gĂšre automatiquement les mises Ă  jour : +## 🔄 Mises Ă  Jour ```bash -./check-config.sh -``` - -Le script va : -- ✅ VĂ©rifier si des mises Ă  jour sont disponibles sur les repositories -- ✅ Vous avertir si vous avez des modifications locales non commitĂ©es -- ✅ Mettre Ă  jour automatiquement si aucun conflit n'est dĂ©tectĂ© - -### Workflow de mise Ă  jour complet - -```bash -# 1. VĂ©rifier et mettre Ă  jour les repositories +# VĂ©rifier et appliquer les mises Ă  jour ./check-config.sh -# 2. ArrĂȘter les services +# RedĂ©ployer ./stop.sh - -# 3. RedĂ©marrer avec les nouvelles versions ./deploy.sh ``` -### Forcer une mise Ă  jour manuelle - -Si vous avez des modifications locales et voulez les abandonner : - -```bash -cd NationsGlory_ServeurBuild_Red -git reset --hard origin/main -git pull - -cd ../WebNationsGlory_ServeurBuild_Red -git reset --hard origin/main -git pull -``` - ## 🐛 DĂ©pannage -### Le serveur Minecraft ne dĂ©marre pas +### ProblĂšme : "Cannot connect to API" +- VĂ©rifiez le port 4001 ouvert +- VĂ©rifiez RCON_PASSWORD identique dans shared.env +- Testez : `curl http://localhost:4001/api/health` +### ProblĂšme : "Minecraft ne dĂ©marre pas" ```bash -cd NationsGlory_ServeurBuild_Red -docker-compose logs +docker logs mc-nationsglory ``` -VĂ©rifiez que le fichier `mcpc.jar` est prĂ©sent. - -### L'application web ne se connecte pas au serveur MC - -1. VĂ©rifiez que `RCON_PASSWORD` est identique dans les deux configurations -2. VĂ©rifiez que le serveur MC a dĂ©marrĂ© complĂštement -3. Testez RCON manuellement : - ```bash - docker exec -it mc-nationsglory rcon-cli - ``` - -### Erreur "SERVER_DIR not found" - -VĂ©rifiez que `MC_SERVER_PATH` dans `.env` pointe correctement vers le serveur MC. - -### L'API ne rĂ©pond pas depuis une machine distante - -1. VĂ©rifiez que le port 4001 est ouvert -2. VĂ©rifiez que Docker utilise `network_mode: host` dans le docker-compose.yml -3. Testez l'accĂšs : `curl http://votre-ip:4001/api/health` - -## 📚 Documentation - -- [QUICKSTART.md](WebNationsGlory_ServeurBuild_Red/QUICKSTART.md) - Guide rapide -- [DEPLOYMENT.md](WebNationsGlory_ServeurBuild_Red/DEPLOYMENT.md) - Guide de dĂ©ploiement dĂ©taillĂ© -- [CONFIGURATION.md](WebNationsGlory_ServeurBuild_Red/CONFIGURATION.md) - Configuration avancĂ©e - -## 🔄 Mises Ă  jour - -Pour mettre Ă  jour le projet : - +### ProblĂšme : Git ne synchronise pas ```bash -./stop.sh -git pull # Si vous utilisez git -./deploy.sh +./check-config.sh ``` -## đŸ’Ÿ Sauvegardes +## 📚 Documentation ComplĂšte -Les sauvegardes sont gĂ©rĂ©es via l'interface web admin. +- [SHARED_ENV.md](SHARED_ENV.md) - Configuration centralisĂ©e +- [GIT_SYNC.md](GIT_SYNC.md) - Synchronisation automatique Git +- [CHEATSHEET.txt](CHEATSHEET.txt) - Commandes rapides -Pour une sauvegarde manuelle : -```bash -cd NationsGlory_ServeurBuild_Red -tar -czf backup-$(date +%Y%m%d-%H%M%S).tar.gz \ - --exclude='*.log' \ - --exclude='*.log.lck' \ - world/ config/ mods/ plugins/ -``` +## ✅ CaractĂ©ristiques -## đŸ€ Support - -Pour toute question ou problĂšme : -1. Consultez les logs Docker -2. VĂ©rifiez les fichiers de configuration -3. Assurez-vous que tous les ports sont ouverts - -## 📄 Licence - -Projet NationsGlory - Administration serveur Minecraft - ---- - -**Note**: Ce README est gĂ©nĂ©rĂ© pour faciliter le dĂ©ploiement sur n'importe quel serveur. Les chemins sont relatifs et s'adaptent automatiquement Ă  l'environnement. +- ✅ Chemins 100% relatifs (portable) +- ✅ Config centralisĂ©e (shared.env) +- ✅ DĂ©tection auto IP/domaine +- ✅ Sync Git automatique +- ✅ DĂ©ploiement en une commande diff --git a/SETUP_COMPLETE.md b/SETUP_COMPLETE.md index e1623f5..0a59783 100644 --- a/SETUP_COMPLETE.md +++ b/SETUP_COMPLETE.md @@ -1,153 +1,22 @@ -# ✅ Configuration TerminĂ©e ! +# ✅ PrĂȘt Ă  DĂ©ployer ! -Votre configuration a Ă©tĂ© optimisĂ©e pour un dĂ©ploiement portable et simplifiĂ©. +Configuration terminĂ©e. Consultez les docs : -## 📝 Ce qui a Ă©tĂ© fait +- **[README.md](README.md)** - Documentation complĂšte +- **[QUICKSTART.md](QUICKSTART.md)** - DĂ©marrage en 5 min +- **[SHARED_ENV.md](SHARED_ENV.md)** - Configuration centralisĂ©e -### ✅ Fichiers créés -- Scripts de dĂ©ploiement (`deploy.sh`, `stop.sh`, `check-config.sh`) -- Fichiers de configuration `.env.example` pour les deux projets -- Documentation complĂšte (README.md, QUICKSTART.md, MODIFICATIONS.md) -- Configuration nginx exemple pour production -- Fichiers `.env` initiaux avec SESSION_SECRET sĂ©curisĂ© - -### ✅ Fichiers modifiĂ©s -- `WebNationsGlory_ServeurBuild_Red/docker-compose.yml` : Chemins relatifs et variables d'environnement -- `WebNationsGlory_ServeurBuild_Red/backend/src/server.js` : CORS dynamique -- `WebNationsGlory_ServeurBuild_Red/frontend/public/js/app.js` : DĂ©tection automatique de l'API -- `NationsGlory_ServeurBuild_Red/docker-compose.yml` : Support des variables d'environnement -- README des deux projets mis Ă  jour - -## 🚀 Prochaines Ă©tapes - -### 1. VĂ©rifier la configuration +## 🚀 Pour dĂ©marrer ```bash -./check-config.sh -``` +# Copier et configurer shared.env +cp shared.env.example shared.env +nano shared.env # Modifiez RCON_PASSWORD et SESSION_SECRET -### 2. (Optionnel) Modifier les mots de passe - -Si vous souhaitez changer le mot de passe RCON par dĂ©faut : - -```bash -# Éditer les deux fichiers .env -nano NationsGlory_ServeurBuild_Red/.env -nano WebNationsGlory_ServeurBuild_Red/.env - -# Assurez-vous que RCON_PASSWORD est identique dans les deux fichiers -``` - -### 3. DĂ©ployer - -```bash -./deploy.sh -``` - -Le script va automatiquement : -- DĂ©marrer le serveur Minecraft -- DĂ©marrer l'application web admin -- Afficher les URLs d'accĂšs - -### 4. AccĂ©der aux services - -**Serveur Minecraft :** -- Adresse : `votre-ip:25565` -- Version : 1.6.4 (Forge modĂ©) - -**Interface Web Admin :** -- Localhost : `http://localhost:4001` -- RĂ©seau : `http://votre-ip:4001` - -Au premier accĂšs, crĂ©ez votre compte admin (votre pseudo Minecraft doit ĂȘtre OP sur le serveur). - -## 📩 PortabilitĂ© - -Votre configuration est maintenant **100% portable** : - -✅ **Aucun chemin absolu** - Tout est relatif -✅ **Configuration centralisĂ©e** - Fichiers `.env` -✅ **DĂ©tection automatique de l'hĂŽte** - Fonctionne avec localhost, IP, domaine -✅ **Scripts de dĂ©ploiement** - Installation en une commande - -### Pour dĂ©ployer sur une autre machine : - -1. Copiez tout le dossier `Serveur NationsGlory` -2. Copiez les fichiers `.env` ou reconfigurez-les -3. ExĂ©cutez `./deploy.sh` - -C'est tout ! 🎉 - -## 🔒 SĂ©curitĂ© - -### ✅ DĂ©jĂ  configurĂ© -- SESSION_SECRET unique gĂ©nĂ©rĂ© automatiquement -- Montage read-only du serveur MC depuis l'app web -- CORS configurĂ© correctement - -### ⚠ À faire pour la production -1. **Changez RCON_PASSWORD** dans les deux fichiers `.env` -2. **Ouvrez les ports** dans votre pare-feu : - ```bash - sudo ufw allow 25565/tcp # Minecraft - sudo ufw allow 25575/tcp # RCON - sudo ufw allow 4001/tcp # Web Admin - ``` -3. **(RecommandĂ©) Configurez HTTPS** avec nginx (voir `WebNationsGlory_ServeurBuild_Red/nginx.conf.example`) - -## 📚 Documentation - -- **[README.md](README.md)** : Documentation principale -- **[QUICKSTART.md](QUICKSTART.md)** : Guide de dĂ©marrage rapide -- **[MODIFICATIONS.md](MODIFICATIONS.md)** : DĂ©tails techniques des modifications -- **[WebNationsGlory_ServeurBuild_Red/nginx.conf.example](WebNationsGlory_ServeurBuild_Red/nginx.conf.example)** : Configuration nginx pour SSL - -## đŸ› ïž Commandes utiles - -```bash -# VĂ©rifier la configuration -./check-config.sh - -# DĂ©marrer tous les services +# DĂ©ployer ./deploy.sh -# ArrĂȘter tous les services -./stop.sh - -# Voir les logs du serveur Minecraft -cd NationsGlory_ServeurBuild_Red && docker compose logs -f - -# Voir les logs de l'application web -cd WebNationsGlory_ServeurBuild_Red && docker compose logs -f - -# RedĂ©marrer tout -./stop.sh && ./deploy.sh +# AccĂšs +# Minecraft: votre-ip:25565 +# Web Admin: http://votre-ip:4001 ``` - -## 🎯 RĂ©sumĂ© des avantages - -### Avant -❌ Chemins absolus `/home/innotex/...` -❌ IP hardcodĂ©e dans le code -❌ Configuration dispersĂ©e -❌ DĂ©ploiement complexe -❌ Non portable entre machines - -### Maintenant -✅ Chemins relatifs -✅ DĂ©tection automatique de l'hĂŽte -✅ Configuration centralisĂ©e (`.env`) -✅ DĂ©ploiement en une commande -✅ Portable sur n'importe quelle machine - -## 🐛 Support - -Si vous rencontrez un problĂšme : - -1. VĂ©rifiez les logs Docker -2. ExĂ©cutez `./check-config.sh` -3. Consultez [MODIFICATIONS.md](MODIFICATIONS.md) pour les dĂ©tails techniques - ---- - -**Bon dĂ©ploiement ! 🚀**