> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tembo.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy

> Install Tembo on your cluster with one helm install.

> [!NOTE]
>
> Kubernetes support is currently in early access. To get on the list, book a demo call with the Tembo team: [Book a Demo](https://book.avoma.com/tembo/tembo-demo/)

Complete the [prerequisites](https://docs.tembo.io/features/self-hosted/kubernetes/prerequisites/overview.md) and set up [GitHub](https://docs.tembo.io/features/self-hosted/kubernetes/prerequisites/github.md) first. The values below name its Secret in `github.existingSecret`; leave that out to set up GitHub later. With their Helm values, the chart's defaults run everything Tembo needs: the platform, Postgres and Redis, and a pool of agent hosts. To change any of it, see [Configuration](https://docs.tembo.io/features/self-hosted/kubernetes/configuration.md).

Don't pass `--wait` to the first `helm install` with Helm 4. Its default wait strategy waits for the host pool, which becomes ready only after the chart's post-install database migrations run, so the install times out. Later `helm upgrade --wait` runs are fine, since migrations run before the upgrade.

The chart is at `oci://registry.tembo.io/tembo`. Sign Helm in to the registry with your license key as the password:

```bash theme={null}
read -s TEMBO_LICENSE_KEY
echo "$TEMBO_LICENSE_KEY" | helm registry login registry.tembo.io --username tembo --password-stdin
```

***

## On AWS

Create `values.yaml`:

```yaml theme={null}
licenseKey: '<your-license-key>'

image:
  tag: '<platform image tag from Tembo>'

ingress:
  className: alb
  host: tembo.example.com

github:
  existingSecret: tembo-github-app

compute:
  controller:
    image:
      tag: '<host controller image tag from Tembo>'
```

Install the chart with the module's values, `tembo-aws.json` from [AWS prerequisites](https://docs.tembo.io/features/self-hosted/kubernetes/prerequisites/aws.md#configure-the-chart-with-its-outputs), first so yours override them:

```bash theme={null}
helm install tembo oci://registry.tembo.io/tembo --version <version> \
  -n tembo --create-namespace \
  -f tembo-aws.json -f values.yaml
```

Without external-dns, create DNS records once the load balancers exist (`kubectl -n tembo get ingress,svc` shows them): your hostname for the Ingress, and `postgres.<your-host>` and `redis.<your-host>` for the `tembo-postgresql-hosts` and `tembo-redis-hosts` Services. Agent hosts reach the database and Redis at those names.

The first agent host is ready in about four minutes:

```bash theme={null}
kubectl -n tembo get tembohosts
```

## On GCP

Create `values.yaml`:

```yaml theme={null}
licenseKey: '<your-license-key>'

image:
  tag: '<platform image tag from Tembo>'

ingress:
  host: tembo.example.com
  gke:
    enabled: true

github:
  existingSecret: tembo-github-app

compute:
  controller:
    image:
      tag: '<host controller image tag from Tembo>'
```

`ingress.gke` serves Tembo through GKE's Ingress with a Google-managed certificate for your hostname, and redirects HTTP to HTTPS.

Install the chart with the module's values, `tembo-gcp.json` from [GCP prerequisites](https://docs.tembo.io/features/self-hosted/kubernetes/prerequisites/gcp.md#configure-the-chart-with-its-outputs), first so yours override them:

```bash theme={null}
helm install tembo oci://registry.tembo.io/tembo --version <version> \
  -n tembo --create-namespace \
  -f tembo-gcp.json -f values.yaml
```

Without external-dns, create DNS records once the load balancers exist (`kubectl -n tembo get ingress,svc` shows them): your hostname for the Ingress, and `postgres.<your-host>` and `redis.<your-host>` for the `tembo-postgresql-hosts` and `tembo-redis-hosts` Services. The certificate is issued once your hostname resolves to the Ingress, which can take up to an hour.

The first agent host is ready in a few minutes:

```bash theme={null}
kubectl -n tembo get tembohosts
```

## On Azure

Coming soon.

***

## After installing

1. **Sign in.** Open `https://<your-host>`, sign up and create your workspace.
2. **Add a model provider** in **Settings > Models**. Sessions started from GitHub, and session titles, need an Anthropic API key or a workspace Claude subscription.
3. **Connect GitHub** in **Settings > Integrations** (see [Connect GitHub](https://docs.tembo.io/features/self-hosted/kubernetes/prerequisites/github.md#step-5-connect-github)).
4. **Start a session** on one of your repositories.

Self-hosted installs don't email invitations: teammates sign up at `https://<your-host>/sign-up`, then you invite them under **Settings > Workspace > Members**.

***

## Troubleshooting

**A host doesn't reach `Ready`.** The controller replaces a host that doesn't register within 15 minutes. Read its boot log with `aws ec2 get-console-output --instance-id <instance-id> --latest` and look for `tembo-host-config`. Hosts must reach the cluster's API endpoint and the `postgres.` and `redis.` hostnames.

**Connecting GitHub fails with "Failed to get extra data for integration".** The GitHub App needs the **Members** organization permission. Set it to **Read-only**, approve the change on your organization's installation, then connect again.

**GitHub says it sent an installation request.** Only owners of the GitHub organization can connect it.

**The agent can't clone a repository.** Enable it in **Settings > Repositories**.

**Webhooks never arrive.** Check the GitHub App's **Advanced > Recent deliveries**. If GitHub can't connect, your Ingress isn't reachable from the internet. If deliveries succeed, check the app's webhook secret against the one the install notes print.

**Inviting a teammate fails with "Organization member not found".** They need to sign up first.

**Sessions started from GitHub fail with "The gateway could not authenticate with its upstream provider".** Add an Anthropic API key or a workspace Claude subscription in **Settings > Models**.

**Sessions fail at once, with "too many clients already" in the API's logs.** Postgres is out of connections. See [Postgres and Redis](https://docs.tembo.io/features/self-hosted/kubernetes/configuration.md#postgres-and-redis).

**A session fails with "Host CPU count (…) is too small" or "Host total memory (…) is too small".** Its size doesn't fit your hosts' instance type. See [Instance types](https://docs.tembo.io/features/self-hosted/kubernetes/configuration.md#instance-types).

***

## Need Help?

If you run into any issues, contact [support@tembo.io](mailto:support@tembo.io).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.