Skip to main content
Run tai on your own infrastructure from the official container image. One image plays every server role; a Compose bundle and a Helm chart deploy it, and the release pipeline signs and scans every artifact it publishes.

Quickstart

Deploy the Compose bundle against the official image.

Upgrades

Pull a new tag, apply the schema, recreate the app services.

Helm

Install and upgrade on Kubernetes from the published chart.

Verify artifacts

Check cosign signatures and image digests.

Web stacks

Run the marketplace and website images.

Ops notes

Reverse proxies, backups, and health probes.

The image

docker.io/tai42/tai is the official image, mirrored at ghcr.io/tai42ai/tai. It is one minimal-core image that runs every deployment role from a single entrypoint (tai): the HTTP server, the task backend worker, and the metrics reader. What a container becomes is chosen by its command and its manifest, not by a different image per role. The three long-lived processes all come out of this one image:

Tags

The release publishes a semver fan-out — X.Y.Z, X.Y, X, and latest — for a stable release; a prerelease publishes its exact version tag only and leaves the moving tags on the last stable image. Pin an exact X.Y.Z tag in production; latest moves under you.

What the image bundles

The image is the minimal core: the platform layers plus one reference provider per infrastructure kind — local storage, the arq task backend, the Redis identity (API-key) provider, and the Kubernetes config provider — and the built Studio SPA. The bundled package set is exactly: Every other plugin — the channels, the S3/GitHub storages, the celery/rq backends, the connectors, the webhook verifiers, monitoring, accounts, and the extra tools — is not baked in. Add the ones a deployment needs at runtime through the marketplace or by baking them into a derived image. See the layering for what each layer contains.
Runtime-installed plugins live in the server’s plugin prefix, not in the image. An image upgrade replaces the core but does not update a runtime-installed plugin — see Upgrades.