# Serves the Furtka landing page + live JSON on :80. Static pages are read # from the current-version directory under /opt/furtka/current/ — updates # flip the symlink and everything picks up the new content without a Caddy # restart (a `systemctl reload caddy` is still triggered post-swap to flush # the file-server's handle cache). /apps and /api are reverse-proxied to the # resource-manager API (furtka serve, bound to 127.0.0.1:7000). TLS / auth # come later when Authentik is wired in. :80 { handle /api/* { reverse_proxy localhost:7000 } handle /apps* { reverse_proxy localhost:7000 } # Runtime JSON lives under /var/lib/furtka/ so it survives self-updates # (which only swap /opt/furtka/current). handle /status.json { root * /var/lib/furtka file_server } handle /furtka.json { root * /var/lib/furtka file_server } handle /update-state.json { root * /var/lib/furtka file_server } handle { root * /opt/furtka/current/assets/www file_server encode gzip } log { output stdout } }