Lewati ke konten

Instalasi & Konfigurasi

  1. Ekstrak ZIP ke folder kerja.
  2. cp .env.example .env.local lalu isi variabel wajib (lihat tabel di bawah).
  3. pnpm install
  4. pnpm setup (Compose + migrasi kind + Prisma generate/push + seed)
  5. Jalankan pnpm dev dan pnpm worker di dua terminal.

Detail langkah OS: lihat juga Quick Start dan dokumen docs/PANDUAN-SETUP.md di dalam paket.

Terminal window
pnpm install
docker compose up -d
pnpm db:migrate-kinds
pnpm db:generate
pnpm db:push
pnpm db:seed

Script env memakai dotenv -e .env.local — pastikan file itu ada.

Sumber nama: template .env.example di paket (disalin ke .env.local).

Nama Wajib? Tujuan
DATABASE_URL Ya String koneksi PostgreSQL
REDIS_URL Ya (sangat disarankan) Koneksi Redis; tanpa ini kode bisa fallback ke port 6379
ENCRYPTION_SECRET Ya (min. 16 karakter) Kunci untuk enkripsi AES-256-GCM API key / secret di database
OPENAI_API_KEY Opsional Fallback credential TEXT jika belum ada di Settings
OPENAI_BASE_URL Opsional Base URL provider OpenAI-compatible (mis. DeepSeek)
OPENAI_TEXT_MODEL Opsional Model teks default untuk fallback env
OPENAI_IMAGE_MODEL Opsional Disediakan di template; image biasanya diisi lewat Settings
GDRIVE_REDIRECT_URI Opsional URL callback OAuth Google Drive (harus cocok dengan konsol Google Cloud)
SITE_URL Opsional Origin absolut untuk Open Graph / Twitter (tanpa trailing slash)

Kredensial lewat Settings (bukan file env)

Section titled “Kredensial lewat Settings (bukan file env)”

Untuk pemakaian sehari-hari / produksi, isi kredensial di UI Settings:

  • TEXT — DeepSeek / OpenAI / OpenRouter / dll. (disimpan terenkripsi di tabel AiCredential)
  • IMAGE — Ideogram dan/atau OpenAI-compatible
  • S3 / Google Drive — opsional; mode storage default di AppSettings
Perintah Fungsi
pnpm setup Compose + DB + seed
pnpm dev App di port 3000
pnpm worker Worker BullMQ
pnpm build / pnpm preview Build & pratinjau produksi
pnpm db:studio Prisma Studio
pnpm lint / pnpm check ESLint / Prettier check
pnpm pack:buyer Membuat ZIP bersih (alat penjual)