Add Docker infrastructure with caddy-docker-proxy

Multi-stage Dockerfile (node build → caddy:2-alpine production, node dev).
Compose base + dev override for prod/dev switching via .env ENVIRONMENT flag.
Makefile targets: build, up, down, restart, logs, dev, prod, clean, rebuild.
Caddyfile serves static Astro output with caching and compression.
This commit is contained in:
Ryan Malloy 2026-01-28 14:07:02 -07:00
parent 364b6602c4
commit 162d485c31
6 changed files with 160 additions and 0 deletions

16
Caddyfile Normal file
View file

@ -0,0 +1,16 @@
:80 {
root * /srv
file_server
encode gzip zstd
# SPA-style fallback for clean URLs
try_files {path} {path}/ {path}/index.html =404
# Cache static assets aggressively
@static path /_astro/* /pagefind/* /favicon.svg
header @static Cache-Control "public, max-age=31536000, immutable"
# Short cache for HTML (allows quick content updates)
@html path *.html /
header @html Cache-Control "public, max-age=3600"
}