# Makefile pour le serveur NationsGlory # Usage: make [commande] .PHONY: help start stop restart logs status backup restore migrate clean # Couleurs pour les messages BLUE=\033[0;34m GREEN=\033[0;32m YELLOW=\033[1;33m NC=\033[0m # No Color help: ## Affiche cette aide @echo "$(BLUE)╔══════════════════════════════════════════════════════════════════╗$(NC)" @echo "$(BLUE)║ 🎮 Serveur NationsGlory - Commandes disponibles ║$(NC)" @echo "$(BLUE)╚══════════════════════════════════════════════════════════════════╝$(NC)" @echo "" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-15s$(NC) %s\n", $$1, $$2}' @echo "" start: ## Démarrer le serveur @echo "$(BLUE)🚀 Démarrage du serveur NationsGlory...$(NC)" @docker-compose up -d @echo "$(GREEN)✅ Serveur démarré !$(NC)" @echo "$(YELLOW)Voir les logs: make logs$(NC)" stop: ## Arrêter le serveur @echo "$(BLUE)🛑 Arrêt du serveur...$(NC)" @docker-compose down @echo "$(GREEN)✅ Serveur arrêté$(NC)" restart: ## Redémarrer le serveur @echo "$(BLUE)🔄 Redémarrage du serveur...$(NC)" @docker-compose restart @echo "$(GREEN)✅ Serveur redémarré$(NC)" logs: ## Afficher les logs en temps réel @docker-compose logs -f --tail=100 status: ## Afficher l'état du serveur @echo "$(BLUE)📊 État du serveur:$(NC)" @docker-compose ps @echo "" @echo "$(BLUE)💾 Utilisation des ressources:$(NC)" @docker stats --no-stream mc-nationsglory 2>/dev/null || echo "Serveur non démarré" shell: ## Ouvrir un shell dans le conteneur @docker-compose exec nationsglory-modded bash console: ## Se connecter à la console serveur (RCON) @docker-compose exec nationsglory-modded rcon-cli backup: ## Créer une sauvegarde du monde @echo "$(BLUE)💾 Création d'un backup...$(NC)" @mkdir -p backups @docker-compose exec -T nationsglory-modded rcon-cli save-all flush || true @sleep 3 @tar -czf backups/world-$$(date +%Y%m%d-%H%M).tar.gz data/world/ data/ops.txt data/white-list.txt 2>/dev/null @echo "$(GREEN)✅ Backup créé: backups/world-$$(date +%Y%m%d-%H%M).tar.gz$(NC)" list-backups: ## Lister les sauvegardes @echo "$(BLUE)📦 Sauvegardes disponibles:$(NC)" @ls -lh backups/*.tar.gz 2>/dev/null || echo "Aucune sauvegarde" clean-logs: ## Nettoyer les anciens logs @echo "$(BLUE)🧹 Nettoyage des logs...$(NC)" @rm -f data/logs/*.log.gz @rm -f data/*.log.* @echo "$(GREEN)✅ Logs nettoyés$(NC)" clean-backups: ## Supprimer les backups > 7 jours @echo "$(BLUE)🧹 Nettoyage des anciens backups...$(NC)" @find backups/ -name "*.tar.gz" -mtime +7 -delete 2>/dev/null || true @echo "$(GREEN)✅ Anciens backups supprimés$(NC)" update: ## Mettre à jour l'image Docker @echo "$(BLUE)🔄 Mise à jour de l'image Docker...$(NC)" @docker-compose pull @echo "$(GREEN)✅ Image mise à jour$(NC)" @echo "$(YELLOW)Redémarrer avec: make restart$(NC)" migrate: ## Migrer le serveur vers /srv/minecraft @echo "$(BLUE)🚀 Migration vers /srv/minecraft...$(NC)" @sudo ./migrate-to-srv.sh reset-world: ## Réinitialiser le monde (⚠️ DESTRUCTIF) @echo "$(YELLOW)⚠️ ATTENTION: Cette opération va supprimer le monde actuel !$(NC)" @read -p "Continuer? [y/N] " -n 1 -r; \ echo ""; \ if [[ $$REPLY =~ ^[Yy]$$ ]]; then \ echo "$(BLUE)💾 Backup du monde actuel...$(NC)"; \ tar -czf backups/world-before-reset-$$(date +%Y%m%d-%H%M).tar.gz data/world/ 2>/dev/null; \ echo "$(BLUE)🛑 Arrêt du serveur...$(NC)"; \ docker-compose down; \ echo "$(BLUE)🗑️ Suppression du monde...$(NC)"; \ sudo rm -rf data/world/; \ echo "$(BLUE)🚀 Redémarrage...$(NC)"; \ docker-compose up -d; \ echo "$(GREEN)✅ Nouveau monde généré$(NC)"; \ else \ echo "$(YELLOW)Annulé$(NC)"; \ fi stats: ## Statistiques du serveur @echo "$(BLUE)📊 Statistiques:$(NC)" @echo " - Taille totale: $$(du -sh . | cut -f1)" @echo " - Mods: $$(ls -1 mods/*.jar 2>/dev/null | wc -l) fichiers" @echo " - Plugins: $$(ls -1 plugins/*.jar 2>/dev/null | wc -l) fichiers" @echo " - Monde: $$(du -sh data/world 2>/dev/null | cut -f1 || echo '0')" @echo " - Backups: $$(ls -1 backups/*.tar.gz 2>/dev/null | wc -l || echo '0')" @echo "" @echo "$(BLUE)🐳 Docker:$(NC)" @docker stats --no-stream mc-nationsglory 2>/dev/null || echo " Serveur non démarré" fix-permissions: ## Réparer les permissions des fichiers @echo "$(BLUE)🔐 Réparation des permissions...$(NC)" @sudo chown -R 1000:1000 . @sudo chmod -R 755 . @echo "$(GREEN)✅ Permissions corrigées$(NC)" check: ## Vérifier la configuration @echo "$(BLUE)🔍 Vérification de la configuration...$(NC)" @test -f docker-compose.yml && echo " ✅ docker-compose.yml" || echo " ❌ docker-compose.yml manquant" @test -f .env && echo " ✅ .env" || echo " ⚠️ .env manquant (copier .env.example)" @test -f data/mcpc.jar && echo " ✅ mcpc.jar" || echo " ❌ mcpc.jar manquant" @test -d mods && echo " ✅ mods/ ($$(ls -1 mods/*.jar 2>/dev/null | wc -l) fichiers)" || echo " ❌ mods/ manquant" @test -d plugins && echo " ✅ plugins/ ($$(ls -1 plugins/*.jar 2>/dev/null | wc -l) fichiers)" || echo " ❌ plugins/ manquant" @echo "" @command -v docker >/dev/null 2>&1 && echo " ✅ Docker installé" || echo " ❌ Docker non installé" @command -v docker-compose >/dev/null 2>&1 && echo " ✅ Docker Compose installé" || echo " ❌ Docker Compose non installé"