meldestelle/config/docker/caddy/web-app/Caddyfile
stefan 1afb95c40c
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 7m3s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 8m36s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m56s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m53s
Add security headers to Caddyfile and update file server configuration
2026-03-14 18:26:22 +01:00

50 lines
1.2 KiB
Caddyfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
# TLS wird durch Pangolin/Traefik auf dem VPS terminiert hier kein HTTPS nötig
auto_https off
servers {
metrics
}
}
:4000 {
# Root-Verzeichnis für statische Assets
root * /usr/share/caddy
# Logging (strukturiert, JSON)
log {
output stdout
format json
}
# Sicherheits-Header für SharedArrayBuffer (benötigt für SQLite WASM)
header {
# Erlaubt das Laden von Cross-Origin-Ressourcen, aber nur wenn diese es explizit erlauben
Cross-Origin-Embedder-Policy "require-corp"
# Isoliert den Kontext, um Sicherheitsrisiken zu minimieren
Cross-Origin-Opener-Policy "same-origin"
}
# Komprimierung
encode gzip zstd
# Caddy-Template-Engine: ersetzt {{.Env.VAR}} in index.html UND config.json
templates
file_server
# API-Proxy (höchste Priorität vor dem SPA-Fallback)
handle /api/* {
reverse_proxy api-gateway:8081
}
# Health-Check-Endpunkt (für Pangolin Health-Check konfigurieren: GET /health)
handle /health {
respond "healthy" 200
}
# SPA-Fallback: existierende Dateien direkt ausliefern, sonst index.html
handle {
try_files {path} /index.html
}
}