Skip to content

Licensing & paid features

Introduced in v1.14.0

The self-hosted ZaneOps core is free and MIT-licensed, and always will be. A small set of team-oriented features are additive, shipped in the Enterprise Edition (EE) build, and unlocked by an optional paid license.


Without any license, your instance runs on the free tier:

LimitValue
Workspaces1
Users3 (workspace members + pending invitations)

Everything else (unlimited projects, services, environments, deployments, preview environments, Docker Compose stacks, Git apps) is unaffected by licensing.


Licenses come in tiers. The Starter tier unlocks:

FeatureDescription
Extra workspacesCreate more than one workspace on the same instance
Extra user seatsAdd more than 3 users across your workspaces

And more features will be available for licensed instances.

Licensed feature gate message

Licensing and every paid feature live in the Enterprise Edition image, published as ghcr.io/zane-ops/app:ee-<version>. The default ghcr.io/zane-ops/app:<version> image is pure MIT and contains no licensing code at all: the Server admin > License page and the paid features are simply absent.

To switch an existing instance to the EE image, edit docker-stack.prod.yaml and add the ee- prefix to the image tag on the zane-app, zane-temporal-main-worker and zane-temporal-schedule-worker services:

docker-stack.prod.yaml
zane-app:
image: ghcr.io/zane-ops/app:ee-${IMAGE_VERSION}
# ...
zane-temporal-main-worker:
image: ghcr.io/zane-ops/app:ee-${IMAGE_VERSION}
# ...
zane-temporal-schedule-worker:
image: ghcr.io/zane-ops/app:ee-${IMAGE_VERSION}

The zane-proxy image is unchanged. Then redeploy:

Terminal window
make deploy

  • A license is a signed key issued by the ZaneOps license server (api.zaneops.dev).
  • It is bound to your instance: an instance fingerprint (a hash of an ID generated on first boot) is registered with the license server when you install the key. The same key cannot be used on another instance at the same time.
  • Your instance re-validates the license with the license server periodically (roughly every 12 hours). If the license has expired, been unbound, or been rebound to another instance, it is removed automatically and the instance falls back to the free tier.
  • There is one license per instance (a singleton). Installing a new key replaces the previous one.

  1. Buy a license from zaneops.dev. You receive a License ID.

  2. In ZaneOps, go to Server admin > License. This area is only available to the instance owner (the first user of the instance).

    Server admin license page
  3. Enter your License ID, then submit. ZaneOps contacts the license server, binds the license to this instance, and installs it.

  4. Once installed, the page shows the tier, expiry date, who installed it, and the instance fingerprint the license is bound to.

From the same page, choose Uninstall. ZaneOps unbinds the license from this instance on the license server, so you can re-use it elsewhere, and stops the periodic re-validation. The instance returns to the free tier.


Installing a license shares your instance fingerprint and license ID with the ZaneOps license server so the key can be issued and bound. See the Privacy Policy for what is collected and retained.