130 lines
5.6 KiB
Makefile
130 lines
5.6 KiB
Makefile
# 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é"
|