Docker Deployment Guide
Prerequisites
- Docker Engine 20.10.0 or newer
- Docker Compose v2.0.0 or newer
- Either
curl
ORwget
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:
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
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 configurationsvault-data
: Vault data including encrypted database passwords, SSL/TLS certificates, and initialization informationnats-data
: NATS message store
Local Directories
logs/
: Service logsconfig/
: 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
- DBConvert Streams UI: http://localhost (default port 80)
- DBConvert Streams API: http://localhost:8020
- Consul UI: http://localhost:8500
- Vault UI: http://localhost:8200
- NATS Monitoring: http://localhost:8222
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 logslogs/reader.log
: Stream reader logslogs/writer-1.log
: First stream writer logslogs/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
- Check service logs in the
logs
directory - Verify all required ports are available
- Ensure sufficient system resources
- Confirm API key is correctly configured
For additional support, contact us at https://streams.dbconvert.com/contact