Docs/Deployment

Docker Deployment

Deploy DBConvert Streams with Docker on any machine — your local server, a VPS (DigitalOcean, Hetzner, Vultr, etc.), or a cloud VM (AWS EC2, GCP, Azure). Your data stays on your infrastructure, no cloud dependency required. The install script handles Docker Compose setup, networking, and service configuration automatically.

Prerequisites

  • Docker Engine 24.0 or newer
  • Docker Compose v2.20 or newer
  • curl or wget
  • 2 CPU cores, 2 GB RAM, 2 GB disk space minimum

Deployment modes

Docker deployments run in one of two modes:

ModeDefaultDescription
StandaloneYesLightweight stack — SQLite, encrypted file secrets, NATS coordination. No external services beyond NATS.
CorporateNoAdds Consul (service discovery, config storage) and Vault (secrets management) for enterprise infrastructure.

Select the deployment mode when you run start.sh. Standalone is the default.

Quick install

curl -fsSL https://dbconvert.nyc3.digitaloceanspaces.com/downloads/streams/latest/docker-install.sh | sh

The installer prompts for a directory (default: /opt/dbconvert-streams-docker) and detects whether you are on a local machine or a cloud server.

Install options

FlagDescription
-v, --version VERSIONInstall a specific version
-d, --directory DIRCustom install directory
-s, --secureGenerate SSL certificates during install

Start and verify

Before starting, obtain your account API key from the Account page.

cd /opt/dbconvert-streams-docker

./start.sh
# or:
./start.sh --mode corporate

Open http://localhost (local) or http://YOUR_SERVER_IP (cloud). You should see the DBConvert Streams UI.

On first use, each client enters and stores the account API key locally in the UI. Seat usage is tracked separately by install ID.

Local file workflows in Docker

Docker deployments create two shared host folders by default:

  • ./imports mounted into containers as /data/imports
  • ./exports mounted into containers as /data/exports

Use these container paths in file connections:

  • local file sources: /data/imports
  • local file targets: /data/exports

You can override the host-side folders in .env with:

  • STREAMS_IMPORTS_DIR
  • STREAMS_EXPORTS_DIR

Start options

FlagDescription
-m, --mode MODEstandalone (default) or corporate
-i, --ip IPManually specify public IP
-s, --secureEnable HTTPS
-n, --no-secureForce HTTP only

Choose your deployment path

ScenarioGuide
Local machineDocker Local
Cloud serverDocker Cloud
Fastest cloud setupDigitalOcean 1-Click App

Common commands

Run these from the install directory:

./start.sh            # Start services (HTTP)
./start.sh --secure   # Start with HTTPS
./stop.sh             # Stop services, preserve data
./update.sh           # Update to latest version
./uninstall.sh        # Remove all services and data

Service architecture

Standalone mode (default)

ServiceDescription
stream-apiREST API — stores config in SQLite, secrets in encrypted file
stream-readerSource database reader
stream-writer-1, stream-writer-2Target database writers
stream-uiWeb interface
natsMessage streaming and service coordination
nginxReverse proxy (HTTP on port 8080, HTTPS on port 443)

Corporate mode (additional services)

ServiceDescription
consulService discovery and configuration storage
vaultSecrets management

Video walkthrough

Deployment walkthrough

Step-by-step server setup, installation, and configuration.

Next steps