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
.envsudah 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.
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:verifySimpan dulu — jangan start service dulu. Lanjut ke setup web app.
2. Setup dazo-whitelist (Web App)
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 --seed3. Generate RSA Keys & Register Client
Masih di dazo-whitelist, daftarkan aplikasi klien ke database API engine dan generate RSA key pair:
php artisan app:register-client --name=konco-mainPerintah ini:
- Generate RSA Key Pair di
storage/rsa_keys/(private_key.pem,public_key.pem). - Simpan record aplikasi klien di database
dazo-whitelist-api(tabelapplications). - Perbarui nilai
API_KEY,API_SECRET,API_PRIVATE,API_PUBLICdi file.env.
4. Start kedua service
Terminal 1 — API Engine (port 8081)
cd dazo-whitelist-api
php artisan local:start --port=8081local:start menjalankan dua process sekaligus:
| Process | Command | Fungsi |
|---|---|---|
serve | php artisan serve --port=8081 | HTTP server REST API |
queue | php artisan queue:work | Queue worker — import massal akun iklan via background jobs |
Terminal 2 — Web App (port 8000)
cd dazo-whitelist
php artisan local:start --port=8000local:start menjalankan lima process sekaligus:
| Process | Command | Fungsi |
|---|---|---|
serve | php artisan serve --port=8000 | HTTP server web app |
vite | npm run dev | Vite dev server dengan hot reload |
reverb | php artisan reverb:start | WebSocket server — realtime tiket & notifikasi |
schedule | php artisan schedule:work | Scheduler — cron tiap menit/jam (ads expired, reminder, sync) |
queue | php artisan queue:work | Queue worker — background jobs web app |
5. Akses aplikasi
| Layanan | URL |
|---|---|
| Web app Konco | http://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 WebSocket | ws://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:
| Template | URL |
|---|---|
| Login notification | http://localhost:8000/testing/email/login |
| Register welcome | http://localhost:8000/testing/email/register |
| Password reset | http://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
| Gejala | Penyebab | Solusi |
|---|---|---|
401 Unauthorized di seluruh menu Facebook Ads | Public 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 ada | Jalankan php artisan rsa_key atau app:register-client |
| Import Ad Accounts stuck di pending | Queue worker API engine tidak jalan | Pastikan Terminal 1 aktif — php artisan local:start --port=8081 |
| Realtime tiket/notifikasi tidak muncul | Reverb tidak jalan atau VITE_REVERB_* salah | Cek Terminal 2 process reverb, verifikasi .env Reverb |
Error Connection refused 127.0.0.1:8081 | API engine belum start | Start 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.