# Makefile pour Gitea - Agence66 # Usage: make [commande] .PHONY: help up down restart ps logs logs-f backup restore update health shell-gitea shell-db clean pull build config admin-create stats env-example # Include .env file if it exists -include .env export # Couleurs pour l'affichage BLUE := \033[0;34m GREEN := \033[0;32m YELLOW := \033[1;33m RED := \033[0;31m NC := \033[0m help: ## Affiche cette aide @echo -e "$(BLUE)Gitea - Agence66$(NC)" @echo "" @echo -e "$(YELLOW)Commandes disponibles:$(NC)" @grep -hE '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-20s$(NC) %s\n", $$1, $$2}' ## Gestion des services up: ## Démarre tous les services @echo -e "$(BLUE)Démarrage des services Gitea...$(NC)" @docker compose up -d @echo -e "$(GREEN)Services démarrés !$(NC) Accédez à Gitea sur http://localhost:3000" down: ## Arrête tous les services @echo -e "$(YELLOW)Arrêt des services...$(NC)" @docker compose down @echo -e "$(GREEN)Services arrêtés$(NC)" restart: ## Redémarre tous les services @echo -e "$(BLUE)Redémarrage des services...$(NC)" @docker compose restart @echo -e "$(GREEN)Services redémarrés$(NC)" ps: ## Affiche le statut des services @echo -e "$(BLUE)Statut des services:$(NC)" @docker compose ps ## Logs et monitoring logs: ## Affiche les logs (dernières 100 lignes) @echo -e "$(BLUE)Logs des services (100 dernières lignes):$(NC)" @docker compose logs --tail=100 logs-f: ## Suit les logs en temps réel @echo -e "$(BLUE)Logs en temps réel (Ctrl+C pour arrêter):$(NC)" @docker compose logs -f health: ## Vérifie la santé des services @echo -e "$(BLUE)État de santé des services:$(NC)" @echo "" @docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Health}}" @echo "" @echo -e "$(BLUE)Détails des health checks:$(NC)" @docker inspect --format='{{.Name}}: {{.State.Health.Status}}' $$(docker compose ps -q) 2>/dev/null || echo -e "$(YELLOW)Aucun service en cours d'exécution$(NC)" stats: ## Affiche les statistiques d'utilisation des ressources @echo -e "$(BLUE)Statistiques des conteneurs:$(NC)" @docker stats --no-stream $$(docker compose ps -q) ## Sauvegarde et restauration backup: ## Crée une sauvegarde complète (DB + repositories) @echo -e "$(BLUE)Création de la sauvegarde...$(NC)" @bash scripts/backup.sh @echo -e "$(GREEN)Sauvegarde terminée$(NC)" restore: ## Restaure depuis une sauvegarde (usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz) @if [ -z "$(FILE)" ]; then \ echo -e "$(RED)Erreur: Spécifiez le fichier de sauvegarde avec FILE=$(NC)"; \ echo -e "$(YELLOW)Usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz$(NC)"; \ exit 1; \ fi @echo -e "$(BLUE)Restauration depuis $(FILE)...$(NC)" @bash scripts/restore.sh "$(FILE)" @echo -e "$(GREEN)Restauration terminée$(NC)" ## Mise à jour et maintenance update: ## Met à jour Gitea (avec backup automatique) @echo -e "$(BLUE)Mise à jour de Gitea...$(NC)" @bash scripts/update.sh @echo -e "$(GREEN)Mise à jour terminée$(NC)" pull: ## Télécharge les dernières images Docker @echo -e "$(BLUE)Téléchargement des dernières images...$(NC)" @docker compose pull @echo -e "$(GREEN)Images téléchargées$(NC)" build: ## Rebuild les images si nécessaire @echo -e "$(BLUE)Build des images...$(NC)" @docker compose build @echo -e "$(GREEN)Build terminé$(NC)" config: ## Valide et affiche la configuration docker-compose @echo -e "$(BLUE)Configuration docker-compose:$(NC)" @docker compose config ## Shells et accès shell-gitea: ## Ouvre un shell dans le conteneur Gitea @echo -e "$(BLUE)Ouverture du shell Gitea...$(NC)" @docker compose exec gitea /bin/sh shell-db: ## Ouvre un shell PostgreSQL @echo -e "$(BLUE)Ouverture du shell PostgreSQL...$(NC)" @docker compose exec db psql -U $(POSTGRES_USER) -d $(POSTGRES_DATABASE) ## Administration admin-create: ## Crée un utilisateur admin (usage: make admin-create USER=admin EMAIL=admin@example.com) @if [ -z "$(USER)" ] || [ -z "$(EMAIL)" ]; then \ echo -e "$(RED)Usage: make admin-create USER=username EMAIL=email@example.com$(NC)"; \ exit 1; \ fi @echo -e "$(BLUE)Création de l'utilisateur admin...$(NC)" @docker compose exec gitea gitea admin user create --admin --username $(USER) --email $(EMAIL) --password "ChangeMe123!" @echo -e "$(GREEN)Utilisateur admin créé !$(NC)" @echo -e "$(YELLOW)Mot de passe par défaut: ChangeMe123!$(NC)" ## Nettoyage clean: ## Nettoie les conteneurs arrêtés et volumes non utilisés @echo -e "$(YELLOW)Nettoyage des conteneurs et volumes...$(NC)" @docker compose down -v @echo -e "$(GREEN)Nettoyage terminé$(NC)" ## Configuration env-example: ## Affiche un exemple de fichier .env @if [ -f .env.example ]; then \ cat .env.example; \ else \ echo -e "$(RED)Fichier .env.example non trouvé$(NC)"; \ fi quick-setup: ## Configuration rapide (copie .env.example vers .env) @if [ ! -f .env ]; then \ echo -e "$(BLUE)Création du fichier .env...$(NC)"; \ cp .env.example .env; \ echo -e "$(GREEN)Fichier .env créé !$(NC)"; \ echo -e "$(YELLOW)Éditez maintenant .env avec vos vraies valeurs:$(NC)"; \ echo " nano .env"; \ else \ echo -e "$(YELLOW)Le fichier .env existe déjà$(NC)"; \ fi