For the complete documentation index, see llms.txt. This page is also available as Markdown.

Docker Deployment Guide

Step-by-step guide to deploying ZigiOps using Docker. Learn how to run, upgrade, roll back, and configure the ZigiOps container image.

ZigiOps can be deployed as a self-hosted Docker container, bundling all required services into a single image. This deployment model is suited for organizations that use containerized infrastructure and want a portable, self-managed ZigiOps installation.

The Docker image includes the following ZigiOps services:

  • Platform

  • Frontend

  • Persistence

  • Troubleshooting

All services start sequentially inside the container. Startup typically takes 1-2 minutes.


Prerequisites

Before you begin, make sure the following requirements are met:

  • Docker Engine is installed and running on the target host.

  • The target host has internet access to download the ZigiOps image archive (or the archive has been transferred manually).

  • A valid ZigiOps license file has been provided by ZigiWave.

  • Port 8080 is available on the host for the ZigiOps UI. Additional ports may be needed for listener endpoints.


Downloading the Docker Image

The ZigiOps Docker image is distributed as a .tar archive. Download the image for your target version from the following URL:

Replace {build-number} with the specific version number for your deployment.

After downloading, load the image:


Named Volumes

Named volumes are used so that data survives both container restarts and upgrades. Create the following volumes once and reuse them across all deployments:

Volume Name
Container Path
Notes

zigiops-persistence-conf

/zigiops/persistence/conf

Seeded from image on first run

zigiops-persistence-logs

/zigiops/persistence/logs

Output only

zigiops-troubleshooting-data

/zigiops/troubleshooting/data

Seeded from image on first run

zigiops-troubleshooting-logs

/zigiops/troubleshooting/logs

Output only

zigiops-frontend-logs

/zigiops/frontend/logs

Output only

zigiops-platform-audit

/zigiops/platform/audit

Output only

zigiops-platform-conf

/zigiops/platform/conf

Seeded from image on first run

zigiops-platform-logs

/zigiops/platform/logs

Output only

Note: Volumes marked "Seeded from image on first run" are declared as VOLUME in the Dockerfile. Docker copies the default content from the image into the volume automatically the first time the container starts. On subsequent runs, including upgrades, the existing volume content is preserved and the image content is ignored.


Scenario 1: Clean New Deployment

Use this when deploying ZigiOps for the first time on a host with no existing data.

1

Load the image

2

Create named volumes

Run once. Skip if volumes already exist.

3

Run the container

The ZigiOps UI is available at http://<host>:8080 once all services have started.


Scenario 2: Restart

Use this to restart the container without losing any data or configuration. Named volumes ensure all data is preserved automatically.

Or stop and start separately:


Scenario 3: Upgrade

Use this when deploying a new version of ZigiOps over an existing installation. The same named volumes are reused, so all data and configuration is preserved.

1

Load the new image

2

Stop and remove the current container

Note: The named volumes are not removed by docker rm. All data is safe.

3

Run the new container with the same volumes

Configuration note: The conf volumes (zigiops-persistence-conf, zigiops-platform-conf) are not re-seeded from the new image during an upgrade. Docker keeps the existing volume content. If the new version introduces changes to default configuration files, those changes must be applied manually.

To inspect what the new image ships as defaults before upgrading:


Rollback

If an upgrade needs to be rolled back, stop the new container and rerun the previous image version with the same volumes:


Useful Commands


Optional Steps

Opening an Additional Custom Port

Some integrations require an extra port to be exposed. Add a -p flag to the docker run command for each additional port needed. Multiple ports can be added by repeating the flag:

Adding a Custom Certificate to the Truststore

Some connected systems use certificates that are not trusted by default. These must be imported into the truststore. The truststore is not a declared VOLUME in the Dockerfile, so the volume must be created and seeded manually before importing the certificate.

1

Create the truststore volume

2

Seed the volume with the default truststore from the image

Mount the volume at a separate /target path so the original image path remains accessible for copying:

3

Import the custom certificate

Place the certificate file (.pem or .cer) on the Docker host, then run keytool inside a temporary container:

4

Run the container with the truststore volume

Add the truststore volume mount to the docker run command alongside the standard volumes:

Note: The truststore volume persists across restarts and upgrades. Additional certificates can be imported at any time by repeating Step 3 with a different -alias value, without needing to restart the container.


Last updated

Was this helpful?