Move to production
This guide walks you through the mandatory steps to move your Gluesync deployment from evaluation to a production-ready state. It covers everything from system validation and container runtime configuration to final security and operational checks.
|
If you installed Gluesync using one of our setup wizards (default installers), you are approximately 99% ready for production. The wizards handle most of the heavy lifting: system checks, container runtime installation, kit download, encryption key generation, and initial startup. What remains for you to complete manually:
|
Validate system requirements
Before installing or promoting any environment, confirm that the host meets the hardware baseline (CPU, memory, and free disk space) documented in System requirements. Size the host against the production profile, not the POC/demo one, and add storage headroom for container images, logs, Prometheus metrics, and backups.
Our setup wizards enforce these requirements automatically, but if you are performing a manual installation you must verify them yourself.
Install and configure the container runtime
Gluesync runs as a set of containers. The production host must have a supported container runtime installed, configured with logging limits, and running as a service.
Docker (Linux)
-
Install Docker CE and the Compose plugin for your distribution:
-
Fedora:
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Ubuntu/Debian:
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Red Hat/Oracle Linux/CentOS:
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Amazon Linux 2023:
dnf install docker -
SUSE Linux Enterprise Server / openSUSE:
zypper install docker
-
-
Start and enable the Docker service:
systemctl enable --now docker -
Add your deployment user to the
dockergroup (optional but recommended):usermod -aG docker $USER -
Configure the Docker logging driver to prevent disk exhaustion. Create or edit
/etc/docker/daemon.json:{ "log-driver": "json-file", "log-opts": { "mode": "non-blocking", "max-buffer-size": "4m", "max-size": "100m", "max-file": "10" } } -
Restart Docker to apply the logging configuration:
systemctl restart docker
Podman (Linux, rootless)
-
Install Podman and CNI plugins for your distribution.
-
Enable user lingering so rootless services persist across logouts:
loginctl enable-linger $USER -
Configure subuid/subgid for rootless containers:
echo "$(whoami):100000:65536" | sudo tee -a /etc/subuid echo "$(whoami):100000:65536" | sudo tee -a /etc/subgid -
Enable the Podman socket for your user:
systemctl --user enable --now podman.socket -
Configure Podman logging in
~/.config/containers/containers.conf:[containers] log_driver = "k8s-file" log_size_max = 104857600 -
Configure registries in
~/.config/containers/registries.conf:[registries.search] registries = ["docker.io"]
Docker (Windows Server)
-
Verify the host is running Windows Server 2019, 2022, or 2025.
-
Enable the Containers Windows feature.
-
If using Hyper-V containers, also enable the Hyper-V feature.
-
Install Docker Engine and Docker Compose.
-
Configure the Docker daemon logging options in
%programdata%\docker\config\daemon.jsonwith the samejson-filerotation settings shown for Linux above. -
Start the Docker service.
|
Windows Server 2019 support is approaching end-of-life. Docker, Traefik, and other dependencies are no longer receiving security patches on this platform. Plan a migration to Windows Server 2022 or newer. |
Apply network tuning (Linux)
For Ubuntu and Debian systems, apply the following sysctl tuning to improve container networking performance. Create /etc/sysctl.d/99-gluesync.conf:
net.netfilter.nf_conntrack_max = 131072
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 30
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
Then reload:
sudo sysctl --system
Antivirus software
Antivirus and endpoint detection & response (EDR) tools that perform real-time file-system scanning can cause significant CPU overhead on the host running Gluesync. Gluesync continuously reads and writes to its data directory (SQLite databases, journal files, log files, and internal caches), which makes it a high-frequency I/O target. Every file operation that triggers an antivirus scan adds latency and CPU cycles that compete directly with pipeline processing.
Depending on the antivirus product and the scan policy in use, this interference can:
-
Spike CPU usage on the Gluesync host by 20–80% under normal load
-
Introduce unpredictable latency spikes in CDC pipelines
-
Cause container health-check timeouts
-
Slow down Gluesync startup significantly
|
If Gluesync appears to be running slowly, consuming unexpected CPU, or if pipelines are experiencing intermittent lag with no other obvious cause, antivirus real-time scanning is one of the first things to rule out. |
Recommended action: whitelist the Gluesync installation directory
The safest and most targeted fix is to add the Gluesync installation directory to your antivirus exclusion list (also called a whitelist or safe path).
| Platform | Default path to exclude |
|---|---|
Linux (Docker / Podman) |
|
Windows Server (Docker) |
|
If your organisation uses a non-default installation path, exclude that path instead.
In addition to the installation directory, consider also excluding:
-
The Docker data root (default:
/var/lib/dockeron Linux,C:\ProgramData\Dockeron Windows) to avoid scanning container layer files -
The Podman storage root (default:
~/.local/share/containers/storage) for rootless Podman deployments
Alternative: disable real-time scanning on the host
If whitelisting specific paths is not possible under your security policy, disabling real-time (on-access) scanning entirely on the Gluesync host is an acceptable alternative, provided the host is otherwise network-isolated and hardened. Scheduled (on-demand) scans can remain active outside of peak pipeline hours.
Coordinate any exception with your security team and document it in your change management process.
Deploy the Gluesync kit
-
Create the installation directory:
-
Linux:
/opt/gluesync -
Windows:
C:\Program Files\Gluesync
-
-
Download your kit using the unique identifier from your Gluesync welcome email.
-
Extract the archive.
-
Copy the contents of the platform-specific folder (
gluesync-docker,gluesync-podman, orgluesync-docker-windows) into the installation directory. -
Copy any shared root-level configuration files (for example,
bootstrap-core-hub.json) into the same directory, excluding other platform folders.
Set ownership and permissions
-
Docker (Linux): Ensure the installation directory is owned by the user that will run Gluesync:
sudo chown -R $(whoami):$(whoami) /opt/gluesync -
Podman (Linux): Ensure the installation directory is owned by the actual user running rootless Podman:
sudo chown -R $SUDO_USER:$SUDO_USER /opt/gluesync -
Windows: The default install path under
C:\Program Files\Gluesyncis managed by the setup wizard.
Generate a storage encryption key
Gluesync uses a storage key to encrypt sensitive data at rest. The trial kit ships with a placeholder key (gluesync-storage-key). You must replace it with a randomly generated key before going live.
In bootstrap-core-hub.json, replace the placeholder:
{
"storageKey": "<your-random-32-char-hex-key>"
}
If you used a setup wizard, this step was completed automatically.
Start Gluesync
-
Change to the installation directory and run the startup script:
-
Linux:
./run.sh -
Windows:
run.ps1
-
-
Wait for all containers to reach a healthy state.
-
Access the Control Plane:
-
URL:
https://<host-ip> -
Default username:
admin -
Default password:
admin
-
Production readiness checklist
After Gluesync is running, complete the following tasks to reach full production readiness.
Logging
-
Set log verbosity to
INFOorWARNto reduce noise and disk usage. -
Confirm log rotation is active (see the container runtime logging configuration above).
-
Review Logging configuration for advanced options.
Alerting
-
Configure SMTP so Gluesync can send email notifications.
-
Verify alert rules are enabled for pipeline errors, license expiry, and disk space.
Security
-
Enable TLS on the Control Plane (port 1717) and Agent API (port 1731).
-
Enable node-to-node encryption for data in transit between agents and the Core Hub.
-
Rotate the default
adminpassword. -
Configure RBAC and, if desired, OIDC authentication.
Backup and restore
-
Schedule regular Automator backups from the Control Plane.
-
Store backup artifacts in a safe location, separate from the Gluesync host.
-
Test a restore in a lower environment to validate your disaster recovery runbook.
Monitoring
-
Enable Prometheus metrics scraping.
-
Import the official Grafana dashboards.
-
Set up Control Plane health monitoring.
Antivirus exclusions
-
Add the Gluesync installation directory (
/opt/gluesyncon Linux,C:\Program Files\Gluesyncon Windows) to your antivirus exclusion list. -
Optionally exclude the Docker or Podman storage root to prevent container layer scanning.
-
See the Antivirus software section above for full details and the rationale.
Performance tuning
-
Review connection pool sizing for each agent.
-
Adjust polling intervals based on latency requirements (lower for real-time, higher for batch).
-
Verify best practices for memory management and buffer settings.