Offline Installation
Docker Compose and Helm installations can both run on machines without internet access. You download the files on a connected machine, move them to the target machines, and install from there. Once installed, the platform needs no internet access, and the license key is applied offline.
What you need
-
A connected machine with internet access, Docker, and Helm for a Kubernetes installation.
-
A way to move files to the target machines: a USB drive, SCP or your organization’s file transfer.
-
For Kubernetes or OpenShift: a container registry the cluster can reach.
The connected machine downloads from these addresses. Allow outbound HTTPS to them:
| Address | For |
|---|---|
|
Image archives ( |
|
The Helm chart |
Docker Hub |
The |
To check access from the connected machine:
curl -I https://governor-static.synthesized.io
Docker Compose
On the connected machine
-
Get the production bundle (or the demo package), unzip it, and list the images its
docker-compose.ymluses:docker compose config --images -
Download those images. Either download the image archives:
wget \ https://governor-static.synthesized.io/docker-images/synthesized-api/synthesized-api_v1.184.0_linux_amd64.tar \ https://governor-static.synthesized.io/docker-images/synthesized-front/synthesized-front_v1.184.0_linux_amd64.tar \ https://governor-static.synthesized.io/docker-images/synthesized-worker/synthesized-worker_v1.184.0_linux_amd64.tarDownload any other image the list shows, for example:
wget \ https://governor-static.synthesized.io/docker-images/synthesized-pagila/synthesized-pagila_v1.8_linux_amd64.tar \ https://governor-static.synthesized.io/docker-images/postgres/postgres_v17.0-alpine_linux_amd64.tar \ https://governor-static.synthesized.io/docker-images/opentelemetry-collector-contrib/opentelemetry-collector-contrib_v0.103.0_linux_amd64.tar \ https://governor-static.synthesized.io/docker-images/prometheus/prometheus_v3.0.0_linux_amd64.tarOr pull each image and save it to a file, for example:
docker pull --platform linux/amd64 synthesizedio/synthesized-api:<version> docker save -o synthesized-api_<version>_linux_amd64.tar synthesizedio/synthesized-api:<version>Do the same for
synthesized-front,synthesized-workerand any other image the list shows. -
Move the unzipped bundle and the
.tarfiles to the target machine.
On the target machine
-
Load the images:
for tarfile in *.tar; do docker load -i "$tarfile" done -
Check that the loaded images match the ones
docker-compose.ymlnames, tag for tag. Docker Compose can’t pull a missing image without internet access.docker compose config --images docker images -
Continue with the installation: Docker Compose from step 2, or the demo.
Kubernetes and OpenShift
On the connected machine
-
Download the chart. It’s saved as
governor-<chart-version>.tgz:helm pull oci://synthesizedio.jfrog.io/helm/governor --version <chart-version> -
Pull the Governor images for the same version,
synthesizedio/synthesized-api,synthesizedio/synthesized-frontandsynthesizedio/synthesized-worker, and push them to a registry the cluster can reach. If the cluster’s registry isn’t reachable from the connected machine, save the images withdocker saveand load them on the other side. -
Mirror the other images the chart may use:
-
alpine/k8s, for the hook that runs on everyhelm upgrade. SetmigrationCleanup.image.repositoryandmigrationCleanup.image.tagto your copy. -
The Envoy sidecar image, if you turn on the chart’s built-in mutual TLS (
tlsInternal). See the comments ontlsInternalin the chart’svalues.yaml.
-
In the cluster
-
Point the chart at your registry in
values.yaml:api: image: repository: registry.example.com/synthesizedio/synthesized-api front: image: repository: registry.example.com/synthesizedio/synthesized-front worker: image: repository: registry.example.com/synthesizedio/synthesized-worker -
Follow Kubernetes and OpenShift, with the path to
governor-<chart-version>.tgzin place ofoci://synthesizedio.jfrog.io/helm/governorinhelm install.
License key
Set SYNTHESIZED_KEY as usual. The key is checked offline, so the license works without internet access.
Updates
Updates follow the same route: download on the connected machine, move the files, load or push them, then upgrade. See Update Offline for Docker Compose, and Update Helm for Kubernetes.