# Caddyfile for How to Talk to Claude { # Global options auto_https off admin off } :80 { # Serve static files root * /usr/share/caddy # Try files, fallback to index.html for SPA routing try_files {path} {path}/ {path}.html /index.html # File server file_server # Security headers header { X-Frame-Options "SAMEORIGIN" X-Content-Type-Options "nosniff" X-XSS-Protection "1; mode=block" Referrer-Policy "no-referrer-when-downgrade" } # Cache static assets @static path *.js *.css *.png *.jpg *.jpeg *.gif *.ico *.svg *.woff *.woff2 *.ttf *.eot header @static Cache-Control "public, max-age=31536000, immutable" # Health check endpoint respond /health 200 { body "healthy" } # Gzip compression encode gzip # Logging log { output stdout format console } }