# 🎼 NationsGlory - DĂ©ploiement UnifiĂ© Ce dossier contient le serveur Minecraft NationsGlory modĂ© et son interface web d'administration. ## 📁 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 ``` ## 🚀 DĂ©ploiement Rapide ### PrĂ©requis - 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 ```bash ./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. 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 ./deploy.sh ``` 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 ```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 ./deploy.sh ``` ## 🔧 Configuration AvancĂ©e ### Variables d'environnement (WebNationsGlory_ServeurBuild_Red/.env) ```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 ``` ### Personnalisation du serveur Minecraft Éditez `NationsGlory_ServeurBuild_Red/server.properties` selon vos besoins. RedĂ©marrez ensuite : ```bash cd NationsGlory_ServeurBuild_Red docker-compose restart ``` ## 📡 AccĂšs Ă  Distance L'application est conçue pour fonctionner nativement avec n'importe quelle adresse : - **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` 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 ``` ## 🔐 SĂ©curitĂ© ### Recommandations 1. **Changez le SESSION_SECRET** : Utilisez une valeur alĂ©atoire forte ```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 : ```bash git clone NationsGlory cd NationsGlory ``` 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 : ```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 ./check-config.sh # 2. ArrĂȘter les services ./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 ```bash cd NationsGlory_ServeurBuild_Red docker-compose logs ``` 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 : ```bash ./stop.sh git pull # Si vous utilisez git ./deploy.sh ``` ## đŸ’Ÿ Sauvegardes Les sauvegardes sont gĂ©rĂ©es via l'interface web admin. 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/ ``` ## đŸ€ 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.