This documentation is available to agents as Markdown at https://docs.synthesized.io/tdk/latest/user_guide/050_deployment_operations/production_setup/offline.md. For the complete documentation index, see llms.txt.

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

governor-static.synthesized.io

Image archives (.tar files)

synthesizedio.jfrog.io

The Helm chart

Docker Hub

The synthesizedio/* images, if you pull them with docker pull

To check access from the connected machine:

curl -I https://governor-static.synthesized.io

Docker Compose

On the connected machine

  1. Get the production bundle (or the demo package), unzip it, and list the images its docker-compose.yml uses:

    docker compose config --images
  2. 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.tar

    Download 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.tar

    Or 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-worker and any other image the list shows.

  3. Move the unzipped bundle and the .tar files to the target machine.

On the target machine

  1. Load the images:

    for tarfile in *.tar; do
      docker load -i "$tarfile"
    done
  2. Check that the loaded images match the ones docker-compose.yml names, tag for tag. Docker Compose can’t pull a missing image without internet access.

    docker compose config --images
    docker images
  3. Continue with the installation: Docker Compose from step 2, or the demo.

Kubernetes and OpenShift

On the connected machine

  1. Download the chart. It’s saved as governor-<chart-version>.tgz:

    helm pull oci://synthesizedio.jfrog.io/helm/governor --version <chart-version>
  2. Pull the Governor images for the same version, synthesizedio/synthesized-api, synthesizedio/synthesized-front and synthesizedio/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 with docker save and load them on the other side.

  3. Mirror the other images the chart may use:

    • alpine/k8s, for the hook that runs on every helm upgrade. Set migrationCleanup.image.repository and migrationCleanup.image.tag to your copy.

    • The Envoy sidecar image, if you turn on the chart’s built-in mutual TLS (tlsInternal). See the comments on tlsInternal in the chart’s values.yaml.

In the cluster

  1. 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
  2. Follow Kubernetes and OpenShift, with the path to governor-<chart-version>.tgz in place of oci://synthesizedio.jfrog.io/helm/governor in helm 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.