
- Infrastructure complète de traitement de documents notariaux - API FastAPI d'ingestion et d'orchestration - Pipelines Celery pour le traitement asynchrone - Support des formats PDF, JPEG, PNG, TIFF, HEIC - OCR avec Tesseract et correction lexicale - Classification automatique des documents avec Ollama - Extraction de données structurées - Indexation dans AnythingLLM et OpenSearch - Système de vérifications et contrôles métier - Base de données PostgreSQL pour le métier - Stockage objet avec MinIO - Base de données graphe Neo4j - Recherche plein-texte avec OpenSearch - Supervision avec Prometheus et Grafana - Scripts d'installation pour Debian - Documentation complète - Tests unitaires et de performance - Service systemd pour le déploiement - Scripts de déploiement automatisés
70 lines
2.2 KiB
Makefile
70 lines
2.2 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"
|