Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
4.2 kB · 175 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176{ # use pinned CA from ./localinfra/certs pki { ca local { name "Tangled Dev" root_cn "Tangled Dev Root" root { format pem_file cert /etc/caddy/certs/root.crt key /etc/caddy/certs/root.key } } }}# permissive CORS for the vhosts web/ hits cross-origin from the browser, for the ones# that serve no CORS headers of their own. prod puts the same header set at the edge in# front of these services, so localinfra matches it here rather than in each service.# import it only where the upstream is silent, since duplicate headers fail the check.(cors) { @cors_preflight method OPTIONS handle @cors_preflight { header Access-Control-Allow-Origin "*" header Access-Control-Allow-Methods "GET, POST, OPTIONS" header Access-Control-Allow-Headers "Content-Type, authorization, atproto-proxy" header Access-Control-Max-Age "86400" respond 204 } handle { header Access-Control-Allow-Origin "*" header Access-Control-Allow-Methods "GET, POST, OPTIONS" header Access-Control-Allow-Headers "Content-Type, authorization, atproto-proxy" reverse_proxy {args[0]} }}# did-method-plcplc.tngl.boltless.dev { tls internal reverse_proxy plc:8080}# pds*.pds.tngl.boltless.dev, pds.tngl.boltless.dev { tls internal reverse_proxy pds:3000}# tranquil-pds (separate from the reference pds above)*.tranquil.tngl.boltless.dev, tranquil.tngl.boltless.dev { tls internal reverse_proxy tranquil:3000}# hydrant: /subscribe is its jetstream-compatible feed (appview, spindle, deliberi)hydrant.tngl.boltless.dev { tls internal reverse_proxy hydrant:3000}# knot2 answers preflight itself (knot2/crates/knot-edge/src/cors.rs), so this block# doesn't import cors: a browser rejects a response with two Access-Control-Allow-Origin# values, and web/ posts sh.tangled.git.keepCommit# straight from the browser to the knot serving the repo.# knot2-alt is the same knot under a second authority, so a local import exercises the# remote fetch path instead of the same-authority oneknot2.tngl.boltless.dev, knot2-alt.tngl.boltless.dev { tls internal reverse_proxy knot2:5555}# spindlehttp://spindle.tngl.boltless.dev { import cors spindle:6555}spindle.tngl.boltless.dev { tls internal import cors spindle:6555}# knotmirrormirror.tngl.boltless.dev { tls internal import cors knotmirror:7000}gitmirror.tngl.boltless.dev { tls internal reverse_proxy gitmirror:9001}# zoekt (internal service)zoekt.tngl.boltless.dev { tls internal # TODO: replace this with -indexserver_proxy flag handle_path /indexserver/* { reverse_proxy zoekt-tngl-indexserver:6060 } handle { reverse_proxy zoekt-webserver:6070 }}# appviewtngl.boltless.dev { tls internal reverse_proxy appview:3000}# web (sveltekit dev server). vite's allowedHosts must list this host too, which# the web service does via VITE_ALLOWED_HOSTS.web.tngl.boltless.dev { tls internal reverse_proxy web:5174}# pdslspdsls.tngl.boltless.dev { tls internal reverse_proxy pdsls:80}# camo and avatarcamo.tngl.boltless.dev { tls internal reverse_proxy camo:8787}avatar.tngl.boltless.dev { tls internal reverse_proxy avatar:8787}# deliberi — sets its own CORS headers, no cors importdeliberi.tngl.boltless.dev { tls internal reverse_proxy deliberi:6565}# pocket - private data storepocket.tngl.boltless.dev { tls internal reverse_proxy pocket:3000}# migratormigrator.tngl.boltless.dev { tls internal reverse_proxy migrator:6767}# github stubgithub.tngl.boltless.dev, api.github.tngl.boltless.dev { tls internal reverse_proxy github-stub:8000}# bobbin (read appview / xrpc)bobbin.tngl.boltless.dev { tls internal import cors bobbin:8090}# bobbin over plain http on :8090, for local web/ dev:8090 { import cors bobbin:8090}# Delegate provisioning sidecardelegates.tngl.boltless.dev { tls internal import cors tranquil-gate:3100}