your own postgres
already have a postgres? point tuck at it instead of the bundled one.
-
set
TUCK_DATABASE_URLin.env, withsslmode=require. -
start the external-database compose file:
docker compose -f docker-compose.external-db.yml up -d
tuck keeps everything in its own tuck schema, so it can share a database.
supabase
use the session pooler string from project settings → database:
TUCK_DATABASE_URL=postgres://postgres.PROJECT_REF:PASSWORD@aws-0-REGION.pooler.supabase.com:5432/postgres?sslmode=require&pool_max_conns=5
- not the direct host, which is ipv6 only.
- not the transaction pooler on port 6543, which breaks tuck's queries.
- url-encode symbols in the password:
@is%40,#is%23.