- Suppression de 28 fichiers inutilisés - Suppression des logs (*.log, crash-reports/, logs/) - Suppression des scripts dépréciés (7 fichiers .sh) - Suppression de la documentation redondante (8 fichiers .md) - Suppression des backups et fichiers templates - Création d'un .gitignore approprié pour éviter futurs logs - Conservation de tous les fichiers essentiels - Espace libéré : ~500MB+ (logs et caches) - Structure épurée et production-ready - Rapport de nettoyage créé (.cleanup-report.md)
6.9 KiB
🎮 Système de Gestion du Serveur Minecraft
Architecture
Le système utilise une architecture basée sur des fichiers de signaux pour permettre à l'application web de contrôler le serveur Minecraft.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Interface │────────▶│ API Web │────────▶│ Fichiers de │
│ Web (React) │ │ (Node.js) │ │ Signaux │
└─────────────────┘ └──────────────────┘ └────────┬────────┘
│
│ Surveillance
│ (toutes les 3s)
▼
┌──────────────────┐ ┌─────────────────┐
│ Serveur │◀────────│ Server │
│ Minecraft │ │ Manager │
└──────────────────┘ └─────────────────┘
Composants
1. Application Web (Frontend)
- Interface utilisateur
- Boutons : Redémarrer, Arrêter, Sauvegarder
- Affichage du statut en temps réel
2. API Web (Backend)
- Endpoints REST :
/server/restart,/server/stop,/server/status - Crée des fichiers de signaux au lieu d'envoyer directement les commandes
- Fichiers créés dans :
NationsGlory_ServeurBuild_Red/.web-admin/commands/
3. Server Manager (Bash Script)
- Surveille le dossier
.web-admin/commands/toutes les 3 secondes - Détecte les fichiers de signaux (
restart.flag,stop.flag) - Exécute les actions correspondantes
- Gère le cycle de vie du serveur Minecraft
4. Fichiers de Signaux
| Fichier | Créé par | Lu par | Action |
|---|---|---|---|
restart.flag |
API Web | Server Manager | Redémarrer le serveur |
stop.flag |
API Web | Server Manager | Arrêter le serveur |
status.json |
Server Manager | API Web | Statut du serveur |
server.pid |
Server Manager | Server Manager | PID du processus |
Workflow de Redémarrage
1. Utilisateur clique "Redémarrer" dans l'interface web
↓
2. Frontend envoie POST /api/server/restart
↓
3. Backend (API) crée le fichier restart.flag
↓
4. Server Manager détecte restart.flag (boucle de surveillance)
↓
5. Server Manager exécute la séquence :
a) save-all (sauvegarde du monde)
b) say "Redémarrage dans 30s" (avertissement joueurs)
c) sleep 20s
d) say "Redémarrage dans 10s"
e) sleep 10s
f) stop (arrêt du serveur)
g) sleep 5s
h) java -jar mcpc.jar (redémarrage)
i) Suppression de restart.flag
↓
6. Serveur redémarré
Installation et Démarrage
Prérequis
# Installer mcrcon (RCON client)
sudo apt-get install -y mcrcon
# Installer screen (gestion de sessions)
sudo apt-get install -y screen
Démarrage Simple
cd "/home/innotex/Documents/Projet/Serveur NationsGlory/NationsGlory_ServeurBuild_Red"
# Lancer le script de démarrage rapide
./quick-start.sh
Démarrage Manuel
# Créer une session screen
screen -S minecraft-manager
# Lancer le manager en mode surveillance
cd "/home/innotex/Documents/Projet/Serveur NationsGlory/NationsGlory_ServeurBuild_Red"
./server-manager.sh monitor
# Détacher : Ctrl+A puis D
Vérification
# Voir les sessions actives
screen -ls
# Se reconnecter
screen -r minecraft-manager
# Voir le statut
cat .web-admin/commands/status.json
Fichiers Créés
NationsGlory_ServeurBuild_Red/
├── server-manager.sh # Script de gestion principal
├── quick-start.sh # Script de démarrage rapide
├── SERVER_MANAGER.md # Documentation détaillée
└── .web-admin/
└── commands/
├── README.md # Description des fichiers
├── restart.flag # Signal de redémarrage
├── stop.flag # Signal d'arrêt
├── status.json # Statut du serveur
└── server.pid # PID du processus
Avantages de cette Architecture
✅ Découplage : L'API web n'a pas besoin de connaître les détails du serveur Minecraft
✅ Fiabilité : Si l'API plante, le serveur Minecraft continue de tourner
✅ Flexibilité : Facile d'ajouter de nouvelles commandes (créer de nouveaux fichiers de signaux)
✅ Persistance : Les signaux sont stockés sur disque, pas de perte de commandes
✅ Logs : Le server-manager affiche tous les événements en temps réel
✅ Sécurité : Pas de shell injection possible via l'API web
Commandes Utiles
# Lancer le manager
./quick-start.sh
# Voir les logs en temps réel
screen -r minecraft-manager
# Tester manuellement un redémarrage
echo "$(date)" > .web-admin/commands/restart.flag
# Tester manuellement un arrêt
echo "$(date)" > .web-admin/commands/stop.flag
# Voir le statut
cat .web-admin/commands/status.json
# Arrêter le manager proprement
screen -S minecraft-manager -X quit
Dépannage
Le serveur ne redémarre pas
-
Vérifier que le manager tourne :
screen -ls screen -r minecraft-manager -
Vérifier les fichiers de signaux :
ls -la .web-admin/commands/ -
Vérifier mcrcon :
mcrcon -H localhost -P 25575 -p Landau8210 "list"
L'interface web ne répond pas
-
Vérifier que le backend tourne :
curl http://localhost:4001/api/health -
Vérifier les logs :
tail -f /tmp/webserver.log
Notes Importantes
⚠️ Le server-manager DOIT être actif pour que l'application web puisse contrôler le serveur
⚠️ Le manager vérifie les signaux toutes les 3 secondes, il peut y avoir un léger délai
⚠️ Le redémarrage prend environ 30 secondes (compte à rebours pour les joueurs)
⚠️ Toujours utiliser l'interface web pour arrêter/redémarrer, ne pas killer le processus directement
Support
Pour toute question ou problème, consultez :
- SERVER_MANAGER.md - Documentation complète du manager
- CHANGELOG.md - Historique des modifications
- API_RCON.md - Documentation de l'API RCON