Documentation Index
Fetch the complete documentation index at: https://docs.wanderersguide.app/llms.txt
Use this file to discover all available pages before exploring further.
Self-hosting with Docker Compose (skeleton)
Status: community-supported skeleton, not a production deployment. The codebase targets Supabase cloud; this stack stands up the equivalent services locally so you can run the app on your own server.
What’s included
| Service | Image | Purpose |
|---|---|---|
frontend | built locally from frontend/ | The Vite/React app served by nginx |
kong | kong:2.8.1 | API gateway (single entrypoint) |
auth | supabase/gotrue | Authentication |
rest | postgrest/postgrest | REST over Postgres |
storage | supabase/storage-api | File storage |
meta | supabase/postgres-meta | Schema introspection (used by Studio) |
functions | supabase/edge-runtime | Runs the Deno edge functions |
studio | supabase/studio (optional) | Web UI for the database |
db | supabase/postgres:15 | Postgres + Supabase extensions |
Quickstart
Wiring notes
PUBLIC_SUPABASE_URLis what the browser uses to reach kong. On localhost that’shttp://localhost:8000. In a real deployment, proxy this behind a TLS terminator and set it to your public URL.- Vite envs (
VITE_*) are baked into the frontend bundle at build time. After changingPUBLIC_SUPABASE_URLorANON_KEY, rebuild: ANON_KEYis intentionally public (it’s the browser’s API key). Never bakeSERVICE_ROLE_KEYinto the frontend.
Things you’ll have to do yourself
- Database schema and content seed. This compose runs
supabase/seed.sqlon first DB init, but the production data lives in cloud Supabase. To populate a fresh self-host, dump and import the schema + content tables you care about, or run whatever migrations you maintain. - OAuth providers. Add
GOTRUE_EXTERNAL_<PROVIDER>_*env vars to theauthservice. The provider’s redirect URL must match${PUBLIC_SUPABASE_URL}/auth/v1/callback. - SMTP for email auth. Add
GOTRUE_SMTP_*env vars. - TLS / public hostname. Stand up a reverse proxy (Caddy, Traefik,
nginx) in front of
frontend:80andkong:8000. - Edge function secrets. Add to the
functionsservice environment.
Known limitations of this skeleton
- No realtime channels (the supabase-js client just no-ops without it).
- No image transformations (storage serves originals).
- Studio is opt-in via the
studiocompose profile. docker/kong.ymlis a static minimal config; edit it for rate limiting, custom CORS, or per-route auth.- Image tags are pinned to versions that worked at the time of writing. Bump them deliberately.

