deploy(compose): healthcheck su server e client, depends_on condizionati (#38)

server: healthcheck su /api/health. client: healthcheck su /auth/login
(pagina di login, raggiungibile senza sessione). depends_on passa a
condition: service_healthy dove dipende da server/client (client->server,
nginx->server+client in dev). Aggiunge WEB_CONCURRENCY=4 e
TRUSTED_PROXY_COUNT=1 nell'environment del server (li legge il backend).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 22:33:32 +02:00
parent 0dce2299d0
commit ac9bc14f5d
2 changed files with 36 additions and 4 deletions
+16 -1
View File
@@ -35,11 +35,19 @@ services:
UPLOAD_DIR: uploads
VISION_WORKER_URL: http://vision:8100
SERVER_SECRET_KEY: ${SERVER_SECRET_KEY:?manca SERVER_SECRET_KEY}
WEB_CONCURRENCY: ${WEB_CONCURRENCY:-4}
TRUSTED_PROXY_COUNT: ${TRUSTED_PROXY_COUNT:-1}
volumes:
- upload_data:/app/uploads
depends_on:
mysql:
condition: service_healthy
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health', timeout=5)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
labels:
- "traefik.enable=true"
- "traefik.http.routers.tmflow-api.rule=Host(`tieflow.tielogic.xyz`) && (PathPrefix(`/api/`) || PathPrefix(`/uploads/`))"
@@ -81,7 +89,14 @@ services:
API_SERVER_URL: http://server:8000
CLIENT_SECRET_KEY: ${CLIENT_SECRET_KEY:?manca CLIENT_SECRET_KEY}
depends_on:
- server
server:
condition: service_healthy
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5000/auth/login', timeout=5)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
labels:
- "traefik.enable=true"
- "traefik.http.routers.tmflow-web.rule=Host(`tieflow.tielogic.xyz`)"