
- 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
127 lines
3.8 KiB
Makefile
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
|