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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user