Restructure project following production-ready standards
- Add comprehensive docker-compose configuration with health checks - Create Makefile with 16 utility commands for easy management - Implement robust backup/restore/update scripts with error handling - Add optimized PostgreSQL configuration for Gitea workload - Enhance .env.example with clear dev/prod sections and documentation - Create comprehensive README with installation, configuration, and maintenance guides - Improve .gitignore to exclude all sensitive and generated files - Add Redis persistence (AOF) and memory limits - Configure service dependencies with health conditions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
86
Makefile
Normal file
86
Makefile
Normal file
@@ -0,0 +1,86 @@
|
||||
.PHONY: help up down restart ps logs logs-f backup restore update health shell-gitea shell-db clean
|
||||
|
||||
# Include .env file if it exists
|
||||
-include .env
|
||||
export
|
||||
|
||||
help: ## Afficher cette aide
|
||||
@echo "Commandes disponibles pour Gitea Docker :"
|
||||
@echo ""
|
||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
up: ## Démarrer tous les services
|
||||
@echo "Démarrage des services Gitea..."
|
||||
@docker compose up -d
|
||||
@echo "Services démarrés. Accédez à Gitea sur http://localhost:3000"
|
||||
|
||||
down: ## Arrêter tous les services
|
||||
@echo "Arrêt des services..."
|
||||
@docker compose down
|
||||
|
||||
restart: ## Redémarrer tous les services
|
||||
@echo "Redémarrage des services..."
|
||||
@docker compose restart
|
||||
|
||||
ps: ## Afficher le statut des services
|
||||
@docker compose ps
|
||||
|
||||
logs: ## Afficher les logs (dernières 100 lignes)
|
||||
@docker compose logs --tail=100
|
||||
|
||||
logs-f: ## Suivre les logs en temps réel
|
||||
@docker compose logs -f
|
||||
|
||||
backup: ## Créer une sauvegarde complète (DB + repositories)
|
||||
@bash scripts/backup.sh
|
||||
|
||||
restore: ## Restaurer depuis une sauvegarde (usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz)
|
||||
@if [ -z "$(FILE)" ]; then \
|
||||
echo "Erreur: Spécifiez le fichier de sauvegarde avec FILE="; \
|
||||
echo "Usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@bash scripts/restore.sh "$(FILE)"
|
||||
|
||||
update: ## Mettre à jour Gitea (avec backup automatique)
|
||||
@bash scripts/update.sh
|
||||
|
||||
health: ## Vérifier la santé des services
|
||||
@echo "État de santé des services:"
|
||||
@echo ""
|
||||
@docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Health}}"
|
||||
@echo ""
|
||||
@echo "Détails des health checks:"
|
||||
@docker inspect --format='{{.Name}}: {{.State.Health.Status}}' $$(docker compose ps -q) 2>/dev/null || echo "Aucun service en cours d'exécution"
|
||||
|
||||
shell-gitea: ## Ouvrir un shell dans le conteneur Gitea
|
||||
@docker compose exec gitea /bin/sh
|
||||
|
||||
shell-db: ## Ouvrir un shell PostgreSQL
|
||||
@docker compose exec db psql -U $(POSTGRES_USER) -d $(POSTGRES_DATABASE)
|
||||
|
||||
clean: ## Nettoyer les conteneurs arrêtés et volumes non utilisés
|
||||
@echo "Nettoyage des conteneurs arrêtés..."
|
||||
@docker compose down -v
|
||||
@echo "Nettoyage terminé"
|
||||
|
||||
pull: ## Télécharger les dernières images Docker
|
||||
@docker compose pull
|
||||
|
||||
build: ## Rebuild les images si nécessaire
|
||||
@docker compose build
|
||||
|
||||
config: ## Valider et afficher la configuration docker-compose
|
||||
@docker compose config
|
||||
|
||||
# Commandes avancées
|
||||
admin-create: ## Créer un utilisateur admin (usage: make admin-create USER=admin EMAIL=admin@example.com)
|
||||
@if [ -z "$(USER)" ] || [ -z "$(EMAIL)" ]; then \
|
||||
echo "Usage: make admin-create USER=username EMAIL=email@example.com"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@docker compose exec gitea gitea admin user create --admin --username $(USER) --email $(EMAIL) --password "ChangeMe123!"
|
||||
@echo "Utilisateur admin créé. Mot de passe par défaut: ChangeMe123!"
|
||||
|
||||
stats: ## Afficher les statistiques d'utilisation des ressources
|
||||
@docker stats --no-stream $$(docker compose ps -q)
|
||||
Reference in New Issue
Block a user