# Panduan Pindah ke Hosting Mandiri

Isi paket:

- `database.sql` — seluruh struktur tabel + isi data (transaksi, profil, peran) dari sistem saat ini.
- `aplikasi-build/` — hasil build aplikasi siap jalan (`client/` = berkas statis, `server/` = bagian server).
- `sumber/` — kode sumber lengkap agar bisa dibangun ulang di server Anda.

## 1. Siapkan database

Aplikasi memakai PostgreSQL + Supabase (bisa dipasang sendiri / self-hosted Supabase).

```bash
createdb keuangan
psql "postgresql://user:sandi@host:5432/keuangan" -f database.sql
```

Catatan: tabel `profiles`, `user_roles`, dan `transaksi` merujuk ke tabel `auth.users`
milik Supabase. Jadi pasang dulu Supabase mandiri (docker compose dari
github.com/supabase/supabase/tree/master/docker), baru jalankan `database.sql`.
Berkas bukti transaksi tersimpan di storage bucket privat bernama `bukti` —
buat bucket dengan nama sama di instansi baru.

## 2. Atur variabel lingkungan

Buat berkas `.env`:

```
VITE_SUPABASE_URL=https://api-domain-anda
VITE_SUPABASE_PUBLISHABLE_KEY=kunci-publik-anda
SUPABASE_URL=https://api-domain-anda
SUPABASE_PUBLISHABLE_KEY=kunci-publik-anda
SUPABASE_SERVICE_ROLE_KEY=kunci-rahasia-anda
LOVABLE_API_KEY=opsional-untuk-baca-invoice
```

## 3. Jalankan aplikasi

Aplikasi ini butuh Node.js (bukan hosting statis biasa), karena ada bagian server
untuk baca invoice dan render halaman.

```bash
cd sumber
npm install
npm run build
node dist/server/index.mjs      # atau: npx nitro deploy --prebuilt
```

Arahkan domain Anda ke port yang dipakai (default 3000) lewat Nginx/Apache reverse proxy.

## 4. Akun pertama

Akun pertama yang mendaftar otomatis menjadi Administrator (kas besar & topup).
Akun berikutnya menjadi Operasional (petty cash).
