From 5ec2b2cadcc3c4590f39cae4cdc17419eee5f1aa Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sun, 14 Jun 2026 09:51:40 +0200 Subject: [PATCH] F5: fix uptime-kuma healthcheck (v2 uses compiled extra/healthcheck binary) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The override pointed at a v1-era node /app/extra/healthcheck.mjs that does not exist in louislam/uptime-kuma:2, so the container was permanently unhealthy and Traefik withheld the route → the app URL 404'd despite the app running. Point at the correct binary (extra/healthcheck, WORKDIR /app) and use the image's timing (180s start_period) to avoid transient unhealthy→404 on first boot. --- templates/uptime-kuma/docker-compose.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/templates/uptime-kuma/docker-compose.yml b/templates/uptime-kuma/docker-compose.yml index 789f252..856689a 100644 --- a/templates/uptime-kuma/docker-compose.yml +++ b/templates/uptime-kuma/docker-compose.yml @@ -21,12 +21,16 @@ services: resources: limits: memory: 256M + # uptime-kuma:2 ships its healthcheck as a compiled binary at /app/extra/healthcheck (WORKDIR /app); + # the old override pointed at a v1-era /app/extra/healthcheck.mjs that does NOT exist in v2, so the + # container stayed permanently "unhealthy" → Traefik withheld the route → the URL 404'd although the + # app was running (F5). Use the correct binary and the image's own timing (180s first-boot window). healthcheck: - test: ["CMD", "node", "/app/extra/healthcheck.mjs"] + test: ["CMD", "extra/healthcheck"] interval: 30s - timeout: 5s - retries: 3 - start_period: 30s + timeout: 30s + retries: 5 + start_period: 180s labels: - "traefik.enable=true" - "traefik.http.routers.uptime-kuma.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"