Official Signal18 container images provide a complete deployment of replication-manager with all dependencies included.
Replication Management:
Operations:
Deployment & Orchestration:
Security & Configuration:
Monitoring & Alerting:
version-pro (recommended for production)
prov-orchestrator = "opensvc"version (lightweight)
prov-orchestrator = "onpremise"nightly
develop branchpro featuresdev
Example for development container:
docker run --user=124:132 \
-e HOME=/go/src/github.com/signal18/replication-manager \
--detach \
--name=dev \
--interactive \
--tty \
--volume=/home/dev/replication-manager:/go/src/github.com/signal18/replication-manager:rw \
--volume=/home/dev/etc/replication-manager:/etc/replication-manager:rw \
--volume=/home/dev/data:/var/lib/replication-manager:rw \
docker.io/signal18/replication-manager:dev \
/bin/bash
Container logs are written to /var/log/replication-manager.log inside the container.
Step 1: Create directory structure
Create directories on your Docker host as the repman user (or your preferred user):
mkdir -p ~/etc/cluster.d ~/data ~/config
Step 2: Download configuration templates
# Download main config
wget -O ~/etc/config.toml \
https://raw.githubusercontent.com/signal18/replication-manager/refs/heads/3.1/etc/config.toml
# Download cluster config sample
wget -O ~/etc/cluster.d/cluster1.toml.sample \
https://raw.githubusercontent.com/signal18/replication-manager/refs/heads/3.1/etc/cluster.d/cluster1.toml.sample
Step 3: Customize configuration
Edit ~/etc/config.toml for global settings that apply to all clusters.
Edit ~/etc/cluster.d/cluster1.toml.sample and customize for your first cluster
[cluster1]
title = "cluster1"
prov-orchestrator = "onpremise"
db-servers-hosts = "127.0.0.1:3331"
db-servers-prefered-master = "127.0.0.1:3331"
db-servers-credential = "root:mariadb"
replication-credential = "root:mariadb"
Change to:
[my-first-cluster]
title = "my-first-cluster"
prov-orchestrator = "onpremise"
db-servers-hosts = "my-db1:3306,my-db2:3306"
db-servers-prefered-master = "my-db1:3306"
db-servers-credential = "root:my-secret-password"
replication-credential = "repl_user:repl-password"
Step 4: Rename cluster configuration file
mv ~/etc/cluster.d/cluster1.toml.sample ~/etc/cluster.d/my-first-cluster.toml
Step 5: Start the Docker container
Version 3.x (requires three volume mounts):
docker run -v ~/etc:/etc/replication-manager:rw \
-v ~/data:/var/lib/replication-manager:rw \
-v ~/config:/root/.config/replication-manager:rw \
-p 443:10005 \
-p 80:10001 \
--name replication-manager \
--detach \
signal18/replication-manager:3.1
Version 2.x (two volume mounts):
docker run -v ~/etc:/etc/replication-manager:rw \
-v ~/data:/var/lib/replication-manager:rw \
-p 443:10005 \
-p 80:10001 \
--name replication-manager \
--detach \
signal18/replication-manager:2.3
Volume mounts explained:
~/etc → /etc/replication-manager - Configuration files (config.toml and cluster.d/)~/data → /var/lib/replication-manager - Runtime data and cluster state~/config → /root/.config/replication-manager - Dynamic config changes (3.x only)Exposed ports:
10001 - HTTP web interface10005 - HTTPS web interface and API10002-10004 - Graphite & pickle API (optional)Important: Version 3.x requires the third volume mount (
/root/.config/replication-manager) to persist dynamic configuration changes. Without it, any configuration changes made via the API or web UI will be lost when the container restarts