Files
NationsGlory_ServeurBuild_Red/.web-admin/ARCHITECTURE.md
y.campiontrebouta@innotexnas.ovh 331fd94df6 chore: nettoyage complet du serveur Minecraft
- 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)
2026-02-04 23:43:04 +01:00

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

  1. Vérifier que le manager tourne :

    screen -ls
    screen -r minecraft-manager
    
  2. Vérifier les fichiers de signaux :

    ls -la .web-admin/commands/
    
  3. Vérifier mcrcon :

    mcrcon -H localhost -P 25575 -p Landau8210 "list"
    

L'interface web ne répond pas

  1. Vérifier que le backend tourne :

    curl http://localhost:4001/api/health
    
  2. 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 :