omni-pca-docs/Caddyfile
Ryan Malloy c5e72c679b Initial scaffold
Astro 6 + Starlight 0.39 documentation site for omni-pca, organised
around the Diatáxis framework (Tutorials / How-to / Reference /
Explanation), plus a chronological Journey page and Changelog.

Theme: muted slate-blue with amber accents. astro-icon + lucide
preinstalled. Astro telemetry and Starlight devToolbar both off.

Deployment: multi-stage Dockerfile (node:25-alpine builder ->
caddy:2-alpine runtime), inner Caddy serves static dist on :80,
outer caddy-docker-proxy on the host terminates TLS for
hai-omni-pro-ii.warehack.ing.
2026-05-10 16:42:12 -06:00

23 lines
709 B
Caddyfile

# Inner Caddy: just serves the static dist on :80.
# The host's caddy-docker-proxy handles TLS and routing for the public hostname.
:80 {
root * /srv
encode zstd gzip
file_server
# SPA-ish fallback: prefer the directory's index.html, then a 404 page.
try_files {path} {path}/ /404.html
header {
# Light security defaults; the outer Caddy can override.
X-Content-Type-Options "nosniff"
Referrer-Policy "strict-origin-when-cross-origin"
Permissions-Policy "interest-cohort=()"
}
# Long cache for fingerprinted assets emitted by Astro.
@hashed path_regexp \.[A-Za-z0-9_-]{8,}\.(js|css|woff2?|svg|png|jpg|jpeg|webp|avif)$
header @hashed Cache-Control "public, max-age=31536000, immutable"
}