Your own database
Use your own PostgreSQL or a Supabase project instead of the built-in database.
MSaving runs its own PostgreSQL 17 by default. To use yours instead (PostgreSQL 15 or newer, or a Supabase
project’s direct connection), set it in .env, as the database’s owner:
ADMIN_DATABASE_URL=postgresql://postgres:PASSWORD@HOST:5432/postgres?sslmode=require
and start without the built-in one:
docker compose up -d --scale db=0
The server applies its migrations and creates its own limited logins (api_login, purge_login, fx_login) in
that database, with passwords it keeps in its secrets volume. The web app and API only ever use those logins; the
owner’s login is used for migrations and backups. Percent-encode a password containing @, /, ? or #.
On Supabase, MSaving takes away everything Supabase grants its browser roles, and never uses Supabase’s Data API or Auth: sign-in is MSaving’s own.