- Suppression de 10 fichiers obsolètes (scripts, tests, docs temporaires) - Suppression des dossiers vides (frontend/src, backend/src/middlewares) - Réecriture complète de 7 fichiers de documentation - README.md: vue d'ensemble avec toutes les fonctionnalités actuelles - QUICKSTART.md: guide de démarrage rapide en 3 étapes - CONFIGURATION.md: guide de configuration complète (Docker, RCON, sécurité) - DEPLOYMENT.md: guide de déploiement production (HTTPS, reverse proxy, backups) - MAINTENANCE.md: guide de maintenance avec dépannage exhaustif - INDEX.md: index de navigation simplifié - CHANGELOG.md: historique complet v1.0.0 - Optimisation docker-compose.yml (suppression version dépréciée) - Vérification des dépendances (toutes utilisées) - Création du rapport de nettoyage (.cleanup-report.md) - Documentation cohérente avec le code actuel - Projet 100% prêt pour la production
8.4 KiB
Configuration - NationsGlory Web Admin
Guide de configuration complète du panel d'administration web.
📋 Prérequis
Logiciels Requis
- Docker : Version 20.10 ou supérieure
- Docker Compose : Version 2.0 ou supérieure
- Serveur Minecraft 1.6.4 avec RCON activé
- Ports disponibles : 4001 (Web), 25575 (RCON)
Vérification
# Vérifier Docker
docker --version
# Vérifier Docker Compose
docker-compose --version
# Vérifier les ports
netstat -tuln | grep -E '4001|25575'
⚙️ Configuration du Serveur Minecraft
1. Activer RCON
Éditez server.properties du serveur Minecraft :
# RCON Configuration
enable-rcon=true
rcon.port=25575
rcon.password=VotreMotDePasseSecurise
# Autres paramètres recommandés
server-ip=
server-port=25565
max-players=20
motd=NationsGlory Server
Important : Le mot de passe RCON doit être identique dans server.properties et docker-compose.yml.
2. Redémarrer le Serveur
# Arrêter le serveur
docker stop mc-nationsglory
# Démarrer le serveur
docker start mc-nationsglory
# Vérifier les logs
docker logs mc-nationsglory | grep RCON
# Vous devriez voir : "RCON running on 0.0.0.0:25575"
3. Configurer les OPs
Seuls les opérateurs peuvent se connecter au panel web.
# Dans le serveur Minecraft (console ou RCON)
op VotreNomDeJoueur
# Vérifier le fichier ops.txt
cat /chemin/vers/serveur/ops.txt
🐳 Configuration Docker
1. Fichier docker-compose.yml
Le fichier principal de configuration :
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "4001:4001"
environment:
NODE_ENV: production
PORT: 4001
SERVER_DIR: /mc-server
RCON_HOST: localhost
RCON_PORT: 25575
SESSION_SECRET: change-this-in-production
volumes:
- /chemin/vers/serveur/minecraft:/mc-server
- web-admin:/mc-server/.web-admin
restart: unless-stopped
network_mode: host
volumes:
web-admin:
2. Variables d'Environnement
| Variable | Description | Valeur par Défaut | Obligatoire |
|---|---|---|---|
NODE_ENV |
Mode d'exécution | production |
Oui |
PORT |
Port du panel web | 4001 |
Oui |
SERVER_DIR |
Chemin vers le serveur MC (dans Docker) | /mc-server |
Oui |
RCON_HOST |
Hôte RCON | localhost |
Oui |
RCON_PORT |
Port RCON | 25575 |
Oui |
RCON_PASSWORD |
Mot de passe RCON | - | Oui (via .env) |
SESSION_SECRET |
Secret pour les sessions | - | Oui |
3. Configuration des Volumes
Volume mc-server : Serveur Minecraft (lecture/écriture)
volumes:
- /home/user/minecraft-server:/mc-server
Volume web-admin : Données persistantes du panel
volumes:
- web-admin:/mc-server/.web-admin
Ce volume stocke :
rcon-history.json- Historique des commandes RCON
4. Network Mode
network_mode: host
Le mode host permet au conteneur d'accéder directement au RCON sur localhost:25575.
Alternative (si vous n'utilisez pas host) :
- Changer
RCON_HOSTvers l'IP du serveur Minecraft - Exposer le port RCON dans le réseau Docker
🔐 Configuration de Sécurité
1. Générer un SESSION_SECRET
# Générer une clé aléatoire
openssl rand -base64 32
# Ou avec Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
Ajoutez-le dans docker-compose.yml ou créez un fichier .env :
SESSION_SECRET=VotreClefAleatoireSecurisee
RCON_PASSWORD=VotreMotDePasseRCON
2. Mot de Passe RCON
Recommandations :
- Minimum 12 caractères
- Mélange de majuscules, minuscules, chiffres, symboles
- Ne pas utiliser de mots du dictionnaire
- Différent du mot de passe serveur
Exemple de mot de passe fort :
Fx98dd82&*KmP!qZ7
3. Permissions Fichiers
# Serveur Minecraft
chmod 755 /chemin/vers/serveur/minecraft
chmod 644 /chemin/vers/serveur/minecraft/server.properties
chmod 644 /chemin/vers/serveur/minecraft/ops.txt
# Panel Web
chmod 755 WebNationsGlory_ServeurBuild_Red
chmod 644 docker-compose.yml
🎨 Configuration Frontend
1. Personnalisation de l'Interface
Le style est défini dans frontend/public/css/style.css.
Variables CSS principales :
:root {
--primary-color: #3498db;
--danger-color: #e74c3c;
--success-color: #2ecc71;
--warning-color: #f39c12;
}
2. Console RCON
La console est stylée comme un terminal Linux :
Couleurs par défaut :
- Fond :
#1e1e1e(noir) - Texte :
#0f0(vert) - Prompt : Nom d'utilisateur + serveur
Pour modifier :
.terminal {
background-color: #1e1e1e;
color: #0f0;
}
⚡ Configuration Backend
1. Fichier .env (Optionnel)
Créez backend/.env pour le développement local :
NODE_ENV=development
PORT=4001
SERVER_DIR=/chemin/absolu/vers/serveur/minecraft
RCON_HOST=localhost
RCON_PORT=25575
RCON_PASSWORD=VotreMotDePasse
SESSION_SECRET=VotreSecret
2. Configuration Express
Dans backend/src/server.js, les paramètres principaux :
// Session
app.use(session({
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
secure: false, // true en HTTPS
httpOnly: true,
maxAge: 1000 * 60 * 60 * 24 // 24 heures
}
}));
// CORS
app.use(cors({
origin: true,
credentials: true
}));
3. Gestion des Sessions
En production, utilisez Redis au lieu de MemoryStore :
const RedisStore = require('connect-redis')(session);
const redis = require('redis');
const redisClient = redis.createClient();
app.use(session({
store: new RedisStore({ client: redisClient }),
// ...autres options
}));
🔧 Configuration Avancée
1. Cooldown Serveur
Temps d'attente avant arrêt/redémarrage (dans frontend/public/js/app.js) :
const cooldownSeconds = 60; // 60 secondes par défaut
2. Historique RCON
Nombre maximum de commandes sauvegardées :
// Dans backend/src/routes/rcon.js
const MAX_HISTORY = 100;
3. Timeout RCON
Délai d'attente pour les commandes RCON :
// Dans backend/src/utils/rcon.js
const TIMEOUT = 5000; // 5 secondes
📊 Configuration des Logs
1. Logs du Panel
# Voir les logs en temps réel
docker-compose logs -f app
# Dernières 100 lignes
docker-compose logs --tail=100 app
# Logs avec timestamp
docker-compose logs -t app
2. Logs du Serveur Minecraft
Accessible via le panel : Menu Logs → latest.log
🌐 Configuration Réseau
1. Pare-feu
Ouvrir les ports nécessaires :
# UFW (Ubuntu/Debian)
sudo ufw allow 4001/tcp
sudo ufw allow 25575/tcp
# Firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=4001/tcp
sudo firewall-cmd --permanent --add-port=25575/tcp
sudo firewall-cmd --reload
2. Accès Distant
Pour accéder au panel depuis l'extérieur :
- Modifier
portsdans docker-compose.yml :
ports:
- "0.0.0.0:4001:4001"
- Configurer le pare-feu
- Utiliser un reverse proxy (Nginx/Apache) pour HTTPS
✅ Vérification de la Configuration
Checklist
- RCON activé dans
server.properties - Mot de passe RCON identique dans les deux fichiers
SERVER_DIRpointe vers le bon dossier- Au moins un joueur dans
ops.txt - Ports 4001 et 25575 disponibles
- Docker et Docker Compose installés
SESSION_SECRETgénéré et sécurisé- Volumes Docker correctement montés
Test de Connexion
# Test RCON avec Docker
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse
# Test du panel web
curl http://localhost:4001
# Vérifier les volumes
docker volume ls | grep web
🆘 Problèmes Courants
Le panel ne se connecte pas au RCON
- Vérifier que RCON est actif :
docker logs mc-nationsglory | grep RCON - Vérifier le mot de passe dans les deux configs
- Tester manuellement :
docker exec -it mc-nationsglory rcon-cli
Les joueurs ne s'affichent pas
- Vérifier que
/world/players/existe - Vérifier que
usercache.jsonest présent - Vérifier les permissions du volume
Impossible de se connecter
- Vérifier que vous êtes dans
ops.txt - Vider le cache du navigateur
- Vérifier les logs :
docker-compose logs app
Pour plus d'informations : README.md | DEPLOYMENT.md | MAINTENANCE.md