WIP! A BB-style forum, on the ATmosphere! We're still working... we'll be back soon when we have something to show off!
node typescript hono htmx atproto
at feat/atb-60-theme-import-export 82 lines 3.2 kB view raw
1# atBB — Example Caddyfile for NixOS deployments 2# 3# Use this if you prefer Caddy over the built-in nginx reverse proxy. 4# 5# In your NixOS configuration, set: 6# 7# services.atbb.enableNginx = false; 8# 9# Then configure Caddy to take over the routing, either via a raw Caddyfile: 10# 11# services.caddy.configFile = ./Caddyfile; 12# 13# Or inline using the virtualHosts option (see the NixOS snippet below). 14# 15# Caddy will automatically obtain and renew a Let's Encrypt TLS certificate 16# for your domain — no ACME configuration needed beyond a valid DNS record 17# pointing to the server. 18 19# ── Routing overview ────────────────────────────────────────────────────────── 20# 21# /.well-known/* → appview (default port 3000) 22# /api/* → appview (default port 3000) 23# /* → web UI (default port 3001) 24# 25# IMPORTANT: /.well-known/ MUST be routed to appview, not the web UI. 26# The AT Protocol OAuth flow fetches {client_id}/.well-known/oauth-client-metadata 27# from your forum's domain to validate the OAuth client. If this request reaches 28# the web UI instead of appview, login will silently fail. 29# 30# ───────────────────────────────────────────────────────────────────────────── 31 32forum.example.com { 33 34 # AT Protocol well-known endpoints → appview 35 # Handles OAuth client metadata and any future AT Proto service discovery 36 handle /.well-known/* { 37 reverse_proxy localhost:3000 38 } 39 40 # REST API → appview 41 handle /api/* { 42 reverse_proxy localhost:3000 43 } 44 45 # Web UI — catch-all (must come last) 46 handle { 47 reverse_proxy localhost:3001 48 } 49 50} 51 52# ── NixOS integration snippet ───────────────────────────────────────────────── 53# 54# Equivalent configuration using services.caddy.virtualHosts in NixOS: 55# 56# services.atbb = { 57# enable = true; 58# domain = "forum.example.com"; 59# enableNginx = false; # disable the built-in nginx virtualHost 60# # ... other options 61# }; 62# 63# services.caddy = { 64# enable = true; 65# virtualHosts."forum.example.com".extraConfig = '' 66# handle /.well-known/* { 67# reverse_proxy localhost:${toString config.services.atbb.appviewPort} 68# } 69# 70# handle /api/* { 71# reverse_proxy localhost:${toString config.services.atbb.appviewPort} 72# } 73# 74# handle { 75# reverse_proxy localhost:${toString config.services.atbb.webPort} 76# } 77# ''; 78# }; 79# 80# Caddy automatically provisions and renews a Let's Encrypt certificate for 81# the virtualHost — no security.acme configuration required. 82# ─────────────────────────────────────────────────────────────────────────────