symbolica.ch, symbolica.io, cdn.symbolica.io { encode zstd gzip root * /srv/http/symbolica route { # Pages, loaders, CSS, and config must see updates immediately. header Cache-Control "public, no-cache" # Public CDN assets are fetched by modules/workers on symbolica.io. @cdn host cdn.symbolica.io header @cdn Access-Control-Allow-Origin "*" # Only content-hashed assets may be reused without checking for updates. @immutable path_regexp immutable ^/(docs/live-python|gallery/notebooks)/immutable/[0-9a-f]{20}/ header @immutable Cache-Control "public, max-age=31536000, immutable" file_server { precompressed zstd br gzip hide /etc/caddy/Caddyfile } } handle_errors { # In particular, never cache a missing immutable asset for a year. header Cache-Control "no-store" @404 expression {http.error.status_code} == 404 rewrite @404 /404.html file_server } }