meldestelle/config/docker/caddy/web-app/Caddyfile
StefanMoCoAt 07bd114df1
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 6m11s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 4m17s
- **feat(OnlineNennungFormular):** Zeige eindeutige Versionsnummer zur besseren Nachverfolgbarkeit an.
- **chore(Caddyfile):** Passe Caching-Strategie für `.wasm` und `.js` zur Vermeidung von Ladeproblemen während der Entwicklung an.
2026-04-23 06:14:39 +02:00

62 lines
1.4 KiB
Caddyfile

{
auto_https off
metrics
}
:80 {
root * /usr/share/caddy
log {
output stdout
format json
}
header {
Cross-Origin-Embedder-Policy "require-corp"
Cross-Origin-Opener-Policy "same-origin"
}
encode gzip zstd
# Reverse Proxy: Plan-B leitet nur /api/mail an den Mail-Service weiter (kein API-Gateway nötig)
handle /api/mail/* {
reverse_proxy mail-service:8085
}
handle /health {
respond "healthy" 200
}
# Korrekte MIME für .wasm sicherstellen (Caddy erkennt es i. d. R. automatisch; hier explizit)
@wasm {
path *.wasm
}
header @wasm Content-Type "application/wasm"
# Caching-Strategie: Immutable Assets (hash-Dateien)
# WICHTIG: .wasm und .js werden hier gecached. Falls die Dateinamen gleich bleiben,
# wird der Browser sie NICHT neu laden.
@immutable {
path *.png *.svg *.ico *.woff2 *.map
}
header @immutable Cache-Control "public, max-age=31536000, immutable"
# Wasm und JS Dateien: Kein Cache während der aktiven Entwicklungsphase (Plan-B)
# um "Alte Seite" Probleme zu vermeiden.
@wasm_js {
path *.wasm *.js
}
header @wasm_js Cache-Control "no-store, no-cache, must-revalidate"
# Keine Cache-Header für SPA-Einstieg und Laufzeitkonfig
@nocache {
path /index.html /config.json
}
header @nocache Cache-Control "no-store"
# Static file serving mit SPA-Fallback
handle {
try_files {path} /index.html
file_server
}
}