Compare commits

...

3 Commits

Author SHA1 Message Date
admin 2c0788db35 zipline: health path /api/health -> /api/healthcheck (404 in v4)
With the DATABASE_URL fix zipline started cleanly ('server started
hostname=0.0.0.0 port=3000') but stayed unhealthy. Probing the running container
from inside:

  /api/health       -> 404
  /api/healthcheck  -> 200

v4 renamed the endpoint; the template still probed the v3 path.

Campaign 7 catalog sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE
2026-07-19 02:32:58 +02:00
admin 28764f19c0 tandoor: start_period 30s -> 240s (probes exhausted before gunicorn bound)
After the memory fix tandoor still never went healthy. The probe output was
'wget: can't connect to remote host (127.0.0.1): Connection refused' while the
app log was still printing 'Booting worker' / 'Running django-vite' -- i.e. the
app had simply not finished starting. With start_period 30s and retries 3 the
healthcheck gave up at roughly two minutes.

Campaign 7 catalog sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE
2026-07-19 02:32:58 +02:00
admin ccbc52787a homebox: healthcheck must GET, not HEAD (--spider hit a 405)
With the image and the pepper fixed, homebox still sat unhealthy. The probe's own
exit code was 8 (server error response) and homebox's log shows exactly why:

  method=HEAD path=/api/v1/status status=405
  method=GET  path=/api/v1/status status=200

'wget --spider' issues a HEAD request; homebox's status endpoint only implements
GET. Switched to 'wget -q -O /dev/null' (a real GET).

NOTE: 24 templates use --spider. The rest validated green, so their endpoints do
answer HEAD -- but this is a latent trap worth a convention note (see the
campaign doc).

Campaign 7 catalog sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE
2026-07-19 02:32:58 +02:00
3 changed files with 8 additions and 3 deletions
+4 -1
View File
@@ -29,7 +29,10 @@ services:
limits: limits:
memory: 256M memory: 256M
healthcheck: healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:7745/api/v1/status"] # NEM --spider: az HEAD kérést küld, amire a homebox /api/v1/status
# 405-tel válaszol (GET-re viszont 200). A próba emiatt hibázott,
# a konténer unhealthy lett, a Traefik pedig 404-et adott.
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:7745/api/v1/status"]
interval: 30s interval: 30s
timeout: 5s timeout: 5s
retries: 3 retries: 3
+3 -1
View File
@@ -40,7 +40,9 @@ services:
interval: 30s interval: 30s
timeout: 5s timeout: 5s
retries: 3 retries: 3
start_period: 30s # A tandoor (django-vite + migrációk) lassan bindol: 30s alatt még
# "Connection refused" jött, és a próbák elfogytak, mielőtt elindult.
start_period: 240s
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.tandoor.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" - "traefik.http.routers.tandoor.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
+1 -1
View File
@@ -35,7 +35,7 @@ services:
limits: limits:
memory: 512M memory: 512M
healthcheck: healthcheck:
test: ["CMD", "node", "-e", "const http = require('http'); http.get('http://127.0.0.1:3000/api/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1) }).on('error', () => process.exit(1))"] test: ["CMD", "node", "-e", "const http = require('http'); http.get('http://127.0.0.1:3000/api/healthcheck', (r) => { process.exit(r.statusCode === 200 ? 0 : 1) }).on('error', () => process.exit(1))"]
interval: 30s interval: 30s
timeout: 5s timeout: 5s
retries: 3 retries: 3