Skip to content
Zenith / Docs
Enterprise Gateway
OpenAI compatible

Install Gateway

Install the Gateway with Docker Compose, configure its license, and start serving requests.

Enter the hostname your application uses to reach Zenith Gateway. Every Enterprise example below updates instantly.

Hostname only, or paste a full URL. Saved in this browser.

Quick install

Terminal
curl -fsSL https://zenithgw.com/install.sh | bash -s -- --yes

The installer creates and keeps your configuration in ~/zenith-gateway, then pulls the Gateway image from ghcr.io. Keep gateway.env private and use a pinned image tag for production changes.

Installer flags

FlagPurpose
--mode swarmDocker Swarm stack instead of Compose
--swarm-data-node NAMEPin gateway/Postgres/NATS to the Swarm node that owns local volumes
--no-natsSkip NATS; empty ZENITH_NATS_URL
--gateway-port NPublish gateway on a non-default host port
--issuer-url URLActivation / policy-sync issuer origin
--tag TAGImage tag or full image reference
--uninstall [--purge]Tear down (optionally delete volumes)
--checkPrerequisites only

Compose vs Swarm

Compose is the recommended single-host path. Swarm is available for operators who need it; it keeps one Gateway replica and pins stateful services to one node.

Environment model

gateway.env contains your Gateway image, local admin secret, bootstrap API key, database password, issuer URL, and optional issuer verification key. The installer generates secrets for a new installation. Product settings are configured in the Gateway admin after activation.

Ports

Host port (default)TargetWhen published
90909090 gatewayAlways (GATEWAY_PORT)
154325432 postgresOnly when you explicitly publish it
14222 / 18222NATS client / monitorOnly when you explicitly publish it

Activation

  • /healthz returns 200 as soon as the process is up.
  • /readyz returns 503 until a valid license is activated; then 200.
  • Open /admin/activate, upload .lic, activate against ZENITH_ISSUER_URL (HTTPS in production).
  • First boot continues to /setup to create the owner account when the org is empty.
  • Configure providers and pools, then call the OpenAI SDK against /v1.