Firebase without Google
Supabase for problem.li — the official images plus a thin dritte layer: kamal, /up, logli. Nothing else.
Dashboard: https://supa.problem.li · API: https://supa.problem.li/{auth,rest,realtime,storage,functions,graphql}/v1 · Postgres: supa.problem.li:5432 (session) / :6543 (transaction, user postgres.supa). Logins in 1PW (supa, supa patrik).
gh repo clone blemli/supa
cd supa
kamal setup # first time only, afterwards: kamal deploySecrets come from 1password (op signin), see .kamal/secrets. DNS: supa.problem.li → webhost.
./update.sh # merge upstream master, re-pin all image tags from docker/docker-compose.yml - review, commit, kamal deployEverything upstream is untouched; ours is only:
Dockerfile—FROMthe official envoy image, pinned; bakes in upstream'sdocker/volumes/api/envoy/configDockerfile.dockerignore— keeps the monorepo out of the build contextdritte/dritte.py— stdout → logli (RFC5424 + HMAC, lossy)dritte/nginx.conf+dritte/start.sh— contribute/up(proxied to studio's health route) and a second dashboard login (DASHBOARD2_*mapped onto the primary basic-auth pair)config/deploy.yml,.kamal/secrets,update.sh, this README
The compose sidecars run as kamal accessories (db, meta, auth, rest, realtime, imgproxy, storage, functions, studio, supavisor) with network-alias recreating the compose hostnames. Logflare/vector analytics are deliberately absent (upstream default).
Edge functions live in docker/volumes/functions/ — add a <name>/index.ts there, list it under the functions and studio accessory files: in config/deploy.yml (kamal cannot mount directories), then kamal accessory reboot functions studio.