mirror of
https://github.com/PeWu/topola-viewer.git
synced 2026-05-26 15:16:14 +00:00
42 lines
1.0 KiB
Caddyfile
42 lines
1.0 KiB
Caddyfile
{
|
|
# Disable administrative API to prevent permission errors in read-only environments
|
|
admin off
|
|
}
|
|
|
|
:8080 {
|
|
root * /app/public
|
|
|
|
# Compress static assets (HTML, JS, CSS, GEDCOM text files)
|
|
encode gzip zstd
|
|
|
|
file_server
|
|
|
|
# Robust Security Headers
|
|
header {
|
|
X-Frame-Options "SAMEORIGIN"
|
|
X-Content-Type-Options "nosniff"
|
|
Referrer-Policy "strict-origin-when-cross-origin"
|
|
Permissions-Policy "geolocation=(), microphone=(), camera=()"
|
|
}
|
|
|
|
# Cache Control: Long-lived cache ONLY for immutable hashed build assets
|
|
@immutable_assets {
|
|
path /assets/*
|
|
}
|
|
header @immutable_assets Cache-Control "public, max-age=31536000, immutable"
|
|
|
|
# Cache Control: Immediate revalidation for all mutable assets (HTML, mounted dynamic family trees/photos)
|
|
@mutable_assets {
|
|
not {
|
|
path /assets/*
|
|
}
|
|
}
|
|
header @mutable_assets Cache-Control "public, max-age=0, must-revalidate"
|
|
|
|
templates {
|
|
mime text/html
|
|
}
|
|
|
|
try_files {path} /index.html
|
|
}
|