Default configuration serveur Build NG RED
This commit is contained in:
129
Makefile
Normal file
129
Makefile
Normal file
@@ -0,0 +1,129 @@
|
||||
# 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é"
|
||||
Reference in New Issue
Block a user