Supabase Postgres
PostgreSQL terkelola dengan pooling Supavisor — hanya database, bukan Supabase Auth.
Supabase menyediakan PostgreSQL terkelola dengan connection pooling bawaan lewat Supavisor, plus storage, realtime, dan edge functions opsional di platform mereka.
Better Auth, bukan Supabase Auth
TurboJet memakai Better Auth untuk autentikasi. Supabase di sini hanya sebagai provider Postgres. Sesi pengguna ada di tabel database Anda, bukan di Supabase Auth.
Untuk development lokal, prefer Lokal (Docker).
1. Buat akun dan project Supabase
Buka supabase.com, buat akun dan project, lalu pilih password database yang kuat. Simpan — Anda membutuhkannya untuk connection string.
2. Ambil connection string
Di dashboard, buka Connect, lalu tab ORM. Anda butuh:
- Pooler (Transaction mode) — runtime (
DATABASE_URL). Port6543. - Direct connection — migrasi (
DIRECT_URL). Port5432.
postgres://postgres.[project]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres?pgbouncer=truepostgresql://postgres:[password]@db.[project-ref].supabase.co:5432/postgres3. Konfigurasi variabel lingkungan
Di .env root repositori:
DATABASE_URL="postgres://postgres.[project]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres?pgbouncer=true"
DIRECT_URL="postgresql://postgres:[password]@db.[project-ref].supabase.co:5432/postgres"4. Bagaimana migrasi memakai DIRECT_URL
Kit ini tidak memakai prisma.config.ts. Script migrate sementara menyetel DATABASE_URL ke DIRECT_URL:
"db:migrate": "dotenv -e ../../.env -- sh -c 'DATABASE_URL=\"$DIRECT_URL\" prisma migrate dev'"Prisma Client runtime tetap memakai DATABASE_URL pooler.
5. Jalankan migrasi
pnpm --filter @repo/database db:migrate
# atau
pnpm --filter @repo/database db:push
pnpm --filter @repo/database db:generate6. Aktifkan Row Level Security
Setelah migrasi, aktifkan Row Level Security (RLS) untuk setiap tabel di Table Editor Supabase (pengaturan tabel).
App berbicara ke Postgres lewat koneksi Prisma di server (bukan SDK browser Supabase), tetapi RLS tetap disarankan sebagai lapisan tambahan di project Supabase.
Jika Anda butuh object storage, pakai Storage TurboJet (Cloudflare R2 / AWS S3) — tidak ada resep Supabase Storage di kit ini.
Pertanyaan yang sering diajukan
Apakah TurboJet memakai Supabase Auth?
Tidak. Better Auth menyimpan user dan sesi di database Postgres Anda (termasuk saat database itu di-host di Supabase).
Apakah saya perlu mengaktifkan RLS?
Ya — disarankan di Supabase. Aktifkan untuk semua tabel setelah migrate.
Bisakah memakai realtime Supabase?
Tidak disertakan secara default. Anda bisa menambahkan SDK client Supabase sendiri; kit hanya membutuhkan connection string Postgres.