Helm-based installation requires an OpenHands Enterprise license. If you don’t have
one yet, register for a free 30-day trial
or contact our team to get set up.
Prerequisites
- A Kubernetes cluster with a default storage class and an ingress controller (see Resource Limits for sizing guidance)
- Helm v4 or later
kubectlaccess to the target cluster- Your license ID and the email address registered with your license (both provided by our team)
- LLM credentials from your chosen provider, for example an Anthropic API key from the Anthropic Console
- DNS records you control, following the
app.<base-domain>layout used throughout this guide (withopenhands.example.comas the base):app.openhands.example.com(application),auth.app.openhands.example.com(login),runtime-api.openhands.example.com, and a wildcard*.runtime.openhands.example.comfor runtime sandboxes. These point at your cluster’s ingress; see the Quick Start’s DNS checks for the full hostname list. - TLS certificates covering all of the hostnames above, which you provide.
- An authentication method for user login — GitLab, Bitbucket Data Center, and more are supported; this guide uses a GitHub App. See Creating a GitHub App.
Step 1: Log in to the registry
Authenticate Helm against the Replicated registry using your license:Step 2: Create the namespace and secrets
The chart references several Kubernetes secrets that you create ahead of installation:keys
directory:
Step 3: Configure values
Create avalues.yaml with your environment-specific configuration. The
minimum for a working installation covers five areas: application ingress and
TLS, user authentication, the runtime (sandbox) endpoints, conversation
storage, and your LLM provider. PostgreSQL and Redis run embedded in the
cluster; the bundled PostgreSQL needs a database name and database creation
turned on, both shown below (to use your own database instead, see
External PostgreSQL).
The example below uses Traefik, the chart’s default ingress class; set
ingress.class and the annotations to match your controller.
Step 4: Install
replicated pod — the Replicated SDK, which
handles license verification and powers the support tooling below.
Step 5: Validate the installation
The chart ships preflight checks that validate your cluster against the application’s requirements. Run them with thepreflight CLI:
Next Steps
The install above is a minimal working baseline. Features and tuning are values overrides on the same release — edit yourvalues.yaml and apply with
helm upgrade using the chart URL from Step 4:
Resource Limits
Size memory, CPU, and replicas for production workloads.
External PostgreSQL
Use your own PostgreSQL instead of the embedded instance.
Analytics
Enable conversation analytics with Laminar.
Plugin Marketplace
Offer curated plugins to your users.
Troubleshooting
Generate a support bundle
If something isn’t working, generate a support bundle with thesupport-bundle CLI.
It discovers the diagnostic specs that ship with the chart and collects logs,
resource states, and health checks from the installation:

