# Caddyfile — MrixsCraft reverse proxy + static file serving. # TLS is automatic. Adjust domain names to your actual domains. # ── CDN: CAS files (immutable, long cache) ──────────────────── cdn.mrixs.me { root * /var/www/cdn/files # CAS files — content-addressed, never change. handle /files/* { file_server { hide .htaccess } header Cache-Control "public, max-age=31536000, immutable" } # Skins — shorter cache so players see changes. handle /skins/* { file_server { hide .htaccess } header Cache-Control "public, max-age=3600" } } # ── API + Yggdrasil ─────────────────────────────────────────── minecraft.mrixs.me { # Yggdrasil authentication (launcher + game client). handle /authserver/* { reverse_proxy backend:8080 } handle /sessionserver/* { reverse_proxy backend:8080 } # Public API (launcher + website). handle /api/* { reverse_proxy backend:8080 } # Skin serving. handle /skins/* { reverse_proxy backend:8080 } # CAS file serving (fallback if not served by CDN domain). handle /files/* { reverse_proxy backend:8080 } # Everything else — frontend / templates. handle { reverse_proxy backend:8080 } }