Node 20 reached end-of-life and gets no fix for CVE-2026-111497 (Brotli decoder OOB write). node:24-alpine currently resolves to 24.22.1, which carries the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AqpXh3hQMMaC74pTjFq4it
Coolify inspects Docker .State.Health.Status; container needs a HEALTHCHECK instruction for the health gate to pass. Agent-Session: runner-dashboard-deploy-2026-06-19
Node 20 / no-framework HTTP service. Routes: /healthz (no auth), /api/runners (proxy to GitHub), / (dashboard UI). Dark theme, Basic Auth, 15s poll, stale-data strip, token-missing empty state. Agent-Session: runner-dashboard-deploy-2026-06-19