OmniStream Docs
  • Panduan Pengguna
  • Developer
  • API Reference
Developer Hub
Pendahuluan
Autentikasi
Model Data
Webhook
WebSocket
Self-Hosting
    Prasyarat Self-HostingDocker ComposeEnvironment VariablesDatabase MigrationsMeta App SetupSMTP ConfigReverse Proxy + CORS ProduksiCORS di Produksi
Error & Rate Limit
Self-Hosting

Prasyarat Self-Hosting

Prasyarat Self-Hosting

Halaman ini merangkum semua yang harus anda siapkan sebelum menjalankan docker compose up -d di VPS. Kalau satu item di bawah terlewat, stack akan gagal start atau fitur tertentu diam-diam tidak bekerja (mis. OAuth callback gagal, webhook Meta tidak bisa masuk).

Hardware / VPS

KomponenMinimumDirekomendasikan
CPU2 vCPU4 vCPU
RAM4 GB8 GB
Disk20 GB SSD40 GB SSD
Bandwidth1 TB / bulanUnmetered
OSUbuntu 22.04 LTSUbuntu 22.04 atau 24.04 LTS

Catatan spesifik:

  • Redpanda + Rust build = konsumsi RAM yang besar. Minimum 4 GB hanya cukup untuk stack idle. Begitu webhook inbound mulai ramai dan chat-engine memproses pesan secara parallel, pemakaian bisa naik ke 5-6 GB. 8 GB memberi headroom yang lebih nyaman.
  • Disk IOPS penting. PostgreSQL + MongoDB + MinIO menyentuh disk secara konsisten. Hindari VPS yang secara diam-diam menggunakan HDD walau memasarkannya sebagai SSD.
  • Arsitektur CPU. Image Docker yang dipublikasikan hanya linux/amd64. Kalau anda memakai Oracle Cloud Free Tier ARM, anda harus membangun image sendiri dari Dockerfile per-service.

Software di host

Dua dependency wajib, sisanya opsional:

TerminalCode
# Wajib docker --version # 24.x atau lebih baru docker compose version # v2.x (plugin), bukan docker-compose v1 # Direkomendasikan (untuk debugging dan admin) psql --version # 15.x — klien PostgreSQL host untuk query manual curl --version jq --version git --version # 2.30+ untuk clone repo

Jangan memakai docker-compose (v1 dengan tanda hubung) — syntax file docker-compose.yml di repo menggunakan fitur Compose Spec yang hanya didukung v2.

Port yang harus terbuka ke internet

PortServiceDibuka ke publik?
80Nginx (redirect -> 443)Ya
443Nginx (TLS)Ya
3000api-gatewayHanya lewat Nginx, jangan langsung
3001webhook-ingestor WAYa (tepat, untuk webhook Meta WhatsApp)
3003webhook-ingestor IGYa (webhook Meta Instagram)
3004webhook-ingestor EmailHanya untuk integrasi pihak ketiga
4000Frontend SvelteKitHanya lewat Nginx

Satu teknik yang umum: naikkan Nginx di port 80/443 saja, proxy_pass semuanya. Port webhook-ingestor-* tetap internal dan diproxy di path seperti /webhook/whatsapp. Lihat developer/self-hosting/reverse-proxy.

Domain dan DNS

Minimal anda butuh satu hostname yang resolve ke VPS, mis. crm.omnistream.example. Webhook Meta wajib HTTPS, jadi otomatis anda juga butuh TLS cert (Let's Encrypt via Certbot bekerja fine).

Kalau anda juga akan meng-host docs-site (docs-chat.misindo.id atau domain anda sendiri), tambahkan satu hostname lagi dengan DNS record A/AAAA ke VPS yang sama.

Akses Meta for Developers

Untuk WhatsApp Business Cloud API dan Instagram Messaging API:

  • Akun Meta Business Manager aktif
  • App Meta yang sudah diverifikasi (untuk masuk production)
  • WhatsApp Business Phone Number yang sudah dikonfigurasi di Business Manager
  • Instagram Business / Creator account yang di-link ke Facebook Page

Detail lengkap mendapatkan token dan webhook URL ada di developer/self-hosting/meta-app-setup.

SMTP untuk channel email

Opsional — hanya kalau anda mengaktifkan channel email. OmniStream memakai lettre (rustls, bukan native-tls), jadi provider SMTP manapun yang mendukung STARTTLS atau SMTPS bisa dipakai:

  • Amazon SES
  • Postmark
  • SMTP relay self-hosted (Postfix)
  • Mailpit untuk development lokal (sudah termasuk di Compose)

Konfigurasi: developer/self-hosting/smtp-config.

Akses OAuth Facebook (opsional, untuk Messenger)

Kalau anda akan mengaktifkan Facebook Messenger, anda butuh:

  • FACEBOOK_APP_ID dan FACEBOOK_APP_SECRET dari Meta App
  • Callback URL https://<domain anda>/api/integrations/facebook/callback didaftarkan di OAuth Redirect URIs Meta App

Per docs-site/SCOPE.md Section 4 item BE4, dokumentasi Messenger lengkap baru tersedia di v1.1. Backend sudah ship (commit ad0b868), tapi openapi.yaml dan halaman API Reference baru akan ditambahkan setelah BE4 dikerjakan.

Akses MinIO / S3 alternatif

docker-compose.yml ikut me-launch MinIO di :9000 untuk penyimpanan media (upload gambar, attachment email). Kalau anda ingin memakai S3 asli AWS atau provider S3-compatible lain (Cloudflare R2, Backblaze B2), set var lingkungan S3_* (lihat developer/self-hosting/environment-variables) dan komentari service minio/minio-init di compose file.

Checklist akhir

Sebelum menjalankan docker compose up -d, pastikan:

  • VPS dengan spec minimum, Ubuntu 22.04+, Docker + Compose v2
  • Hostname publik + DNS A/AAAA record sudah propagate
  • TLS cert siap (atau Certbot akan dijalankan di host setelah Nginx up)
  • Meta App Secret / Access Token / Phone Number ID sudah tersedia
  • .env sudah disalin dari .env.example dan di-edit
  • JWT_SECRET minimal 32 karakter acak (jangan pakai default)
  • DATABASE_URL dan MONGODB_URI sudah di-set (tidak ada fallback)

Setelah semuanya dicentang, lanjut ke developer/self-hosting/docker-compose.

Last modified on June 8, 2026
Pesan klien ke serverDocker Compose
On this page
  • Hardware / VPS
  • Software di host
  • Port yang harus terbuka ke internet
  • Domain dan DNS
  • Akses Meta for Developers
  • SMTP untuk channel email
  • Akses OAuth Facebook (opsional, untuk Messenger)
  • Akses MinIO / S3 alternatif
  • Checklist akhir