Konco memerlukan dua file .env terpisah — satu per repo. Keduanya harus berjalan bersamaan agar platform berfungsi. Selain itu, storage/rsa_keys/ di dazo-whitelist wajib berisi private_key.pem dan public_key.pem untuk handshake dengan API engine.
Prasyarat
| Kebutuhan | Versi |
|---|---|
| PHP | ^8.1 |
| Node.js | diuji v20–v23 (Vite 5) |
| PostgreSQL | untuk dazo-whitelist (default) |
| MySQL / MariaDB | untuk dazo-whitelist-api |
| Composer | ^2.x |
| OpenSSL | untuk.generate RSA key pair |
1. .env dazo-whitelist (Web App)
APP_NAME="Konco"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8000
# URL endpoint microservice API
API_URL=http://127.0.0.1:8081/api/
API_KEY=
API_SECRET=
API_PRIVATE=
API_PUBLIC=
# Database (PostgreSQL default — konfigurasi MySQL juga didukung)
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=konco_db
DB_USERNAME=postgres
DB_PASSWORD=your_password
# WebSocket Broadcasting (Laravel Reverb)
BROADCAST_DRIVER=reverb
REVERB_APP_ID=konco_app_id
REVERB_APP_KEY=konco_reverb_key
REVERB_APP_SECRET=konco_reverb_secret
REVERB_HOST=127.0.0.1
REVERB_PORT=8080
REVERB_SCHEME=http
# Vite Reverb Variables (dibaca frontend)
VITE_APP_NAME="${APP_NAME}"
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"
# Live Chat (Crisp)
CRISP_WEBSITE_ID=your-crisp-website-id
CRISP_ENABLED=true
# Email report cron
EMAIL_REPORT=Field konfigurasi penting (dazo-whitelist)
| Variable | Keterangan |
|---|---|
API_URL | Base URL dazo-whitelist-api — wajib berakhir /api/ |
API_KEY | UUID aplikasi klien (dari tabel applications di API engine) |
API_SECRET | Secret aplikasi klien — dipakai payload RSA signature |
API_PRIVATE | Private key string (dari storage/rsa_keys/private_key.pem) — elemen ke-2 payload |
API_PUBLIC | Public key string — dikirim sebagai header public-key |
REVERB_* | Konfigurasi WebSocket server untuk realtime tiket & notifikasi |
CRISP_WEBSITE_ID | ID widget Crisp — live chat dual-channel dengan WhatsApp |
EMAIL_REPORT | Email tujuan laporan cron (expired, reminder) |
2. .env dazo-whitelist-api (Backend Engine)
APP_NAME="Konco API"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://127.0.0.1:8081
# Database (MySQL/MariaDB)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=konco_api_db
DB_USERNAME=root
DB_PASSWORD=
# Queue Driver
QUEUE_CONNECTION=database
# Facebook App Credentials (dari Meta for Developers)
FACEBOOK_APP_ID=your_meta_app_id
FACEBOOK_APP_SECRET=your_meta_app_secret
FACEBOOK_APP_TOKEN=your_meta_app_token
FACEBOOK_GRAPH_VERSION=v20.0
# Encryption salt (dipakai di token Facebook)
HASH_SECRET_KEY=your_hash_secret
SALTED_CREAMY=your_salted_creamyField konfigurasi penting (dazo-whitelist-api)
| Variable | Keterangan |
|---|---|
FACEBOOK_APP_ID | App ID dari Meta for Developers |
FACEBOOK_APP_SECRET | App Secret dari Meta for Developers |
FACEBOOK_APP_TOKEN | App access token Facebook |
FACEBOOK_GRAPH_VERSION | Versi Graph API — wajib v20.0 |
HASH_SECRET_KEY | Salt untuk hash internal |
SALTED_CREAMY | Salt tambahan saat meng-encrypt access token Facebook di UserFacebookToken |
QUEUE_CONNECTION | Wajib database — import massal akun via queue jobs |
3. RSA Keys
dazo-whitelist menyimpan RSA key pair di filesystem, bukan di database:
storage/rsa_keys/
├── private_key.pem # dipakai untuk sign signature (client side)
├── public_key.pem # dikirim & disimpan di tabel `applications` (server side)
└── .gitignorePrivate key dipakai di App\Src\MyApi::get_token() untuk menandatangani payload handshake. Public key dikirim ke API engine dan terverifikasi di ApplicationController::token.
Generate RSA keys
# Opsi A: generate key pair saja
php artisan rsa_key
# Opsi B: daftarkan aplikasi klien + generate key + update .env sekaligus
php artisan app:register-client --name=konco-mainapp:register-client melakukan tiga hal:
- Generate RSA Key Pair di
storage/rsa_keys/. - Simpan record aplikasi klien di database
dazo-whitelist-api(tabelapplications). - Perbarui
API_KEY,API_SECRET,API_PRIVATE,API_PUBLICdi.envdazo-whitelist.
Verifikasi setup
Jalankan verifikasi konfigurasi Meta (di API engine):
php artisan meta:verifyBila semua kredensial terbaca, lanjut ke Local Development untuk starting kedua service.