TurboJet
DatabaseProvider database

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). Port 6543.
  • Direct connection — migrasi (DIRECT_URL). Port 5432.
Pooler (Transaction mode)
postgres://postgres.[project]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres?pgbouncer=true
Direct
postgresql://postgres:[password]@db.[project-ref].supabase.co:5432/postgres

3. 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:

packages/database/package.json
"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:generate

6. 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.

Terkait

Di halaman ini