feat: Update .env.example and Docker Compose configurations to enhance service performance and health checks. Adjust OCR settings for improved document processing efficiency, and refine API Gateway health checks for better service monitoring. Revise desktop application documentation to reflect new API Gateway URL and installation instructions.

This commit is contained in:
erik
2026-07-06 04:30:27 -05:00
parent 081da999d4
commit c37c40663d
39 changed files with 4815 additions and 1232 deletions
+42 -10
View File
@@ -7,14 +7,14 @@ Arquitectura de microservicios: cada servicio tiene su propia API, dependencias,
## Servicios
| Servicio | Puerto | Tecnología | Descripción |
|----------|--------|------------|-------------|
| `api_gateway` | 8000 | Python/FastAPI | Puerta de enlace única; enruta hacia los demás servicios |
| `extraction` | 8001 | Python/FastAPI | Extracción LLM de campos; orquestación de jobs y conteo |
| `cleaning` | 8002 | Python/FastAPI | Normalización y limpieza de datos extraídos |
| `count-api` | 8080 (→ 8081) | Go | Conteo de servicios en facturas con OCR + ONNX (sin estado) |
| `database` | 5432 | PostgreSQL 16 | Base de datos compartida |
| `redis` | 6379 | Redis 7 | Cola ARQ para workers de extracción |
| Servicio | Puerto (host) | Puerto (interno) | Tecnología | Descripción |
|----------|---------------|------------------|------------|-------------|
| `api_gateway` | **8189** | 8000 | Python/FastAPI | Única puerta de entrada expuesta al host |
| `extraction` | — | 8001 | Python/FastAPI | Extracción LLM; solo red Docker |
| `cleaning` | — | 8002 | Python/FastAPI | Limpieza; solo red Docker |
| `count-api` | — | 8080 | Go | Conteo OCR+ONNX; solo red Docker |
| `database` | — | 5432 | PostgreSQL 16 | Solo red Docker |
| `redis` | — | 6379 | Redis 7 | Solo red Docker |
| `desktop_app` | local | Electron + React | Aplicación de escritorio |
---
@@ -50,10 +50,42 @@ docker compose up --build
Health checks:
```bash
curl http://localhost:8000/health # gateway (agrega estado de los 3 servicios)
curl http://localhost:8081/health # count-api (directo)
curl http://127.0.0.1:8189/health/live # liveness del gateway (rápido)
curl http://127.0.0.1:8189/health # gateway (agrega estado de los 3 servicios)
curl http://127.0.0.1:8189/jobs # lista de trabajos
```
> **Windows:** use `127.0.0.1` en lugar de `localhost` para el API Gateway. Docker publica el puerto en IPv4; `localhost` puede resolver a `::1` y la conexión queda colgada.
> Los demás servicios (extraction, count-api, postgres, redis) **no** exponen puertos al host; solo el gateway en **8189**.
### Solución a fallos de build paralelo en Docker Desktop
Si `docker compose up --build` falla con `frontend grpc server closed unexpectedly` al construir `count-api`, es porque Docker Desktop (Compose v2.37+) lanza todos los builds en paralelo y BuildKit se satura. Hay dos opciones:
**Opción A — pre-construir count-api antes del stack completo (recomendada):**
```bash
docker compose build count-api
docker compose up --build
```
**Opción B — desactivar Bake y limitar el paralelismo:**
```powershell
# PowerShell
$env:COMPOSE_BAKE="false"
$env:COMPOSE_PARALLEL_LIMIT="2"
docker compose up --build
```
```bash
# bash / WSL
COMPOSE_BAKE=false COMPOSE_PARALLEL_LIMIT=2 docker compose up --build
```
Ver también las variables `COMPOSE_BAKE` y `COMPOSE_PARALLEL_LIMIT` en `.env.example`.
---
## Variables de entorno principales