Skip to content

Updating SentriKat (On-Prem)

Upgrading an on-prem SentriKat install means loading a newer bundle image and restarting — reusing your existing data volumes. There are two ways, both cross-OS; your database and config carry over either way.

Your data is in Docker volumes

SentriKat stores everything in the sentrikat_postgres_data and sentrikat_sentrikat_data Docker volumes. The bundle pins a fixed compose project name (sentrikat), so these volumes stay attached across versions. Keep your .env (license, SENTRIKAT_INSTALLATION_ID, ENCRYPTION_KEY, DB_PASSWORD) and ./certs, and your database carries over.

Option A — one command (Linux / macOS / WSL)

From your install folder:

./scripts/update.sh           # check the portal, download the new bundle, load, restart
./scripts/update.sh --check   # only report whether an update exists (no changes)

update.sh queries the Customer Portal for the latest release, downloads the new bundle, verifies it, docker loads the image, refreshes the files, and restarts reusing your existing data volumes.

Option B — download bundle + load (any OS)

This is the same docker load + docker compose up -d you used to install, so it works identically on Linux, macOS, and Windows (Docker Desktop). Download the new bundle from the Customer Portal (Download bundle), then:

tar -xzf sentrikat-<new-version>.tar.gz
cd sentrikat-<new-version>
cp ../sentrikat-<old-version>/.env .        # reuse YOUR config (license, IDs, DB password)
cp -r ../sentrikat-<old-version>/certs .    # reuse TLS certs, if any
docker load -i sentrikat-image-*.tar.gz     # load the new image
docker compose up -d                        # migrations run automatically

Keep the same identity across upgrades

Reuse the same SENTRIKAT_INSTALLATION_ID and ENCRYPTION_KEY (they live in the .env you copy over) so your license and encrypted data carry over. The installation ID is what your license is bound to — see Licensing & Activation.

Upgrading FROM a pre-pinning bundle

Bundles older than the project-name pinning named their volumes after the install folder, so a plain docker compose up -d from a new folder would start on empty volumes (you'd see a fresh, empty install). Reattach the existing volumes once by reusing the old project name:

# Find the project name the old install used
PROJ=$(docker inspect sentrikat-app -f '{{ index .Config.Labels "com.docker.compose.project" }}')

# Bring the new version up against the existing data volumes
docker compose -p "$PROJ" up -d

After this one-time reattach, subsequent bundles use the pinned sentrikat project name and no -p flag is needed.

Air-gapped update

No registry or internet access is required on the host — the image is inside the bundle:

  1. On a connected machine, download the new bundle from the Customer Portal.
  2. Copy it to the air-gapped host (USB, internal share, etc.).
  3. Follow Option B above.

License updates for air-gapped installs are handled by pasting a refreshed signed license — see Licensing & Activation.

Verify the upgrade

docker compose ps                  # all services "healthy"
docker compose logs -f sentrikat   # watch startup + automatic migrations

The new version is live once the containers report healthy. If a service stays unhealthy, check docker compose logs sentrikat — the most common cause is a .env value (e.g. DB_PASSWORD) that wasn't carried over from the old install.

Need help? support@sentrikat.com.