Semua service OmniStream membaca konfigurasi dari environment variable
— disediakan lewat file .env (untuk dev lokal) atau injected oleh
Docker Compose / sistem orchestrasi. Template lengkapnya ada di
.env.example di root repositori.
DATABASE_URL dan MONGODB_URItidak punya nilai default. Service
akan gagal start jika keduanya tidak diset. Semua var lain punya
fallback masuk akal.
Minimal 32 karakter; generate dengan openssl rand -hex 32
JWT_EXPIRATION_HOURS
24
No
Umur token login sebelum expired
Port service (opsional — default aman)
Variabel
Default
Service
API_GATEWAY_PORT
3000
api-gateway
WEBHOOK_INGESTOR_PORT
3001
webhook-ingestor (satu binary, empat route /webhook/{whatsapp,messenger,instagram,email})
WS_SERVER_PORT
3002
ws-server
WhatsApp / Meta Cloud API
Diperlukan jika anda meng-enable channel WhatsApp. Bisa juga diatur via
UI Settings → Integrations — yang di UI akan override nilai .env
(polling setiap 30 detik).
Variabel
Wajib untuk WhatsApp
Catatan
META_APP_SECRET
Ya
Untuk verifikasi HMAC webhook Meta
META_VERIFY_TOKEN
Ya
Challenge token GET webhook (atur sama di Meta dashboard)
META_ACCESS_TOKEN
Ya
Long-lived access token; bisa dioverride dari DB
META_PHONE_NUMBER_ID
Ya
Phone Number ID dari WhatsApp Business Account
META_API_URL
No
Default https://graph.facebook.com/v21.0
Instagram DM
Diperlukan jika anda meng-enable channel Instagram.
Variabel
Wajib untuk IG
Catatan
INSTAGRAM_PAGE_ID
Opsional
Bisa dikosongkan jika user_id dari OAuth flow dipakai
INSTAGRAM_APP_ID
Ya
Instagram Login app ID
INSTAGRAM_APP_SECRET
Ya
Instagram Login app secret
Facebook Messenger
Variabel
Catatan
MESSENGER_LOGIN_CONFIG_ID
Facebook Login Configuration ID dari Developer Console
Email (SMTP)
Untuk channel email outbound + inbound webhook.
Variabel
Default
Wajib
Catatan
SMTP_HOST
mailpit
No
Kosongkan untuk disable channel email
SMTP_PORT
1025
No
587 (STARTTLS) atau 465 (TLS implisit) di produksi
SMTP_USERNAME
—
No
Untuk provider seperti SendGrid/SES
SMTP_PASSWORD
—
No
idem
SMTP_FROM_ADDRESS
noreply@omnistream.local
No
Alamat "from" untuk email outbound
SMTP_ENCRYPTION
none
No
none (Mailpit dev), starttls, tls
EMAIL_WEBHOOK_SECRET
—
No
Shared secret untuk verifikasi webhook provider (SendGrid)
Formatnya sama seperti tracing_subscriber standar — anda bisa
mengatur per-modul log level secara granular.
CORS & Frontend
Variabel
Default
Catatan
FRONTEND_URL
http://localhost:4000
Origin yang diizinkan CORS; dipakai sebagai redirect OAuth destination
Di produksi, ganti FRONTEND_URL ke domain asli anda (mis.
https://crm.example.com) dan ikuti panduan di
developer/self-hosting/reverse-proxy untuk mengunci allowlist CORS
backend.
Cukup untuk menjalankan API + WS + dev frontend tanpa channel eksternal.
Channel WhatsApp/Instagram/Email menyala begitu anda mengisi var
terkait dari tabel di atas.