# Synops — Caddyfile # # Eneste tjeneste med eksponerte porter (80/443). # Alt annet rutes internt via Docker-nettverket sidelinja-net. # Auto-TLS via Let's Encrypt for alle domener. # === Felles favicon-snippet === (favicon) { handle /favicon.ico { root * /srv/static file_server } handle /apple-touch-icon.png { root * /srv/static file_server } handle /icon-*.png { root * /srv/static file_server } } # === SSO === auth.sidelinja.org { reverse_proxy authentik-server:9000 } # === Sidelinja (hovedapplikasjon) === sidelinja.org { import favicon # SpacetimeDB (WebSocket) handle_path /spacetime/* { reverse_proxy spacetimedb:3000 } # Podcast media (statiske filer med byte-range support) handle_path /media/* { root * /srv/media file_server { browse } } # SvelteKit (frontend + SSR API) # Aktiveres når SvelteKit-containeren er klar (fase 3) # reverse_proxy sveltekit:3000 header Content-Type text/html respond `
sidelinja.org — underveis!
` 200 } # === Maskinrommet API === api.sidelinja.org { reverse_proxy host.docker.internal:3100 } # === Forgejo (Git) === git.sidelinja.org { reverse_proxy forgejo:3000 } # === Synops (plattformdomene) === # Subdomener (api.synops.no, auth.synops.no osv.) legges til individuelt # etter behov — HTTP-challenge fungerer per subdomain uten DNS-plugin. synops.no { import favicon header Content-Type text/html respond `synops.no — underveis!
` 200 } # === Vegard.info === vegard.info { import favicon header Content-Type text/html respond `vegard.info — underveis!
` 200 }