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:
302
README.md
302
README.md
@@ -1,228 +1,134 @@
|
||||
# Interface Web d'Administration - NationsGlory
|
||||
# NationsGlory Web Admin
|
||||
|
||||
Application web complète pour gérer votre serveur Minecraft 1.6.4 sans taper une seule commande!
|
||||
Panel d'administration web pour serveur Minecraft 1.6.4 NationsGlory.
|
||||
|
||||
## 🚀 Fonctionnalités
|
||||
## 🚀 Quick Start
|
||||
|
||||
### 🔐 Sécurité
|
||||
- Authentification sécurisée par mot de passe
|
||||
- Seuls les OPs du serveur MC peuvent se connecter
|
||||
- Sessions sécurisées avec expiration
|
||||
```bash
|
||||
# Démarrage avec Docker Compose
|
||||
docker-compose up -d
|
||||
|
||||
### ⌨️ Console RCON
|
||||
- Exécutez des commandes directement depuis l'interface
|
||||
- Historique complet des commandes
|
||||
- Réponses en temps réel
|
||||
# Le panel sera accessible sur http://localhost:4001
|
||||
```
|
||||
|
||||
### 📊 Dashboard
|
||||
- État du serveur en temps réel
|
||||
- Nombre de joueurs connectés
|
||||
- Informations rapides du serveur
|
||||
## ✨ Fonctionnalités
|
||||
|
||||
### 📜 Logs
|
||||
- Visualisation des logs en temps réel
|
||||
- Recherche dans les logs
|
||||
- Plusieurs fichiers logs supportés
|
||||
### 🎮 Gestion du Serveur
|
||||
- **Console RCON** : Interface style terminal Linux pour exécuter des commandes
|
||||
- **Historique des commandes** : Sauvegarde persistante avec recherche et suppression
|
||||
- **Contrôle du serveur** : Arrêt et redémarrage avec cooldown configurable
|
||||
- **Paramètres en temps réel** : Modification des propriétés serveur sans redémarrage
|
||||
|
||||
### 👥 Gestion des Joueurs
|
||||
- Liste de tous les joueurs ayant joué
|
||||
- UUID et dernière connexion
|
||||
- Informations détaillées
|
||||
- **Liste des joueurs connectés** : Affichage temps réel avec support des codes couleur Minecraft (§)
|
||||
- **Compteur de joueurs** : Affichage X/Y dans le dashboard
|
||||
- **Whitelist** : Ajout/suppression de joueurs autorisés
|
||||
- **Logs** : Consultation des logs serveur
|
||||
|
||||
### ✅ Whitelist
|
||||
- Ajouter/supprimer des joueurs
|
||||
- Gestion complète de la whitelist
|
||||
- Support des formats JSON et TXT
|
||||
### 🔐 Sécurité
|
||||
- **Authentification OP** : Seuls les opérateurs du serveur peuvent se connecter
|
||||
- **Sessions persistantes** : Gestion sécurisée des sessions
|
||||
- **Masquage des mots de passe** : Les mots de passe RCON ne s'affichent pas en clair
|
||||
|
||||
### 💾 Backups
|
||||
- Création de backups automatiques
|
||||
- Gestion des anciens backups
|
||||
- Suppression facile
|
||||
## 🏗️ Architecture
|
||||
|
||||
### ⚙️ Paramètres
|
||||
- Modification des settings du serveur
|
||||
- Changement du mot de passe RCON
|
||||
- Gestion complète de server.properties
|
||||
|
||||
### 🔄 Commandes Utiles
|
||||
- Redémarrage du serveur
|
||||
- Sauvegarde du monde
|
||||
- Notifications aux joueurs
|
||||
|
||||
## 📋 Prérequis
|
||||
|
||||
- Node.js 14+ et npm
|
||||
- Serveur Minecraft avec RCON activé
|
||||
- RCON correctement configuré dans server.properties
|
||||
|
||||
## 🔧 Installation
|
||||
|
||||
### 1. Préparer le serveur Minecraft
|
||||
|
||||
Éditer `server.properties` du serveur MC:
|
||||
```properties
|
||||
enable-rcon=true
|
||||
rcon.port=25575
|
||||
rcon.password=votreMotDePasseRcon
|
||||
```
|
||||
|
||||
Redémarrer le serveur MC.
|
||||
|
||||
### 2. Installer l'interface web
|
||||
|
||||
```bash
|
||||
cd WebNationsGlory_ServeurBuild_Red
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
```
|
||||
|
||||
### 3. Configurer
|
||||
|
||||
Éditer `backend/.env`:
|
||||
```env
|
||||
NODE_ENV=development
|
||||
PORT=4001
|
||||
SESSION_SECRET=changez-cette-cle-en-production
|
||||
SERVER_DIR=/path/to/NationsGlory_ServeurBuild_Red
|
||||
RCON_HOST=localhost
|
||||
RCON_PORT=25575
|
||||
```
|
||||
|
||||
### 4. Lancer l'application
|
||||
|
||||
```bash
|
||||
chmod +x start.sh
|
||||
./start.sh
|
||||
```
|
||||
|
||||
L'interface est maintenant accessible sur: **http://localhost:4001**
|
||||
|
||||
## 🎯 Premier Démarrage
|
||||
|
||||
1. Ouvrez http://localhost:4001
|
||||
2. Créez le compte admin (doit être un OP du serveur)
|
||||
3. Connectez-vous
|
||||
4. Explorez l'interface!
|
||||
|
||||
## 📁 Structure du Projet
|
||||
|
||||
```
|
||||
WebNationsGlory_ServeurBuild_Red/
|
||||
\`\`\`
|
||||
WebNationsGlory/
|
||||
├── backend/
|
||||
│ ├── package.json
|
||||
│ ├── .env (à créer)
|
||||
│ └── src/
|
||||
│ ├── server.js (point d'entrée)
|
||||
│ ├── routes/
|
||||
│ │ ├── auth.js (authentification)
|
||||
│ │ ├── rcon.js (console & contrôle)
|
||||
│ │ ├── logs.js (visualisation logs)
|
||||
│ │ ├── players.js (gestion joueurs)
|
||||
│ │ ├── whitelist.js (gestion whitelist)
|
||||
│ │ ├── backup.js (gestion backups)
|
||||
│ │ └── server.js (paramètres)
|
||||
│ └── utils/
|
||||
│ └── rcon.js (client RCON)
|
||||
│ ├── src/
|
||||
│ │ ├── routes/ # API endpoints
|
||||
│ │ ├── utils/ # RCON client
|
||||
│ │ └── server.js # Express app
|
||||
│ └── data/
|
||||
│ └── users.json # Utilisateurs
|
||||
├── frontend/
|
||||
│ └── public/
|
||||
│ ├── index.html
|
||||
│ ├── js/app.js
|
||||
│ └── css/style.css
|
||||
└── start.sh
|
||||
```
|
||||
│ ├── css/ # Styles
|
||||
│ ├── js/ # SPA vanilla JS
|
||||
│ └── index.html
|
||||
└── docker-compose.yml # Orchestration
|
||||
\`\`\`
|
||||
|
||||
## 🔌 API Endpoints
|
||||
## 🔧 Configuration
|
||||
|
||||
### Authentification
|
||||
- `POST /api/auth/register` - Créer un compte admin
|
||||
- `POST /api/auth/login` - Se connecter
|
||||
- `GET /api/auth/check` - Vérifier la connexion
|
||||
- `POST /api/auth/logout` - Se déconnecter
|
||||
### Prérequis
|
||||
- Docker & Docker Compose
|
||||
- Serveur Minecraft 1.6.4 avec RCON activé
|
||||
- Port 25575 (RCON) et 4001 (Web) disponibles
|
||||
|
||||
### Console RCON
|
||||
- `POST /api/rcon/command` - Exécuter une commande
|
||||
- `GET /api/rcon/history` - Historique des commandes
|
||||
- `POST /api/rcon/restart` - Redémarrer le serveur
|
||||
- `POST /api/rcon/save` - Sauvegarder
|
||||
### Variables d'environnement
|
||||
\`\`\`env
|
||||
SERVER_DIR=/mc-server # Chemin vers le serveur Minecraft
|
||||
RCON_HOST=localhost # Hôte RCON
|
||||
RCON_PORT=25575 # Port RCON
|
||||
RCON_PASSWORD=votre_mot_de_passe # Mot de passe RCON
|
||||
SESSION_SECRET=secret_securise # Secret pour les sessions
|
||||
\`\`\`
|
||||
|
||||
### Serveur
|
||||
- `GET /api/server` - Récupérer les paramètres
|
||||
- `POST /api/server/update` - Mettre à jour un paramètre
|
||||
### Serveur Minecraft (server.properties)
|
||||
\`\`\`properties
|
||||
enable-rcon=true
|
||||
rcon.port=25575
|
||||
rcon.password=votre_mot_de_passe
|
||||
\`\`\`
|
||||
|
||||
### Logs
|
||||
- `GET /api/logs` - Récupérer les logs
|
||||
- `GET /api/logs/files` - Lister les fichiers logs
|
||||
- `GET /api/logs/file/:filename` - Lire un fichier spécifique
|
||||
- `GET /api/logs/search?query=...` - Chercher dans les logs
|
||||
## 📚 Documentation
|
||||
|
||||
### Joueurs
|
||||
- `GET /api/players` - Lister les joueurs
|
||||
- [QUICKSTART.md](QUICKSTART.md) - Guide de démarrage rapide
|
||||
- [CONFIGURATION.md](CONFIGURATION.md) - Configuration détaillée
|
||||
- [DEPLOYMENT.md](DEPLOYMENT.md) - Guide de déploiement
|
||||
- [MAINTENANCE.md](MAINTENANCE.md) - Maintenance et dépannage
|
||||
- [CHANGELOG.md](CHANGELOG.md) - Historique des versions
|
||||
|
||||
### Whitelist
|
||||
- `GET /api/whitelist` - Récupérer la whitelist
|
||||
- `POST /api/whitelist/add` - Ajouter un joueur
|
||||
- `POST /api/whitelist/remove` - Retirer un joueur
|
||||
## 🔐 Première Connexion
|
||||
|
||||
### Backups
|
||||
- `GET /api/backup` - Lister les backups
|
||||
- `POST /api/backup/create` - Créer un backup
|
||||
- `POST /api/backup/delete/:filename` - Supprimer un backup
|
||||
1. Démarrer le serveur Minecraft
|
||||
2. Démarrer le panel web : \`docker-compose up -d\`
|
||||
3. Accéder à http://localhost:4001
|
||||
4. Se connecter avec un compte OP du serveur Minecraft
|
||||
5. Le système vérifie automatiquement les permissions OP dans \`ops.txt\`
|
||||
|
||||
## 🆘 Dépannage
|
||||
## 🛠️ Développement
|
||||
|
||||
### La connexion RCON échoue
|
||||
- Vérifiez que RCON est activé dans server.properties
|
||||
- Vérifiez le port et le mot de passe
|
||||
- Assurez-vous que le serveur MC est en ligne
|
||||
### Structure Backend
|
||||
- **Express.js** : Serveur web Node.js 18
|
||||
- **RCON Client** : Implémentation complète du protocole Minecraft RCON (Int32LE)
|
||||
- **Sessions** : express-session avec MemoryStore
|
||||
- **Authentification** : bcryptjs pour le hachage
|
||||
|
||||
### Les logs ne s'affichent pas
|
||||
- Vérifiez le chemin de SERVER_DIR dans .env
|
||||
- Assurez-vous que les fichiers logs existent
|
||||
### Structure Frontend
|
||||
- **Vanilla JavaScript** : SPA sans framework
|
||||
- **Style Terminal** : Console RCON avec apparence Linux shell
|
||||
- **API REST** : Communication avec le backend
|
||||
|
||||
## ⚠️ Notes Importantes
|
||||
|
||||
- Le serveur Minecraft doit être démarré **avant** le panel web
|
||||
- Seuls les joueurs dans \`ops.txt\` peuvent se connecter
|
||||
- L'historique RCON est sauvegardé dans un volume Docker nommé \`web-admin\`
|
||||
- Le serveur utilise \`network_mode: host\` pour accéder au RCON local
|
||||
- Compatible uniquement avec Minecraft 1.6.4 (codes couleur §)
|
||||
|
||||
## 📦 Volumes Docker
|
||||
|
||||
- \`mc-server\` : Données du serveur Minecraft (lecture/écriture)
|
||||
- \`web-admin\` : Données persistantes du panel (.web-admin/)
|
||||
|
||||
## 🐛 Dépannage
|
||||
|
||||
### Le panel ne se connecte pas au RCON
|
||||
1. Vérifier que \`enable-rcon=true\` dans \`server.properties\`
|
||||
2. Vérifier le mot de passe RCON
|
||||
3. Vérifier que le serveur Minecraft est démarré
|
||||
|
||||
### Les joueurs ne s'affichent pas
|
||||
- Attendez qu'au moins un joueur se soit connecté
|
||||
- Vérifiez que usercache.json existe
|
||||
1. Vérifier que le dossier \`/world/players/\` existe
|
||||
2. Vérifier que \`usercache.json\` est présent
|
||||
|
||||
## ⚠️ Sécurité
|
||||
### Impossible de modifier les paramètres
|
||||
1. Vérifier que le volume \`mc-server\` n'est pas en lecture seule
|
||||
2. Vérifier les permissions sur \`server.properties\`
|
||||
|
||||
En production:
|
||||
- Changez `SESSION_SECRET` avec une clé forte
|
||||
- Utilisez HTTPS
|
||||
- Placez derrière un proxy (nginx, Apache)
|
||||
- Limitez l'accès par IP si possible
|
||||
## 📄 Licence
|
||||
|
||||
## 📝 Logs Applicatifs
|
||||
|
||||
Les logs de l'application se trouvent dans:
|
||||
- Backend console: directement dans le terminal
|
||||
- RCON historique: `SERVER_DIR/.web-admin/rcon-history.json`
|
||||
|
||||
## 🎮 Commandes Minecraft Utiles
|
||||
|
||||
Depuis la console RCON:
|
||||
- `/say Message` - Envoyer un message à tous
|
||||
- `/tp @p @s` - Tp un joueur
|
||||
- `/give @p diamond 64` - Donner des items
|
||||
- `/weather clear` - Changer la météo
|
||||
- `/time set day` - Régler l'heure
|
||||
- `/difficulty 2` - Changer la difficulté
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Pour les problèmes:
|
||||
1. Vérifiez la configuration du .env
|
||||
2. Vérifiez les logs du backend
|
||||
3. Testez RCON avec un client externe
|
||||
4. Vérifiez les permissions sur les fichiers du serveur
|
||||
|
||||
## 🔄 Mises à Jour
|
||||
|
||||
L'interface se met à jour automatiquement. Pour mettre à jour les dépendances:
|
||||
```bash
|
||||
cd backend
|
||||
npm update
|
||||
```
|
||||
|
||||
## 📄 License
|
||||
|
||||
MIT - Libre d'utilisation
|
||||
Projet privé - NationsGlory Server
|
||||
|
||||
Reference in New Issue
Block a user