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

Docker Compose

Docker Compose

File docker-compose.yml di root repositori menjalankan seluruh stack: infrastruktur (Postgres, Mongo, Redis, Redpanda, MinIO, Mailpit), microservice Rust, dan frontend SvelteKit. Ini adalah cara paling cepat menjalankan OmniStream end-to-end di VPS atau mesin lokal anda.

Prasyarat singkat

  • Docker Engine 24.x atau lebih baru
  • Docker Compose v2 (plugin docker compose, bukan docker-compose)
  • RAM minimal 4 GB (8 GB lebih nyaman — Redpanda + Rust build terhitung berat)
  • Disk minimal 10 GB kosong

Layanan yang dideklarasikan

docker-compose.yml mendefinisikan 15 service plus 5 named volume. Semua service hidup di satu network default Compose.

Infrastruktur

ServiceImagePort hostVolume
postgrespostgres:15-alpine5432postgres_data
mongodbmongo:727017mongo_data
redisredis:7-alpine6379redis_data
redpandaredpandadata/redpanda:latest19092, 18082redpanda_data
miniominio/minio:latest9000, 9001minio_data
minio-initminio/mc:latest——
mailpitaxllent/mailpit:latest1025, 8025—
admineradminer:latest8080—
redpanda-consoleredpanda-console:latest8081—

Alasan pakai Redpanda, bukan Apache Kafka: API-compatible dengan rdkafka tapi bootstrap jauh lebih ringan (1 process, tanpa ZooKeeper).

Microservice Rust

Seluruh crate Rust dibangun dari satu Dockerfile shared di root:

ServiceBin namePort host
api-gatewayapi-gateway3000
webhook-ingestorwebhook-ingestor-*3001, 3003, 3004
chat-enginechat-engine-*—
message-sendermessage-sender-*—
ws-serverws-server3002

webhook-ingestor, chat-engine, dan message-sender masing-masing punya tiga binary terpisah (whatsapp/instagram/email) — topologinya dijelaskan di developer/pendahuluan/arsitektur.

Frontend

ServiceImagePort hostCatatan
frontendbuild dari frontend/Dockerfile4000SvelteKit + Svelte 5 runes

Volume

Code
postgres_data # data relasional + migrasi yang sudah diterapkan mongo_data # messages + webhook_audit redis_data # pub/sub state + cache redpanda_data # komit log Kafka minio_data # media upload (via S3 rustls)

Backup: minimal backup postgres_data dan mongo_data secara berkala — keduanya menyimpan data bisnis. redpanda_data dan redis_data adalah state transient dan dapat dibangun ulang.

Perintah dasar

TerminalCode
# Jalankan stack lengkap docker compose up -d # Hanya infrastruktur (untuk dev Rust lokal) docker compose up -d postgres mongodb redis redpanda minio minio-init mailpit # Rebuild satu service setelah edit kode docker compose build api-gateway && docker compose up -d api-gateway # Lihat log docker compose logs -f api-gateway # Stop semua docker compose down # Stop + hapus volume (HATI-HATI — menghapus data) docker compose down -v

docker compose down -v menghapus volume postgres_data dan mongo_data — data contact, conversation, dan pesan anda akan hilang. Gunakan hanya saat reset total.

Migrasi otomatis

Saat api-gateway start, ia menjalankan sqlx::migrate!("./migrations") yang memproses semua file di folder migrations/ secara berurutan. Anda tidak perlu menjalankan migrasi manual. Detail ada di developer/self-hosting/migrations.

Integrasi hot-reload

Semua service yang memanggil Meta Graph API (message-sender-*, api-gateway) polling tabel integrations setiap 30 detik. Jadi anda dapat mengubah META_ACCESS_TOKEN atau token Instagram via UI Settings → Integrations tanpa me-restart container.

Last modified on June 8, 2026
Prasyarat Self-HostingEnvironment Variables
On this page
  • Prasyarat singkat
  • Layanan yang dideklarasikan
    • Infrastruktur
    • Microservice Rust
    • Frontend
  • Volume
  • Perintah dasar
  • Migrasi otomatis
  • Integrasi hot-reload