69bcc3e342
- Add source maps and web renderer build arguments with defaults - Configure Caddy with CSP headers, cache policies, and service worker handling - Defer loading of import screen for performance optimization - Add semantic labels to icons for accessibility - Update web index.html with Swedish language, meta tags, and description - Add robots.txt and lighthouse configuration - Add new planning documents and archive entries
37 lines
1.2 KiB
Caddyfile
37 lines
1.2 KiB
Caddyfile
:{$PORT:5000} {
|
||
root * /usr/share/caddy
|
||
|
||
header {
|
||
Content-Security-Policy "default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; connect-src 'self' https: http: ws: wss:; worker-src 'self' blob:"
|
||
}
|
||
|
||
@staticAssets {
|
||
path *.js *.wasm *.woff *.woff2 *.ttf *.otf
|
||
}
|
||
header @staticAssets Cache-Control "public, max-age=86400"
|
||
|
||
@hashedAssets {
|
||
path_regexp hashedAssets .*[._-][0-9a-fA-F]{8,}\.(js|css|wasm|woff2?|ttf|otf)$
|
||
}
|
||
header @hashedAssets Cache-Control "public, max-age=31536000, immutable"
|
||
|
||
@serviceWorker path /flutter_service_worker.js /version.json
|
||
header @serviceWorker Cache-Control "no-cache, must-revalidate"
|
||
|
||
@index path / /index.html
|
||
header @index Cache-Control "public, max-age=300, must-revalidate"
|
||
|
||
# Proxy API calls to backend service on the internal Docker network.
|
||
handle /api/* {
|
||
reverse_proxy recipe-api:8080
|
||
}
|
||
|
||
# SPA-routing – returnera alltid index.html för okända paths
|
||
handle {
|
||
try_files {path} /index.html
|
||
file_server
|
||
}
|
||
|
||
encode gzip
|
||
}
|