Frontend crash-loopt: ongeldige respond-subdirective in Caddyfile (app volledig offline ondanks groene CI) #20
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptoom
De applicatie is voor gebruikers volledig offline (ook de frontend), terwijl álle CI-runs groen zijn — inclusief de nieuwe PocketBase-health-gate uit #18/PR #19.
Root cause (bewezen)
Commit
89d3395(vanochtend 10:19, direct op main) voegde aan het productie-Caddyfileeenhandle_errors-blok toe met:respondaccepteert alleenbody/closeals subdirectives —Content-Typehoort in een losseheader-directive. Dit is een Caddyfile-parse-fout; Caddy weigert te starten en delearning-platform-container crash-loopt. Empirisch bevestigd met Caddy v2.10.0:Tijdlijn: het eerste image met dit Caddyfile is om 08:21Z gebouwd en 08:23Z gedeployed (run #88). Elke run daarna (#89, #90, #91) hergebruikte de kapotte config → de frontend is sinds ±08:25Z down. De buitenste proxy geeft anonieme bezoekers gewoon een 302 naar de auth-gate, dus van buiten lijkt alles normaal; ingelogde gebruikers krijgen niets.
Waarom CI dit niet zag (twee blinde vlekken)
test.ymltest nooit het echte Caddyfile: het testimage vervangt het doorCaddyfile.test(COPY Caddyfile.test /etc/caddy/Caddyfile). Een parse-fout in het productiebestand komt dus door de test-job heen.Fix
Caddyfile:Content-Typealsheader @api-directive vóór derespond(gevalideerd metcaddy validate, config nu Valid;Caddyfile.testook gecontroleerd).docker exec learning-platform wget --spider http://127.0.0.1:80/, met log-dump en abort bij falen) + post-deploy smoke-report in de CI-log:docker compose ps, interne proxy-health,auth-methods(is de OIDC-provider echt geconfigureerd?), PocketBase-logtail — de zichtbaarheid achter de perimeter die vandaag ontbrak.Follow-up (buiten deze fix, ter overweging)
caddy validatevan het échteCaddyfileopnemen intest.yml(workflow is frozen; bewuste keuze voor de reviewer).Verificatie
caddy validateop gefixtCaddyfile: ValidGerelateerd: #18, PR #19 (health-gate PocketBase), run #86 (eerdere diagnostiek).