Kubernetes resources for deploying OpenClaw - a personal AI assistant with multi-channel support (WhatsApp, Telegram, Discord).
| Path | Description |
|---|---|
| chart/ | Helm chart for deploying OpenClaw on Kubernetes |
| Dockerfile | Builds OpenClaw + Playwright addon image |
| Makefile | Image build/push targets (reads build-config.json) |
| bin/ | Operational scripts (configure.py, openclaw_diag.py) |
| prompts/ | Historical build prompts used during chart development |
# Clone the repository
git clone https://github.com/openclaw/openclaw-kube.git
cd openclaw-kube
# Install with default values
helm install openclaw ./chart
# Access via port-forward
kubectl port-forward openclaw-0 18789:18789
# Visit http://localhost:18789The Dockerfile extends an upstream OpenClaw base image with Playwright browsers. Use bin/configure.py to set the source and target image coordinates, then build with Make.
# Configure (interactive — answers saved to build-config.json for next time)
make configure
# Build the image
make build
# Build and push
make pushYou can also pass values directly:
python3 bin/configure.py \
--source-registry ghcr.io --source-image openclaw/openclaw --source-tag latest \
--target-registry ghcr.io/myorg --target-image openclaw-playwrighthelm install openclaw ./charthelm install openclaw ./chart \
--set ingress.enabled=true \
--set ingress.domain=openclaw.example.com \
--set ingress.tls.enabled=true \
--set ingress.tls.certManager.enabled=true# Minimal (local development)
helm install openclaw ./chart -f chart/examples/values-minimal.yaml
# Production with ingress
helm install openclaw ./chart -f chart/examples/values-ingress.yaml
# With RBAC for sandbox execution
helm install openclaw ./chart -f chart/examples/values-rbac-operator.yaml
# Automatic non-interactive onboarding
helm install openclaw ./chart -f chart/examples/values-noninteractive-onboard.yamlFor production, create secrets externally rather than in values:
# Create secret
kubectl create secret generic openclaw-secrets \
--from-literal=gatewayToken=$(openssl rand -hex 32) \
--from-literal=anthropicApiKey=sk-ant-your-key \
--from-literal=claudeSessionKey=your-session-key
# Install referencing the secret
helm install openclaw ./chart \
--set secrets.create=false \
--set secrets.existingSecret=openclaw-secretsKey configuration options:
| Parameter | Description | Default |
|---|---|---|
replicaCount |
Must be 1 (single-user architecture) | 1 |
image.repository |
Container image | openclaw/openclaw |
gateway.port |
Gateway HTTP port | 18789 |
persistence.enabled |
Enable persistent storage | true |
persistence.size |
Storage size | 10Gi |
ingress.enabled |
Enable ingress | false |
ingress.domain |
Ingress domain | "" |
secrets.existingSecret |
Use external secret | "" |
rbac.create |
Create namespaced RBAC | false |
onboarding.enabled |
Auto-onboarding initContainer | false |
See chart/values.yaml for full configuration reference.
OpenClaw is a single-user, stateful application. The chart deploys:
- StatefulSet with 1 replica (scaling not supported)
- Persistent Volume for configuration, sessions, and workspace
- Service on port 18789 (gateway) and optionally 18790 (bridge)
- Ingress (optional) with TLS support
kubectl get secret openclaw -o jsonpath='{.data.gatewayToken}' | base64 -d# Discord
kubectl exec -it openclaw-0 -- node dist/index.js channels add --channel discord --token YOUR_TOKEN
# Telegram
kubectl exec -it openclaw-0 -- node dist/index.js channels add --channel telegram --token YOUR_TOKEN
# WhatsApp (interactive)
kubectl exec -it openclaw-0 -- node dist/index.js channels loginkubectl exec -it openclaw-0 -- node dist/index.js healthThis project builds upon:
- OpenClaw - The upstream OpenClaw project providing the AI assistant functionality, container images, and deployment documentation
- sirily11/clawdbot - Original Clawdbot Helm chart by @sirily11, providing Kubernetes deployment patterns, persistence, probes, and security configuration
- Kubernetes 1.19+
- Helm 3.x
- kubectl
helm lint ./charthelm template openclaw ./chart
helm template openclaw ./chart --debughelm install openclaw ./chart --dry-run --debughelm install openclaw ./chart
helm test openclaw- Fork the repository
- Create a feature branch
- Make changes and test with
helm lintandhelm template - Submit a pull request
Apache License 2.0 - See LICENSE for details.