Files
WebNationsGlory_ServeurBuil…/CONFIGURATION.md
y.campiontrebouta@innotexnas.ovh 4c48ee5fe4 docs: nettoyage complet et mise à jour de la documentation
- 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
2026-02-04 23:39:36 +01:00

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_HOST vers 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 Logslatest.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 :

  1. Modifier ports dans docker-compose.yml :
ports:
  - "0.0.0.0:4001:4001"
  1. Configurer le pare-feu
  2. 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_DIR pointe vers le bon dossier
  • Au moins un joueur dans ops.txt
  • Ports 4001 et 25575 disponibles
  • Docker et Docker Compose installés
  • SESSION_SECRET gé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

  1. Vérifier que RCON est actif : docker logs mc-nationsglory | grep RCON
  2. Vérifier le mot de passe dans les deux configs
  3. Tester manuellement : docker exec -it mc-nationsglory rcon-cli

Les joueurs ne s'affichent pas

  1. Vérifier que /world/players/ existe
  2. Vérifier que usercache.json est présent
  3. Vérifier les permissions du volume

Impossible de se connecter

  1. Vérifier que vous êtes dans ops.txt
  2. Vider le cache du navigateur
  3. Vérifier les logs : docker-compose logs app

Pour plus d'informations : README.md | DEPLOYMENT.md | MAINTENANCE.md