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
This commit is contained in:
y.campiontrebouta@innotexnas.ovh
2026-02-04 23:39:36 +01:00
parent 57994dce9c
commit 4c48ee5fe4
13 changed files with 2161 additions and 1350 deletions

View File

@@ -1,317 +1,402 @@
# 🎮 Guide Complet - Interface Web NationsGlory Admin
# Configuration - NationsGlory Web Admin
## Étape 1: Préparation du Serveur Minecraft
Guide de configuration complète du panel d'administration web.
### 1.1 Éditer server.properties
## 📋 Prérequis
Localisez le fichier `server.properties` du serveur MC et assurez-vous que RCON est activé:
### 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
```bash
# 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 :
```properties
# Ligne 1: Activer RCON
# RCON Configuration
enable-rcon=true
# Ligne 2: Port RCON (25575 par défaut)
rcon.port=25575
rcon.password=VotreMotDePasseSecurise
# Ligne 3: Mot de passe RCON (important!)
rcon.password=YourStrongPassword123
# Autres paramètres importants
motd=NationsGlory Server
gamemode=survival
difficulty=3
pvp=true
# Autres paramètres recommandés
server-ip=
server-port=25565
max-players=20
motd=NationsGlory Server
```
### 1.2 Redémarrer le Serveur MC
**Important** : Le mot de passe RCON doit être identique dans `server.properties` et `docker-compose.yml`.
Redémarrez le serveur pour appliquer les changements RCON:
```bash
# Si le serveur tourne avec un script
./stop.sh
./start.sh
# Attendez qu'il redémarre complètement
```
Vérifiez que RCON est actif dans les logs du serveur (vous devriez voir quelque chose comme):
```
[Server thread/INFO]: RCON running on 0.0.0.0:25575
```
## Étape 2: Installation de l'Interface Web
### 2.1 Vérifier les Prérequis
### 2. Redémarrer le Serveur
```bash
# Vérifier Node.js
node --version # Doit être v14 ou plus
# Arrêter le serveur
docker stop mc-nationsglory
# Vérifier npm
npm --version # Doit être v6 ou plus
```
Si Node.js n'est pas installé:
- **Linux**: `sudo apt-get install nodejs npm`
- **macOS**: `brew install node`
- **Windows**: Télécharger depuis https://nodejs.org
### 2.2 Installation Automatique
```bash
cd /home/innotex/Documents/Projet/Serveur\ NationsGlory/WebNationsGlory_ServeurBuild_Red
chmod +x install.sh
./install.sh
```
Cela va:
- ✓ Vérifier Node.js
- ✓ Créer le fichier .env
- ✓ Installer les dépendances npm
## Étape 3: Configuration
### 3.1 Éditer le fichier .env
Ouvrez `backend/.env` avec votre éditeur préféré:
```env
# Mode d'exécution
NODE_ENV=development
PORT=4001
# Clé de session (générer une clé aléatoire forte)
SESSION_SECRET=abc123def456ghi789jkl012mno345pqr
# Chemin EXACT vers le dossier du serveur MC
SERVER_DIR=/home/innotex/Documents/Projet/Serveur NationsGlory/NationsGlory_ServeurBuild_Red
# Paramètres RCON
RCON_HOST=localhost
RCON_PORT=25575
```
⚠️ **Important**:
- Vérifiez que `SERVER_DIR` est le **chemin exact**
- Le RCON_HOST peut être `localhost`, `127.0.0.1`, ou l'IP du serveur
- SESSION_SECRET doit être unique (utilisez une clé forte)
## Étape 4: Lancement
### 4.1 Démarrer l'Application
```bash
cd /home/innotex/Documents/Projet/Serveur\ NationsGlory/WebNationsGlory_ServeurBuild_Red
chmod +x start.sh
./start.sh
```
Vous devriez voir:
```
🚀 Backend Admin NationsGlory démarré sur http://localhost:4001
📁 Répertoire du serveur: /home/innotex/Documents/Projet/Serveur NationsGlory/NationsGlory_ServeurBuild_Red
```
### 4.2 Accéder à l'Interface
Ouvrez votre navigateur et allez à:
```
http://localhost:3000
```
## Étape 5: Premier Démarrage
### 5.1 Créer le Compte Admin
La première fois que vous accédez à l'interface:
1. **Tab "Enregistrement"** s'affiche
2. Remplissez:
- **Nom d'utilisateur**: Le nom que vous voulez pour vous connecter (ex: `admin`)
- **Mot de passe**: Un mot de passe fort
- **Pseudo Minecraft**: DOIT être un OP du serveur (ex: `VotreNomMC`)
3. Cliquez sur "Créer le compte"
⚠️ **Attention**: Le pseudo Minecraft doit être dans le fichier `ops.txt` ou `ops.json` du serveur!
### 5.2 Se Connecter
Après l'enregistrement:
1. Remplissez le formulaire de connexion
2. Entrez le nom d'utilisateur et mot de passe
3. Cliquez "Se connecter"
### 5.3 Premier Test
Une fois connecté:
1. Allez à l'onglet **Console RCON**
2. Entrez une commande simple: `/time query daytime`
3. Cliquez "Envoyer"
4. Vous devriez voir la réponse
Si ça marche, RCON est correctement configuré! ✓
## 🆘 Dépannage
### Problème: "Erreur RCON: Timeout"
**Cause**: Le serveur MC ne répond pas
**Solutions**:
1. Vérifiez que le serveur MC est en ligne
2. Vérifiez que RCON est activé dans server.properties
3. Vérifiez le port RCON (25575 par défaut)
4. Testez RCON avec un autre client:
```bash
telnet localhost 25575
```
### Problème: "Mot de passe RCON incorrect"
**Cause**: Le mot de passe ne correspond pas
**Solution**:
1. Vérifiez le mot de passe dans `server.properties`
2. Modifiez via l'interface: Dashboard → Changer RCON
3. Redémarrez le serveur MC après changement
### Problème: "Le joueur n'est pas OP sur le serveur"
**Cause**: Votre pseudo MC n'est pas OP
**Solution**:
1. Sur le serveur MC, dans la console:
```
op VotreNomMC
```
2. Attendez que le serveur se redémarre ou recharge les OPs
3. Réessayez l'enregistrement
### Problème: "Impossible de se connecter à localhost:4001"
**Cause**: L'application n'est pas lancée ou sur le mauvais port
**Solution**:
1. Vérifiez que `npm start` est lancé dans `backend/`
2. Vérifiez le PORT dans `.env`
3. Assurez-vous qu'aucune autre application n'utilise ce port:
```bash
lsof -i :3000 # Linux/Mac
netstat -ano | findstr :3000 # Windows
```
### Problème: "Node.js n'est pas trouvé"
**Solution**: Installer Node.js
- **Ubuntu/Debian**: `sudo apt-get install nodejs npm`
- **CentOS/RHEL**: `sudo yum install nodejs npm`
- **macOS**: `brew install node`
- **Windows**: https://nodejs.org
## 📊 Fonctionnalités Détaillées
### Console RCON
Exécutez n'importe quelle commande Minecraft:
```
/say Bienvenue!
/gamemode 1 @p
/give @p diamond 64
/weather clear
```
### Gestion des Logs
- Affichage temps réel
- Recherche par mot-clé
- Support multi-fichiers
### Whitelist
- Ajouter des joueurs
- Supprimer des joueurs
- Format JSON automatique
### Backups
- Création manuelle
- Compression tar.gz
- Gestion de l'espace
### Paramètres
- Lire tous les paramètres server.properties
- Modifier certains paramètres
- Changement de RCON
## 🔒 Sécurité - Important!
### En Production:
1. **Changez SESSION_SECRET**:
```bash
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
```
2. **Utilisez HTTPS**:
- Achetez un certificat SSL
- Configurez un proxy (nginx/Apache)
- Voir DEPLOYMENT.md
3. **Limitez l'accès**:
- Firewall: autoriser seulement vos IPs
- VPN: si accès distant
- Proxy avec authentification
4. **Changez RCON**:
- Utilisez un mot de passe fort
- Changez-le régulièrement
5. **Backups**:
- Sauvegardez vos backups ailleurs
- Testez les restaurations
## 📞 Support et Aide
### Vérification Rapide
```bash
# Vérifier que Node.js fonctionne
node --version
# Tester npm
npm --version
# Vérifier RCON du serveur MC
echo "status" | nc localhost 25575
# Démarrer le serveur
docker start mc-nationsglory
# Vérifier les logs
cat /path/to/mc-server/latest.log | tail -50
docker logs mc-nationsglory | grep RCON
# Vous devriez voir : "RCON running on 0.0.0.0:25575"
```
### Logs de l'Application
### 3. Configurer les OPs
Les logs du backend s'affichent en direct quand vous lancez `npm start`.
Seuls les opérateurs peuvent se connecter au panel web.
Logs des commandes RCON:
```
SERVER_DIR/.web-admin/rcon-history.json
```bash
# Dans le serveur Minecraft (console ou RCON)
op VotreNomDeJoueur
# Vérifier le fichier ops.txt
cat /chemin/vers/serveur/ops.txt
```
## 🚀 Prochaines Étapes
## 🐳 Configuration Docker
- [ ] Tester toutes les fonctionnalités
- [ ] Ajouter des joueurs à la whitelist
- [ ] Créer des backups réguliers
- [ ] Configurer HTTPS pour la production
- [ ] Automatiser avec des scripts
### 1. Fichier docker-compose.yml
## 📝 Notes Importantes
Le fichier principal de configuration :
1. **Redémarrage du serveur**: Les joueurs seront déconnectés
2. **Sauvegarde**: Faites des backups réguliers
3. **RCON**: Gardez le mot de passe sécurisé
4. **Logs**: Vérifiez régulièrement pour les erreurs
5. **Mises à jour**: Vérifiez les mises à jour Node.js
```yaml
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
Bon courage avec votre serveur! 🎮
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)
```yaml
volumes:
- /home/user/minecraft-server:/mc-server
```
**Volume web-admin** : Données persistantes du panel
```yaml
volumes:
- web-admin:/mc-server/.web-admin
```
Ce volume stocke :
- `rcon-history.json` - Historique des commandes RCON
### 4. Network Mode
```yaml
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
```bash
# 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` :
```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
```bash
# 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** :
```css
: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 :
```css
.terminal {
background-color: #1e1e1e;
color: #0f0;
}
```
## ⚡ Configuration Backend
### 1. Fichier .env (Optionnel)
Créez `backend/.env` pour le développement local :
```env
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 :
```javascript
// 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 :
```javascript
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`) :
```javascript
const cooldownSeconds = 60; // 60 secondes par défaut
```
### 2. Historique RCON
Nombre maximum de commandes sauvegardées :
```javascript
// Dans backend/src/routes/rcon.js
const MAX_HISTORY = 100;
```
### 3. Timeout RCON
Délai d'attente pour les commandes RCON :
```javascript
// Dans backend/src/utils/rcon.js
const TIMEOUT = 5000; // 5 secondes
```
## 📊 Configuration des Logs
### 1. Logs du Panel
```bash
# 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 :
```bash
# 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 :
```yaml
ports:
- "0.0.0.0:4001:4001"
```
2. Configurer le pare-feu
3. 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
```bash
# 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](README.md) | [DEPLOYMENT.md](DEPLOYMENT.md) | [MAINTENANCE.md](MAINTENANCE.md)