- 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
470 lines
10 KiB
Markdown
470 lines
10 KiB
Markdown
# Maintenance - NationsGlory Web Admin
|
|
|
|
Guide de maintenance quotidienne et dépannage du panel d'administration.
|
|
|
|
## 🔄 Opérations Quotidiennes
|
|
|
|
### Démarrer le Panel
|
|
|
|
```bash
|
|
cd /home/innotex/Documents/Projet/Serveur\ NationsGlory/WebNationsGlory_ServeurBuild_Red
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Arrêter le Panel
|
|
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
### Redémarrer le Panel
|
|
|
|
```bash
|
|
docker-compose restart app
|
|
```
|
|
|
|
### Voir les Logs
|
|
|
|
```bash
|
|
# Logs en temps réel
|
|
docker-compose logs -f app
|
|
|
|
# Dernières 100 lignes
|
|
docker-compose logs --tail=100 app
|
|
|
|
# Logs avec timestamp
|
|
docker-compose logs -t app
|
|
```
|
|
|
|
## 📊 Monitoring
|
|
|
|
### État des Services
|
|
|
|
```bash
|
|
# Vérifier que le conteneur tourne
|
|
docker-compose ps
|
|
|
|
# Détails du conteneur
|
|
docker inspect webnationsglory_serveurbuild_red-app-1
|
|
|
|
# Utilisation des ressources
|
|
docker stats
|
|
```
|
|
|
|
### Vérifier le Panel Web
|
|
|
|
```bash
|
|
# Test HTTP
|
|
curl -I http://localhost:4001
|
|
|
|
# Tester la page de login
|
|
curl http://localhost:4001 | grep -i "login"
|
|
```
|
|
|
|
### Vérifier RCON
|
|
|
|
```bash
|
|
# Avec rcon-cli (depuis le conteneur Minecraft)
|
|
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse
|
|
|
|
# Commande test
|
|
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse list
|
|
```
|
|
|
|
### Vérifier les Volumes
|
|
|
|
```bash
|
|
# Liste des volumes
|
|
docker volume ls | grep web
|
|
|
|
# Inspecter le volume web-admin
|
|
docker volume inspect webnationsglory_serveurbuild_red_web-admin
|
|
|
|
# Voir le contenu
|
|
docker run --rm -v webnationsglory_serveurbuild_red_web-admin:/data alpine ls -lah /data/.web-admin/
|
|
```
|
|
|
|
## 🔧 Maintenance Régulière
|
|
|
|
### Nettoyage Docker
|
|
|
|
```bash
|
|
# Supprimer les images inutilisées
|
|
docker image prune -a
|
|
|
|
# Supprimer les conteneurs arrêtés
|
|
docker container prune
|
|
|
|
# Supprimer les volumes orphelins
|
|
docker volume prune
|
|
|
|
# Tout nettoyer (attention!)
|
|
docker system prune -a --volumes
|
|
```
|
|
|
|
### Mise à Jour du Panel
|
|
|
|
```bash
|
|
cd /home/innotex/Documents/Projet/Serveur\ NationsGlory/WebNationsGlory_ServeurBuild_Red
|
|
|
|
# Pull des modifications (si git)
|
|
git pull origin main
|
|
|
|
# Rebuild de l'image
|
|
docker-compose build --no-cache
|
|
|
|
# Redémarrer
|
|
docker-compose down
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Rotation des Logs RCON
|
|
|
|
L'historique RCON est limité automatiquement, mais vous pouvez le nettoyer manuellement :
|
|
|
|
```bash
|
|
# Supprimer l'historique via l'API
|
|
curl -X DELETE http://localhost:4001/api/rcon/history
|
|
|
|
# Ou directement dans le volume
|
|
docker run --rm -v webnationsglory_serveurbuild_red_web-admin:/data alpine rm /data/.web-admin/rcon-history.json
|
|
```
|
|
|
|
## 💾 Backups
|
|
|
|
### Backup Manuel du Volume web-admin
|
|
|
|
```bash
|
|
# Créer un dossier de backup
|
|
mkdir -p ~/backups/nationsglory
|
|
|
|
# Backup du volume
|
|
docker run --rm \
|
|
-v webnationsglory_serveurbuild_red_web-admin:/data \
|
|
-v ~/backups/nationsglory:/backup \
|
|
alpine tar czf /backup/web-admin-$(date +%Y%m%d-%H%M%S).tar.gz -C /data .
|
|
|
|
echo "Backup créé dans ~/backups/nationsglory/"
|
|
```
|
|
|
|
### Restaurer un Backup
|
|
|
|
```bash
|
|
# Arrêter le conteneur
|
|
docker-compose down
|
|
|
|
# Restaurer
|
|
docker run --rm \
|
|
-v webnationsglory_serveurbuild_red_web-admin:/data \
|
|
-v ~/backups/nationsglory:/backup \
|
|
alpine sh -c "cd /data && tar xzf /backup/web-admin-YYYYMMDD-HHMMSS.tar.gz"
|
|
|
|
# Redémarrer
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Backup Automatique (Cron)
|
|
|
|
Créez `/opt/backup-web-admin.sh` :
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
BACKUP_DIR="$HOME/backups/nationsglory"
|
|
DATE=$(date +%Y%m%d-%H%M%S)
|
|
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
docker run --rm \
|
|
-v webnationsglory_serveurbuild_red_web-admin:/data \
|
|
-v "$BACKUP_DIR":/backup \
|
|
alpine tar czf "/backup/web-admin-$DATE.tar.gz" -C /data .
|
|
|
|
# Garder seulement les 7 derniers
|
|
ls -t "$BACKUP_DIR"/web-admin-*.tar.gz | tail -n +8 | xargs -r rm
|
|
|
|
echo "✅ Backup créé: web-admin-$DATE.tar.gz"
|
|
```
|
|
|
|
Puis :
|
|
|
|
```bash
|
|
chmod +x /opt/backup-web-admin.sh
|
|
|
|
# Ajouter au crontab (tous les jours à 2h)
|
|
crontab -e
|
|
# Ajouter: 0 2 * * * /opt/backup-web-admin.sh
|
|
```
|
|
|
|
## 🐛 Dépannage
|
|
|
|
### Le Panel ne Démarre Pas
|
|
|
|
**Symptômes** : `docker-compose up -d` échoue
|
|
|
|
```bash
|
|
# Voir les logs d'erreur
|
|
docker-compose logs app
|
|
|
|
# Vérifier les ports occupés
|
|
lsof -i :4001
|
|
|
|
# Reconstruire from scratch
|
|
docker-compose down
|
|
docker-compose build --no-cache
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Erreur de Connexion RCON
|
|
|
|
**Symptômes** : "Failed to connect to RCON"
|
|
|
|
```bash
|
|
# 1. Vérifier que le serveur MC est démarré
|
|
docker ps | grep mc-nationsglory
|
|
|
|
# 2. Vérifier que RCON est actif
|
|
docker logs mc-nationsglory | grep RCON
|
|
|
|
# 3. Tester RCON manuellement
|
|
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse
|
|
|
|
# 4. Vérifier le mot de passe dans docker-compose.yml
|
|
cat docker-compose.yml | grep -A 5 environment
|
|
|
|
# 5. Vérifier server.properties
|
|
docker exec mc-nationsglory cat /mc-server/server.properties | grep rcon
|
|
```
|
|
|
|
### Les Joueurs ne s'Affichent Pas
|
|
|
|
**Symptômes** : Liste vide dans la section Players
|
|
|
|
```bash
|
|
# 1. Vérifier le dossier players
|
|
docker exec mc-nationsglory ls -la /mc-server/world/players/
|
|
|
|
# 2. Vérifier usercache.json
|
|
docker exec mc-nationsglory cat /mc-server/usercache.json
|
|
|
|
# 3. Vérifier les permissions
|
|
docker exec mc-nationsglory ls -la /mc-server/world/
|
|
|
|
# 4. Voir les logs du panel
|
|
docker-compose logs app | grep -i player
|
|
```
|
|
|
|
### Impossible de se Connecter au Panel
|
|
|
|
**Symptômes** : "Invalid credentials" ou "Not an OP"
|
|
|
|
```bash
|
|
# 1. Vérifier ops.txt
|
|
docker exec mc-nationsglory cat /mc-server/ops.txt
|
|
|
|
# 2. Ajouter un OP si nécessaire
|
|
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse
|
|
> op VotreNom
|
|
|
|
# 3. Vérifier le fichier users.json
|
|
cat backend/data/users.json
|
|
|
|
# 4. Vider le cache navigateur et réessayer
|
|
```
|
|
|
|
### L'Historique RCON ne se Sauvegarde Pas
|
|
|
|
**Symptômes** : Historique vide après redémarrage
|
|
|
|
```bash
|
|
# 1. Vérifier que le volume existe
|
|
docker volume ls | grep web
|
|
|
|
# 2. Vérifier les permissions
|
|
docker run --rm -v webnationsglory_serveurbuild_red_web-admin:/data alpine ls -la /data/.web-admin/
|
|
|
|
# 3. Vérifier que le dossier est créé
|
|
docker exec webnationsglory_serveurbuild_red-app-1 ls -la /mc-server/.web-admin/
|
|
|
|
# 4. Voir les logs pour erreurs d'écriture
|
|
docker-compose logs app | grep -i "history\|error"
|
|
```
|
|
|
|
### Les Paramètres ne se Sauvegardent Pas
|
|
|
|
**Symptômes** : Modifications dans Settings non persistées
|
|
|
|
```bash
|
|
# 1. Vérifier que le volume n'est pas en lecture seule
|
|
docker inspect webnationsglory_serveurbuild_red-app-1 | grep -A 10 Mounts
|
|
|
|
# 2. Vérifier les permissions de server.properties
|
|
docker exec mc-nationsglory ls -la /mc-server/server.properties
|
|
|
|
# 3. Tester l'écriture
|
|
docker exec webnationsglory_serveurbuild_red-app-1 touch /mc-server/test.txt
|
|
|
|
# 4. Voir les logs
|
|
docker-compose logs app | grep -i "settings\|server.properties"
|
|
```
|
|
|
|
### Le Serveur ne Redémarre/s'Arrête Pas
|
|
|
|
**Symptômes** : Boutons Shutdown/Restart ne fonctionnent pas
|
|
|
|
```bash
|
|
# 1. Vérifier la connexion RCON
|
|
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse
|
|
|
|
# 2. Tester la commande stop manuellement
|
|
docker exec -it mc-nationsglory rcon-cli --password VotreMotDePasse
|
|
> stop
|
|
|
|
# 3. Voir les logs du panel
|
|
docker-compose logs -f app
|
|
# Puis cliquer sur le bouton
|
|
|
|
# 4. Vérifier la console JavaScript (F12 dans le navigateur)
|
|
```
|
|
|
|
### Performance Lente
|
|
|
|
**Symptômes** : Le panel répond lentement
|
|
|
|
```bash
|
|
# 1. Vérifier l'utilisation CPU/RAM
|
|
docker stats webnationsglory_serveurbuild_red-app-1
|
|
|
|
# 2. Vérifier les logs pour erreurs
|
|
docker-compose logs app | grep -i error
|
|
|
|
# 3. Nettoyer l'historique RCON si trop volumineux
|
|
curl -X DELETE http://localhost:4001/api/rcon/history
|
|
|
|
# 4. Redémarrer le conteneur
|
|
docker-compose restart app
|
|
```
|
|
|
|
## 🔍 Vérifications de Santé
|
|
|
|
### Checklist Quotidienne
|
|
|
|
```bash
|
|
# Script de vérification
|
|
#!/bin/bash
|
|
|
|
echo "=== Vérification Panel NationsGlory ==="
|
|
|
|
# 1. Conteneur actif
|
|
docker-compose ps | grep -q "Up" && echo "✅ Conteneur actif" || echo "❌ Conteneur arrêté"
|
|
|
|
# 2. Panel accessible
|
|
curl -s http://localhost:4001 > /dev/null && echo "✅ Panel accessible" || echo "❌ Panel inaccessible"
|
|
|
|
# 3. RCON fonctionnel
|
|
docker exec mc-nationsglory rcon-cli --password VotreMotDePasse list > /dev/null 2>&1 && echo "✅ RCON OK" || echo "❌ RCON KO"
|
|
|
|
# 4. Volume web-admin existe
|
|
docker volume ls | grep -q web-admin && echo "✅ Volume web-admin OK" || echo "❌ Volume manquant"
|
|
|
|
# 5. Espace disque
|
|
df -h / | tail -1 | awk '{print "💾 Espace disque: " $5 " utilisé"}'
|
|
|
|
echo "=== Fin de la vérification ==="
|
|
```
|
|
|
|
### Checklist Hebdomadaire
|
|
|
|
- [ ] Vérifier les logs pour erreurs : `docker-compose logs app | grep -i error`
|
|
- [ ] Nettoyer les images Docker inutilisées : `docker image prune`
|
|
- [ ] Vérifier l'espace disque : `df -h`
|
|
- [ ] Tester la connexion au panel
|
|
- [ ] Tester l'envoi de commandes RCON
|
|
- [ ] Vérifier que les backups fonctionnent
|
|
|
|
### Checklist Mensuelle
|
|
|
|
- [ ] Backup complet du volume web-admin
|
|
- [ ] Mise à jour du panel (si disponible)
|
|
- [ ] Vérifier les certificats SSL (si HTTPS)
|
|
- [ ] Nettoyer les logs anciens
|
|
- [ ] Réviser les accès OP
|
|
- [ ] Tester la restauration d'un backup
|
|
|
|
## 📝 Logs Utiles
|
|
|
|
### Emplacement des Logs
|
|
|
|
```bash
|
|
# Logs Docker du panel
|
|
docker-compose logs app
|
|
|
|
# Logs Nginx (si reverse proxy)
|
|
/var/log/nginx/nationsglory-admin-access.log
|
|
/var/log/nginx/nationsglory-admin-error.log
|
|
|
|
# Logs du serveur Minecraft
|
|
docker exec mc-nationsglory cat /mc-server/logs/latest.log
|
|
```
|
|
|
|
### Recherche dans les Logs
|
|
|
|
```bash
|
|
# Erreurs uniquement
|
|
docker-compose logs app | grep -i error
|
|
|
|
# Connexions
|
|
docker-compose logs app | grep -i "login\|auth"
|
|
|
|
# Commandes RCON
|
|
docker-compose logs app | grep -i rcon
|
|
|
|
# Dernières 24h
|
|
docker-compose logs --since 24h app
|
|
```
|
|
|
|
## 🚨 Alertes et Notifications
|
|
|
|
### Script de Monitoring
|
|
|
|
Créez `/opt/monitor-nationsglory.sh` :
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
WEBHOOK="https://discord.com/api/webhooks/..." # Discord webhook (optionnel)
|
|
|
|
# Vérifier que le panel tourne
|
|
if ! curl -s http://localhost:4001 > /dev/null; then
|
|
echo "❌ ALERTE: Panel NationsGlory inaccessible!"
|
|
# curl -X POST -H 'Content-Type: application/json' \
|
|
# -d '{"content":"🚨 Panel NationsGlory DOWN!"}' \
|
|
# "$WEBHOOK"
|
|
exit 1
|
|
fi
|
|
|
|
# Vérifier RCON
|
|
if ! docker exec mc-nationsglory rcon-cli --password VotreMotDePasse list > /dev/null 2>&1; then
|
|
echo "❌ ALERTE: RCON ne répond pas!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Tout fonctionne normalement"
|
|
```
|
|
|
|
Cron toutes les 5 minutes :
|
|
|
|
```bash
|
|
crontab -e
|
|
# Ajouter: */5 * * * * /opt/monitor-nationsglory.sh
|
|
```
|
|
|
|
## 📚 Ressources
|
|
|
|
- [README.md](README.md) - Vue d'ensemble
|
|
- [CONFIGURATION.md](CONFIGURATION.md) - Configuration détaillée
|
|
- [DEPLOYMENT.md](DEPLOYMENT.md) - Guide de déploiement
|
|
- [CHANGELOG.md](CHANGELOG.md) - Historique des versions
|
|
|
|
---
|
|
|
|
**Support** : Pour tout problème non résolu, vérifier les logs avec `docker-compose logs -f app` et consulter la section Dépannage.
|