D
Setup

Local Development

Urutan setup local dev Konco — install dependencies di kedua repo, migrate seed, generate RSA keys, register client, lalu jalankan local:start (API engine port 8081 dulu, web app port 8000). Akses via http://127.0.0.1:8000, API docs via http://127.0.0.1:8081/docs/api.

Setup local Konco butuh dua terminal — satu untuk API engine, satu untuk web app. API engine wajib start lebih dulu agar web app dapat melakukan handshake RSA saat pertama kali request.

Prasyarat

  • Kedua repo sudah di-clone:
    • dazo-whitelist (web app)
    • dazo-whitelist-api (API engine)
  • File .env sudah disiapkan di kedua repo — lihat Setup Environment.
  • PostgreSQL berjalan (untuk web app), MySQL berjalan (untuk API engine).

1. Setup dazo-whitelist-api (Backend Engine)

Lakukan pertama — API engine wajib aktif sebelum web app handshake.

bash
cd dazo-whitelist-api

# Install dependencies
composer install

# Generate application key
php artisan key:generate

# Migrasi database + Passport
php artisan migrate
php artisan passport:install

# (Optional) Verifikasi konfigurasi Meta
php artisan meta:verify

Simpan dulu — jangan start service dulu. Lanjut ke setup web app.

2. Setup dazo-whitelist (Web App)

bash
cd dazo-whitelist

# Install dependencies
composer install
npm install
npm run build

# Generate application key + storage link
php artisan key:generate
php artisan storage:link

# Migrasi database + seeder (roles, permissions, admin accounts)
php artisan migrate --seed

3. Generate RSA Keys & Register Client

Masih di dazo-whitelist, daftarkan aplikasi klien ke database API engine dan generate RSA key pair:

bash
php artisan app:register-client --name=konco-main

Perintah ini:

  1. Generate RSA Key Pair di storage/rsa_keys/ (private_key.pem, public_key.pem).
  2. Simpan record aplikasi klien di database dazo-whitelist-api (tabel applications).
  3. Perbarui nilai API_KEY, API_SECRET, API_PRIVATE, API_PUBLIC di file .env.

4. Start kedua service

Terminal 1 — API Engine (port 8081)

bash
cd dazo-whitelist-api
php artisan local:start --port=8081

local:start menjalankan dua process sekaligus:

ProcessCommandFungsi
servephp artisan serve --port=8081HTTP server REST API
queuephp artisan queue:workQueue worker — import massal akun iklan via background jobs

Terminal 2 — Web App (port 8000)

bash
cd dazo-whitelist
php artisan local:start --port=8000

local:start menjalankan lima process sekaligus:

ProcessCommandFungsi
servephp artisan serve --port=8000HTTP server web app
vitenpm run devVite dev server dengan hot reload
reverbphp artisan reverb:startWebSocket server — realtime tiket & notifikasi
schedulephp artisan schedule:workScheduler — cron tiap menit/jam (ads expired, reminder, sync)
queuephp artisan queue:workQueue worker — background jobs web app

5. Akses aplikasi

LayananURL
Web app Koncohttp://127.0.0.1:8000
API engine (raw)http://127.0.0.1:8081/api
API docs (Scramble)http://127.0.0.1:8081/docs/api
Reverb WebSocketws://127.0.0.1:8080

6. Stop service

Tekan Ctrl+C di kedua terminal. local:start akan graceful shutdown semua child process.

Testing email preview (local only)

Dalam environment local, template email dapat dilihat langsung di browser tanpa mengirim:

TemplateURL
Login notificationhttp://localhost:8000/testing/email/login
Register welcomehttp://localhost:8000/testing/email/register
Password resethttp://localhost:8000/testing/email/reset

Routes ini hanya aktif bila APP_ENV=local — lihat routes/web.php:74-81.

Sandbox MonitPay (local/dev only)

Untuk testing callback MonitPay tanpa payment gateway asli, akses sandbox di http://localhost:8000/sandbox/monitpay. Route ini hanya aktif di environment non-production dengan middleware sandbox + auth:admin.

Troubleshooting

GejalaPenyebabSolusi
401 Unauthorized di seluruh menu Facebook AdsPublic key di tabel applications (API engine) tidak cocok dengan private_key.pem (web app)Jalankan ulang php artisan app:register-client di web app
Key tidak ditemukan!storage/rsa_keys/private_key.pem belum adaJalankan php artisan rsa_key atau app:register-client
Import Ad Accounts stuck di pendingQueue worker API engine tidak jalanPastikan Terminal 1 aktif — php artisan local:start --port=8081
Realtime tiket/notifikasi tidak munculReverb tidak jalan atau VITE_REVERB_* salahCek Terminal 2 process reverb, verifikasi .env Reverb
Error Connection refused 127.0.0.1:8081API engine belum startStart Terminal 1 lebih dulu

Langkah berikutnya

  • Akan deploy? Baca Deployment — branch produksi production, self-hosted runner.
  • Detail CI/CD pipeline? Lihat CI/CD.
  • Engineer baru wajib baca Auth & Security sebelum menyentuh komunikasi antar-service.