- 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
5.3 KiB
5.3 KiB
Changelog
Toutes les modifications importantes de ce projet sont documentées dans ce fichier.
[1.0.0] - 2025-02-04
🎉 Version Initiale Complète
Ajouté
-
Console RCON style Terminal Linux
- Interface visuelle identique à un terminal bash
- Fond noir (#1e1e1e) avec texte vert (#0f0)
- Prompt personnalisé avec username@serveur
- Historique persistant des commandes
- Recherche dans l'historique avec filtres
- Suppression de l'historique
- Boutons de commandes rapides (save-all, list, time, weather, etc.)
-
Contrôle du Serveur
- Arrêt du serveur avec cooldown configurable
- Redémarrage du serveur avec cooldown
- Annulation du cooldown via commande RCON
- Messages de confirmation dans le chat Minecraft
- Notifications en temps réel des opérations
-
Dashboard Amélioré
- Affichage du nombre de joueurs connectés (format X/Y)
- Récupération temps réel via RCON "list"
- Parsing des codes couleur § de Minecraft 1.6.4
-
Gestion des Joueurs
- Liste des joueurs en ligne avec support des codes couleur §
- Suppression automatique des codes couleur pour l'affichage
- Liste complète des joueurs ayant joué (world/players/)
- Informations détaillées (UUID, dernière connexion)
- Utilisation de usercache.json pour les métadonnées
-
Paramètres en Temps Réel
- Modification des propriétés serveur sans redémarrage
- Endpoint POST /settings pour mise à jour individuelle
- Masquage automatique des mots de passe RCON
- Type de champ adapté (password pour RCON, number pour ports, etc.)
- Sauvegarde immédiate dans server.properties
-
Whitelist
- Ajout/suppression de joueurs
- Support des formats JSON et TXT
- Validation des noms de joueurs
-
Logs
- Visualisation des logs serveur
- Recherche dans les logs
- Support de plusieurs fichiers logs
-
Authentification & Sécurité
- Authentification basée sur ops.txt
- Sessions persistantes avec express-session
- Hachage bcryptjs pour les mots de passe
- Vérification automatique des permissions OP
- CORS configuré avec credentials
Technique
-
Backend
- Node.js 18 Alpine
- Express.js avec sessions
- Client RCON personnalisé avec protocole Int32LE
- Gestion Map-based des réponses RCON
- Auto-détection Docker vs local pour frontendPath
- Endpoints RESTful pour toutes les fonctionnalités
- Système de fichiers avec fs-extra
-
Frontend
- SPA en Vanilla JavaScript (1448 lignes)
- CSS moderne avec variables CSS
- Interface responsive
- Modals pour les opérations critiques
- Gestion d'état côté client
-
Docker
- docker-compose.yml avec network_mode: host
- Volumes persistants (mc-server, web-admin)
- Variables d'environnement configurables
- Build optimisé avec NODE_ENV=production
Corrigé
- ✅ Protocole RCON utilisant Int32LE au lieu de Int32BE
- ✅ Chemin correct pour les joueurs (/world/players/ au lieu de /playerdata/)
- ✅ Détection automatique du frontend selon l'environnement
- ✅ Gestion CORS pour les cookies de session
- ✅ Vérification OP utilisant le bon chemin /mc-server
- ✅ Résolution RCON_HOST en localhost avec network_mode: host
- ✅ Volume web-admin pour persistance de l'historique
- ✅ Parsing correct de la réponse "list" de Minecraft 1.6.4
- ✅ Propriété data.response au lieu de data.output
- ✅ Erreurs de syntaxe JavaScript (accolades en double)
- ✅ Permissions volume mc-server (suppression du :ro)
- ✅ Modal de redémarrage ajouté dans Console RCON
Supprimé
- ❌ Fichiers de refactoring temporaires (REFACTOR_RCON.md, API_RCON.md)
- ❌ Scripts d'installation obsolètes (install.sh, setup.sh, start.sh)
- ❌ Outils de diagnostic (test-rcon.js, diagnose-rcon.sh)
- ❌ Dossiers vides (frontend/src/, backend/src/middlewares/)
- ❌ Logs temporaires (server.log)
- ❌ Documentation redondante (RCON_CONFIGURATION.md)
🔧 Configuration
Variables d'Environnement Requises
```env SERVER_DIR=/mc-server RCON_HOST=localhost RCON_PORT=25575 RCON_PASSWORD=VotreMotDePasse SESSION_SECRET=UnSecretAleatoire ```
Prérequis Serveur Minecraft
```properties enable-rcon=true rcon.port=25575 rcon.password=VotreMotDePasse ```
📦 Volumes Docker
-
mc-server : Serveur Minecraft (lecture/écriture)
- /world/players/ pour les données joueurs
- ops.txt pour la vérification OP
- server.properties pour la configuration
- usercache.json pour les métadonnées joueurs
-
web-admin : Données panel web
- .web-admin/rcon-history.json pour l'historique RCON
🎯 Compatibilité
- ✅ Minecraft 1.6.4 (MCPC/Forge)
- ✅ Codes couleur § de Minecraft
- ✅ Format de fichiers joueurs 1.6.4
- ✅ Docker & Docker Compose
- ✅ Navigateurs modernes (Chrome, Firefox, Safari, Edge)
📝 Notes Techniques
- Le protocole RCON utilise Int32LE (Little Endian)
- Les réponses RCON sont gérées via Map avec ID de requête
- L'authentification RCON est automatique lors de la connexion
- Le frontend détecte automatiquement son chemin selon l'environnement
- Les sessions utilisent MemoryStore (production devrait utiliser Redis)
- network_mode: host permet l'accès direct au RCON localhost
Format : [Version] - Date Types : Ajouté, Modifié, Corrigé, Supprimé, Sécurité, Déprécié