Skip to content

Docker Deployment Guide

Prerequisites

  • Docker Engine 20.10.0 or newer
  • Docker Compose v2.0.0 or newer
  • Either curl OR wget for downloading files
  • At least 2GB of available RAM
  • 2GB of free disk space
  • 2 CPU cores minimum (3+ cores recommended)

Quick Start

One-Line Installation

Using curl:

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

# Install specific version
curl -fsSL https://dbconvert.nyc3.digitaloceanspaces.com/downloads/streams/latest/docker-install.sh | sh -s -- --version v1.0.0

Using wget:

bash
# Install latest version
wget -qO- https://dbconvert.nyc3.digitaloceanspaces.com/downloads/streams/latest/docker-install.sh | sh

# Install specific version
wget -qO- https://dbconvert.nyc3.digitaloceanspaces.com/downloads/streams/latest/docker-install.sh | sh -s -- --version v1.0.0

Service Architecture

DBConvert Streams consists of several containerized services:

  1. Infrastructure Services:

    • NATS (ports 4222, 8222): Message streaming and service communication
    • Consul (port 8500): Service discovery, health monitoring, and configuration storage (stores database connections and stream configurations)
    • Vault (port 8200): Secrets management - securely stores database passwords, SSL/TLS certificates, and other sensitive credentials
  2. Core Services:

    • stream-api (port 8020): REST API for managing database connections and stream configurations
    • stream-reader: Source database reader
    • stream-writer: Target database writer
    • streams-ui (port 80): Web interface

Managing Services

Starting Services

Before starting the services, obtain your API key from https://streams.dbconvert.com/account.

bash
./start.sh

If STREAMS_UI_API_KEY isn't set in your .env file, you'll be prompted for your API key during startup.

Stopping Services

To temporarily stop all services while preserving data:

bash
./stop.sh

Or using Docker Compose directly:

bash
docker compose down

Uninstallation

To completely remove DBConvert Streams and all data:

bash
cd docker-deploy
./uninstall.sh

Data Persistence

Docker Volumes

  • consul-data: Consul data including service registry, health status, and all stream and connection configurations
  • vault-data: Vault data including encrypted database passwords, SSL/TLS certificates, and initialization information
  • nats-data: NATS message store

Local Directories

  • logs/: Service logs
  • config/: Service configurations

Security Architecture

Network Security

  • Services communicate within isolated Docker network (stream-net)
  • Only necessary ports exposed to host:
    • UI (80): Web interface
    • Stream API (8020): Management API
    • Internal ports remain unexposed

Service URLs

Configuration

Configuration via .env file:

UI Configuration

properties
STREAMS_UI_PORT=80
STREAMS_UI_API_KEY=your_api_key

Stream API Configuration

properties
STREAM_API_PORT=8020
STREAM_API_LOG_LEVEL=debug

Infrastructure Configuration

properties
NATS_URL=nats://nats:4222
CONSUL_ADDR=consul:8500
VAULT_ADDR=http://vault:8200

Service Versions

properties
STREAM_API_VERSION=v1.0.0
STREAM_READER_VERSION=v1.0.0
STREAM_WRITER_VERSION=v1.0.0

Logging

Logs are written to the logs directory:

  • logs/api.log: Stream API logs
  • logs/reader.log: Stream reader logs
  • logs/writer-1.log: First stream writer logs
  • logs/writer-2.log: Second stream writer logs

Health Monitoring

Check service status:

bash
docker compose ps

View logs:

bash
docker compose logs -f [service_name]

Troubleshooting

  1. Check service logs in the logs directory
  2. Verify all required ports are available
  3. Ensure sufficient system resources
  4. Confirm API key is correctly configured

For additional support, contact us at https://streams.dbconvert.com/contact

DBConvert Streams - event driven replication for databases