Pasang dan jalankan
Dari git clone sampai Console terbuka di browser.
Prasyarat
- Node.js v20.9+ (
node --version) - PostgreSQL v14+, lokal atau terkelola — Supabase termasuk
- npm, ikut terpasang bersama Node.js
1. Pasang dependensi
git clone https://github.com/DzikriAlan/blayer.git
cd blayer
npm install2. Siapkan environment
cp .env.example .envDua hal yang wajib terisi: alamat basis data dan kunci enkripsi.
DATABASE_URL="postgresql://user:password@localhost:5432/blayer"
BLAYER_ENCRYPTION_KEY="$(openssl rand -base64 32)"Kunci enkripsi tidak boleh berganti
BLAYER_ENCRYPTION_KEY membuka kredensial provider yang sudah tersimpan.
Menggantinya membuat kredensial lama tidak bisa dibaca lagi dan eksekusi agent
menjawab 503 CONFIG_MISSING. Simpan seperti rahasia produksi lain, dan pakai
nilai yang sama di lokal maupun di platform deploy.
Kalau basis datanya Supabase
Nama variabel dari dashboard Supabase bisa dipakai apa adanya:
SUPABASE_DIRECT_CONNECTION_STRING="postgresql://postgres:[YOUR-PASSWORD]@db.xxxx.supabase.co:5432/postgres"
SUPABASE_PASSWORD="kata-sandi-basis-data"
SUPABASE_REGION="ap-northeast-2"Penanda [YOUR-PASSWORD] yang ikut tersalin dari dashboard boleh dibiarkan —
nilainya diisi dari SUPABASE_PASSWORD dan di-encode, jadi kata sandi dengan
karakter seperti @ tidak memotong URL.
Di serverless wajib lewat pooler
Host koneksi langsung Supabase (db.<ref>.supabase.co) hanya punya alamat
IPv6, sedangkan function di Vercel keluar lewat IPv4. Pakai alamat pooler
(aws-0-<region>.pooler.supabase.com:6543), atau isi SUPABASE_REGION dan
biarkan Blayer menyusunnya sendiri.
3. Siapkan basis data
npm run db:generate
npm run db:migrateKeduanya membungkus Prisma CLI supaya alamat basis data dibaca dengan aturan
yang sama seperti aplikasinya. npm run db:push sengaja diblokir — perubahan
skema harus lewat migrasi supaya punya jejak dan bisa diputar balik.
Kalau ada yang tidak beres:
npm run db:checkPerintah itu menjawab per lapis: variabel mana yang terbaca, alamat apa yang tersusun darinya (kata sandinya disamarkan), apakah host-nya punya alamat IPv4, dan apakah basis datanya benar-benar menjawab.
4. Jalankan
npm run devAplikasi berjalan di http://localhost:3002. Periksa kesiapannya:
curl http://localhost:3002/api/healthJawaban 503 dengan kode DATABASE_UNAVAILABLE berarti alamat basis datanya
belum menunjuk basis data yang hidup.
5. Masuk Console
Buka http://localhost:3002/console dan masuk dengan admin / admin123.
Console memasang spanduk peringatan selama kredensial bawaan masih dipakai —
gantilah sebelum instance-nya dijangkau siapa pun selain kamu:
BLAYER_ADMIN_USERNAME="operator"
BLAYER_ADMIN_PASSWORD="kata-sandi-yang-panjang"
BLAYER_SESSION_SECRET="$(openssl rand -base64 32)"Sesinya berlaku 12 jam, disimpan di browser itu saja, dan dikirim sebagai header
Authorization — tidak ada sesi yang disimpan di server.
Lanjut ke agent pertama.