# Caddyfile used only by the E2E test stack. Listens on the in-container :3101 # (mapped to host :3101) and proxies API + media to the backend, everything else # to the SvelteKit frontend container — same layout as production but stripped # of HTTPS/Let's Encrypt. :3101 { # Mirror prod: exclude the SSE stream from compression so buffering doesn't # delay real-time events (and so the test stack exercises the real behavior). @compressible not path /api/v1/stream encode @compressible zstd gzip # Mirror prod's security headers (minus HSTS, which is HTTPS-only). header { X-Content-Type-Options "nosniff" X-Frame-Options "DENY" Referrer-Policy "strict-origin-when-cross-origin" } reverse_proxy /api/* app:3000 reverse_proxy /media/* app:3000 reverse_proxy /health app:3000 reverse_proxy frontend:3001 }