Hostnames
OpenHands serves these hostnames, usingopenhands.example.com as the base domain (matching the
Helm install):
All of these must resolve to your ingress load balancer. The sandbox entry must be a wildcard
because each session gets its own subdomain.
external-dns
external-dns watches your Ingresses and Services and creates the matching DNS records automatically.- Install it from its Helm chart.
- Set
providerto your DNS provider and grant it access to your zone (the access mechanism is provider-specific). - Recommended settings:
upsert-only and a TXT registry, external-dns only ever touches records it created.
cert-manager
cert-manager issues and renews certificates from Let’s Encrypt. Use the DNS-01 challenge, the only one that can issue the wildcard certificate the sandbox hostnames need.1
Install cert-manager
Install it from its Helm chart, and grant it
access to your DNS provider so it can solve DNS-01 challenges.
2
Create a ClusterIssuer
The
solvers block is specific to your DNS provider. The Route 53 solver is shown here.3
Request a wildcard certificate
A single wildcard covers every sandbox host. With Traefik, serve it as the default Issue certificates for the
TLSStore so
no per-ingress TLS config is needed.app, auth, and runtime-api hosts the same way.Manual Setup
If you don’t run external-dns and cert-manager, provision these by hand and point the ingress controller at them. DNS: create a record for each hostname in the table above, all pointing to your ingress load balancer (typically a CNAME to the load balancer’s hostname, or a cloud DNS alias). The sandbox record must be the wildcard*.runtime.openhands.example.com.
TLS: obtain certificates covering those hostnames and load them into the ingress controller as
Kubernetes TLS secrets. A single wildcard isn’t enough, because the hostnames sit at different
depths. You need:
*.runtime.openhands.example.comfor the sandboxes, and- certificates for
app.openhands.example.com,auth.app.openhands.example.com, andruntime-api.openhands.example.com(for example a*.openhands.example.comwildcard, which coversappandruntime-api, plus a certificate forauth.app.openhands.example.com).
Next Steps
Installing Sysbox
Install the sandbox runtime on your sandbox nodes.
Install with Helm
Deploy OpenHands once the cluster is ready.

