# Internal path router for the Stoat stack, taken from upstream's self-hosted # repository. Traefik terminates TLS and proxies here, so HOSTNAME is set to # ":80" in .env.web and Caddy neither requests nor serves certificates. # # The path prefixes below are not arbitrary — the web client is built with # VITE_API_URL=https:///api and friends, so these routes and the URLs in # .env.web / Revolt.toml have to agree. {$HOSTNAME} { route /.well-known/stoat { uri strip_prefix /.well-known/stoat header { Access-Control-Allow-Origin * } file_server { root /stoat.json } } route /api* { uri strip_prefix /api reverse_proxy http://api:14702 { header_down Location "^/" "/api/" } } route /ws { uri strip_prefix /ws reverse_proxy http://events:14703 { header_down Location "^/" "/ws/" } } route /autumn* { uri strip_prefix /autumn reverse_proxy http://autumn:14704 { header_down Location "^/" "/autumn/" } } route /january* { uri strip_prefix /january reverse_proxy http://january:14705 { header_down Location "^/" "/january/" } } route /gifbox* { uri strip_prefix /gifbox reverse_proxy http://gifbox:14706 { header_down Location "^/" "/gifbox/" } } route /livekit* { uri strip_prefix /livekit reverse_proxy http://livekit:7880 { header_down Location "^/" "/livekit/" } } route /ingress* { uri strip_prefix /ingress reverse_proxy http://voice-ingress:8500 { header_down Location "^/" "/ingress/" } } reverse_proxy http://web:5000 }