4NK_IA_back/Makefile
root bf2c0901f4 feat: Organisation des scripts et amélioration de l'installation
- Création du répertoire scripts/ avec tous les scripts d'installation et de test
- Scripts d'installation automatique (install.sh, quick-start.sh)
- Scripts de maintenance complète (maintenance.sh)
- Scripts de test (test-installation.sh, test-api.sh, test-services.sh, test-integration.sh)
- Amélioration du Dockerfile avec healthchecks et sécurité
- Mise à jour du docker-compose.yml avec healthchecks et dépendances
- Makefile étendu avec nouvelles commandes
- Documentation complète mise à jour
- Fichier de configuration d'exemple (env.example)
- app.py corrigé et fonctionnel
2025-09-11 00:41:57 +02:00

127 lines
3.8 KiB
Makefile

SHELL := /bin/bash
ENV ?= infra/.env
# Charger les variables d'environnement
include $(ENV)
export
.PHONY: help up down bootstrap logs ps seed-anythingllm clean restart
help: ## Afficher l'aide
@echo "Commandes disponibles :"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
up: ## Démarrer tous les services
cd infra && docker compose up -d
down: ## Arrêter tous les services
cd infra && docker compose down
bootstrap: ## Initialiser l'infrastructure
bash ops/bootstrap.sh
logs: ## Afficher les logs
cd infra && docker compose logs -f --tail=200
ps: ## Afficher le statut des services
cd infra && docker compose ps
seed-anythingllm: ## Créer les workspaces AnythingLLM
@echo "Création des workspaces AnythingLLM..."
curl -s -X POST "$(ANYLLM_BASE_URL)/api/workspaces" \
-H "Authorization: Bearer $(ANYLLM_API_KEY)" \
-H "Content-Type: application/json" \
-d '{"name":"$(ANYLLM_WORKSPACE_NORMES)"}' || true; \
curl -s -X POST "$(ANYLLM_BASE_URL)/api/workspaces" \
-H "Authorization: Bearer $(ANYLLM_API_KEY)" \
-H "Content-Type: application/json" \
-d '{"name":"$(ANYLLM_WORKSPACE_TRAMES)"}' || true; \
curl -s -X POST "$(ANYLLM_BASE_URL)/api/workspaces" \
-H "Authorization: Bearer $(ANYLLM_API_KEY)" \
-H "Content-Type: application/json" \
-d '{"name":"$(ANYLLM_WORKSPACE_ACTES)"}' || true
clean: ## Nettoyer les volumes et images
cd infra && docker compose down -v
docker system prune -f
restart: ## Redémarrer tous les services
cd infra && docker compose restart
build: ## Reconstruire les images
cd infra && docker compose build --no-cache
test-api: ## Tester l'API
curl -F "file=@tests/data/sample.pdf" \
-F "id_dossier=D-2025-001" \
-F "source=upload" \
-F "etude_id=E-001" \
-F "utilisateur_id=U-123" \
http://localhost:8000/api/import
status: ## Vérifier le statut de tous les services
@echo "=== Statut des services ==="
@make ps
@echo ""
@echo "=== Test de connectivité ==="
@curl -s http://localhost:8000/api/health || echo "API non accessible"
@curl -s http://localhost:3001/api/health || echo "AnythingLLM non accessible"
@curl -s http://localhost:3000/api/health || echo "Grafana non accessible"
# Nouvelles commandes d'installation et maintenance
install: ## Installation complète du système
./scripts/install.sh
quick-start: ## Démarrage rapide des services essentiels
./scripts/quick-start.sh
maintenance: ## Menu de maintenance interactif
./scripts/maintenance.sh
backup: ## Créer une sauvegarde des données
./scripts/maintenance.sh backup
restore: ## Restaurer une sauvegarde
@read -p "Fichier de sauvegarde: " file; \
./scripts/maintenance.sh restore "$$file"
health-check: ## Vérification détaillée de la santé des services
./scripts/maintenance.sh health
shell-api: ## Ouvrir un shell dans le container API
./scripts/maintenance.sh shell
logs-api: ## Logs spécifiques de l'API
./scripts/maintenance.sh logs host-api
logs-db: ## Logs spécifiques de la base de données
./scripts/maintenance.sh logs postgres
logs-redis: ## Logs spécifiques de Redis
./scripts/maintenance.sh logs redis
logs-minio: ## Logs spécifiques de MinIO
./scripts/maintenance.sh logs minio
clean-all: ## Nettoyage complet (volumes + images)
./scripts/maintenance.sh clean
update-images: ## Mise à jour des images Docker
./scripts/maintenance.sh update
# Commandes de test
test: ## Exécuter tous les tests
./scripts/run-all-tests.sh
test-install: ## Tests d'installation et configuration
./scripts/test-installation.sh
test-services: ## Tests des services Docker
./scripts/test-services.sh
test-api: ## Tests de l'API
./scripts/test-api.sh
test-integration: ## Tests d'intégration complets
./scripts/test-integration.sh