📝 Consolidation documentation : suppression redondances, config centralisée
This commit is contained in:
394
README.md
394
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 <url-du-repo-parent> 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
|
||||
|
||||
Reference in New Issue
Block a user