- 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)
221 lines
6.9 KiB
Markdown
221 lines
6.9 KiB
Markdown
# 🎮 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
|
|
|
|
```bash
|
|
# Installer mcrcon (RCON client)
|
|
sudo apt-get install -y mcrcon
|
|
|
|
# Installer screen (gestion de sessions)
|
|
sudo apt-get install -y screen
|
|
```
|
|
|
|
### Démarrage Simple
|
|
|
|
```bash
|
|
cd "/home/innotex/Documents/Projet/Serveur NationsGlory/NationsGlory_ServeurBuild_Red"
|
|
|
|
# Lancer le script de démarrage rapide
|
|
./quick-start.sh
|
|
```
|
|
|
|
### Démarrage Manuel
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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 :
|
|
```bash
|
|
screen -ls
|
|
screen -r minecraft-manager
|
|
```
|
|
|
|
2. Vérifier les fichiers de signaux :
|
|
```bash
|
|
ls -la .web-admin/commands/
|
|
```
|
|
|
|
3. Vérifier mcrcon :
|
|
```bash
|
|
mcrcon -H localhost -P 25575 -p Landau8210 "list"
|
|
```
|
|
|
|
### L'interface web ne répond pas
|
|
|
|
1. Vérifier que le backend tourne :
|
|
```bash
|
|
curl http://localhost:4001/api/health
|
|
```
|
|
|
|
2. Vérifier les logs :
|
|
```bash
|
|
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](./SERVER_MANAGER.md) - Documentation complète du manager
|
|
- [CHANGELOG.md](../WebNationsGlory_ServeurBuild_Red/CHANGELOG.md) - Historique des modifications
|
|
- [API_RCON.md](../WebNationsGlory_ServeurBuild_Red/API_RCON.md) - Documentation de l'API RCON
|