openclaw helm

No introduction found. Create it?

Install

Install with:

helm repo add app-template oci://ghcr.io/bjw-s-labs/charts/
helm install openclaw app-template/app-template -f values.yaml

Examples

See examples from other people.

Top Repositories (3 out of 7)

NameRepoStarsVersionTimestamp
openclawJJGadgets/Biohazard905.0.1a day ago
openclawmchestr/home-cluster1725.1.04 days ago
openclawm00nwtchr/homelab-cluster395.1.02 months ago

Values

See the most popular values for this chart:

KeyTypes
route.app.hostnames[] (7)
- {{ .Release.Name }}.${SECRET_DOMAIN}
string
string
string
string
string, number
string
string
string
string
string
string
string
route.app.annotations."gatus.io/endpoint" (1)
conditions: - "[STATUS] == 403"
string
boolean
route.codeserver.hostnames[] (3)
- openclaw-code.cloudjur.com
string
string
string
string
number
string
string
route.imageui.hostnames[] (1)
- generate.cloudjur.com
string
string
string
string
number
route.opencode.hostnames[] (1)
- ${APP_DNS_OPENCODE:=opencode}
string
string
string
string
string
string
string
string
controllers.openclaw.containers.app.env.PATH (6)
/home/node/.local/bin:/home/node/.local/go/bin:/home/node/.local/homebrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
string
string
string
number
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
controllers.openclaw.containers.app.image.tag (6)
2026.7.1@sha256:6a31d44b2944e7adcd2b582bf6fb463111264ebca97a0201795b799135bd102c
string
string
number, string
string, number
string
string
boolean
boolean
number
number
controllers.openclaw.containers.app.probes.liveness.spec.exec.command[] (1)
- node
- -e
- require('http').get('http://127.0.0.1:18789/healthz', r => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))
string
number
number
boolean
boolean
number
number
controllers.openclaw.containers.app.probes.readiness.spec.exec.command[] (1)
- node
- -e
- require('http').get('http://127.0.0.1:18789/readyz', r => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))
string
number
number
boolean
number
number
number
boolean
boolean
string
boolean
boolean
controllers.openclaw.containers.app.args[] (1)
- dist/index.js
- gateway
- --allow-unconfigured
string
number
string
string
controllers.openclaw.containers.codeserver.args[] (3)
- --auth
- none
- --user-data-dir
- /home/node/.vscode
- --extensions-dir
- /home/node/.vscode
- --port
- "12321"
- /config
string
string
string
string
string
string
controllers.openclaw.containers.codeserver.image.tag (3)
4.133.0@sha256:e073a441c61c85821a7f16b64cf93b4e77b4092899bb1f3bed906fbd558afd62
string
string
string
string
string
string
controllers.openclaw.containers.kube-mcp.image.tag (1)
v0.0.66@sha256:6d650f4bd6ac303ad82713c997e73a2d001602f9bf17392c9b9a0e30e29c6423
string
string
string
string
boolean
string
boolean
string
string
controllers.openclaw.initContainers.init-config.image.tag (2)
2026.9.5@sha256:ea298b62be8955d3ef750e2004a610dd90c3a30e5f9886e5d654d78a0c573218
string
controllers.openclaw.initContainers.init-config.args[] (1)
- set -e export HOME=/home/node mkdir -p /home/node/.openclaw /home/node/.local/bin /home/node/.local/go if [ ! -f /home/node/.openclaw/openclaw.json ]; then echo '{"gateway":{"mode":"local"}}' > /home/node/.openclaw/openclaw.json fi node /etc/openclaw/migrate-config.js /home/node/.openclaw/openclaw.json # Backup legacy agent dirs and unresolved credential files to prevent doctor migration refusals mkdir -p /home/node/.openclaw/legacy-agents-backup for d in BK bk bk_brand bk_content bk_radar tom_legal codex; do if [ -d "/home/node/.openclaw/agents/$d" ]; then mv "/home/node/.openclaw/agents/$d" /home/node/.openclaw/legacy-agents-backup/ 2>/dev/null || true fi done if [ -f /home/node/.openclaw/credentials/feishu-main-allowFrom.json ]; then mv /home/node/.openclaw/credentials/feishu-main-allowFrom.json /home/node/.openclaw/credentials/feishu-main-allowFrom.json.bak 2>/dev/null || true fi # Run official OpenClaw doctor to migrate database schema and legacy workspace setup files to SQLite openclaw doctor --fix --yes --non-interactive || true node /etc/openclaw/migrate-config.js /home/node/.openclaw/openclaw.json export PATH=/home/node/.local/bin:/home/node/.local/go/bin:$PATH # Install gh CLI if not present on PVC if [ ! -f /home/node/.local/bin/gh ]; then echo "Installing gh CLI..." cd /tmp curl -fsSL https://github.com/cli/cli/releases/download/v2.61.0/gh_2.61.0_linux_amd64.tar.gz -o gh.tar.gz tar xzf gh.tar.gz cp gh_2.61.0_linux_amd64/bin/gh /home/node/.local/bin/ rm -rf gh.tar.gz gh_2.61.0_linux_amd64 fi # Install Go if not present on PVC # Skipping go installation due to download issues # Install Homebrew if not present on PVC if [ ! -f /home/node/.local/homebrew/bin/brew ]; then echo "Installing Homebrew..." export HOMEBREW_PREFIX=/home/node/.local/homebrew export HOMEBREW_CELLAR=/home/node/.local/homebrew/Cellar export HOMEBREW_REPOSITORY=/home/node/.local/homebrew mkdir -p $HOMEBREW_PREFIX cd /tmp git clone --depth 1 https://github.com/Homebrew/brew $HOMEBREW_PREFIX fi # Check if pip is available set +e if command -v pip3 >/dev/null 2>&1 || command -v pip >/dev/null 2>&1 || python3 -m pip --version >/dev/null 2>&1; then echo "pip is available" else echo "Installing pip..." cd /tmp curl -fsSL https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py --user --no-warn-script-location --break-system-packages || \ python3 get-pip.py --user --no-warn-script-location || \ echo "pip install skipped (use python3 -m pip instead)" rm -f get-pip.py fi set -e echo "Init container completed successfully"
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
boolean
string
number
boolean
number
controllers.openclaw.initContainers.init.command[] (1)
- sh
- -c
- set -euo pipefail chmod u+w /home/node/.openclaw || true rm -f /home/node/.openclaw/openclaw.json cp /tmp/openclaw.json /home/node/.openclaw/openclaw.json chown 1000:100 /home/node/.openclaw/openclaw.json chmod 400 /home/node/.openclaw/openclaw.json
string
string
string
boolean
string
number
number
controllers.openclaw.initContainers.install-gh.command[] (1)
- sh
- -c
- set -eu # renovate: datasource=github-releases depName=cli/cli GH_VERSION=2.101.0 BIN=/home/node/.local/bin mkdir -p "$BIN" if [ "$(cat "$BIN/.ghver" 2>/dev/null)" != "$GH_VERSION" ]; then wget -qO /tmp/gh.tar.gz "https://github.com/cli/cli/releases/download/v$GH_VERSION/gh_${GH_VERSION}_linux_amd64.tar.gz" tar -xzf /tmp/gh.tar.gz -C /tmp cp "/tmp/gh_${GH_VERSION}_linux_amd64/bin/gh" "$BIN/gh" chmod +x "$BIN/gh" printf '%s' "$GH_VERSION" > "$BIN/.ghver" rm -rf /tmp/gh.tar.gz "/tmp/gh_${GH_VERSION}_linux_amd64" fi
string
string
string
controllers.openclaw.initContainers.install-jq.command[] (1)
- sh
- -c
- set -eu # renovate: datasource=github-releases depName=jqlang/jq JQ_VERSION=1.8.1 BIN=/home/node/.local/bin mkdir -p "$BIN" if [ "$(cat "$BIN/.jqver" 2>/dev/null)" != "$JQ_VERSION" ]; then wget -qO "$BIN/jq" "https://github.com/jqlang/jq/releases/download/jq-$JQ_VERSION/jq-linux-amd64" chmod +x "$BIN/jq" printf '%s' "$JQ_VERSION" > "$BIN/.jqver" fi
string
string
string
controllers.openclaw.initContainers.install-signal-cli.command[] (1)
- sh
- -c
- set -eu # renovate: datasource=github-releases depName=AsamK/signal-cli SIGNAL_CLI_VERSION=0.14.7 BIN=/home/node/.openclaw/bin mkdir -p "$BIN" if [ ! -x "$BIN/signal-cli" ]; then wget -qO /tmp/signal-cli.tar.gz "https://github.com/AsamK/signal-cli/releases/download/v$SIGNAL_CLI_VERSION/signal-cli-$SIGNAL_CLI_VERSION-Linux-native.tar.gz" tar -xzf /tmp/signal-cli.tar.gz -C "$BIN" chmod +x "$BIN/signal-cli" fi
string
string
string
controllers.openclaw.initContainers.migrate.command[] (1)
- sh
- -c
- set -eu node dist/index.js doctor --fix --allow-exec || true node dist/index.js doctor --session-sqlite import --session-sqlite-all-agents || true if [ -e /home/node/.openclaw/sessions ]; then mkdir -p /home/node/.openclaw/legacy-session-store-archive mv /home/node/.openclaw/sessions "/home/node/.openclaw/legacy-session-store-archive/sessions-$(date +%s)" fi mkdir -p /home/node/.openclaw/legacy-auth-backup for f in /home/node/.openclaw/agents/*/agent/auth.json /home/node/.openclaw/agents/*/agent/auth-profiles.json; do [ -e "$f" ] || continue agent=$(basename "$(dirname "$(dirname "$f")")") mv "$f" "/home/node/.openclaw/legacy-auth-backup/${agent}.$(basename "$f")" done node -e ' const fs = require("fs"); const path = "/home/node/.openclaw/openclaw.json"; let cfg = {}; if (fs.existsSync(path)) { try { cfg = JSON.parse(fs.readFileSync(path, "utf8")); } catch (e) { console.error("skip trustedProxies merge, could not parse existing config:", e.message); process.exit(0); } } cfg.gateway = cfg.gateway || {}; const cidr = "10.244.0.0/16"; const existing = Array.isArray(cfg.gateway.trustedProxies) ? cfg.gateway.trustedProxies : []; if (!existing.includes(cidr)) { cfg.gateway.trustedProxies = existing.concat([cidr]); fs.writeFileSync(path, JSON.stringify(cfg, null, 2)); } ' chown -R 1000:1000 /home/node/.openclaw if [ -d /home/node/.openclaw/extensions ]; then chown -R root:1000 /home/node/.openclaw/extensions chmod -R g+rX /home/node/.openclaw/extensions fi
string
string
string
controllers.openclaw.initContainers.migrate.env.PATH (1)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/node/.openclaw/bin/bin
string
string
string
string
string
string
string
boolean
boolean
number
boolean
number
controllers.openclaw.initContainers.setup.command[] (1)
- sh
- -c
- done_file="$(AAA_HOME)/.openclaw/.setup-complete" while [ ! -f "${done_file}" ]; do echo 'OpenClaw setup is incomplete; exec to this container and run `openclaw setup && touch $(AAA_HOME)/.openclaw/.setup-complete`.'; sleep 5; done;
string
string
string
string
string
string
string
number
string
string
controllers.openclaw.initContainers.setup.env.PATH (1)
$(AAA_HOME)/.local/bin:$(AAA_HOME)/.local/share/mise/shims:$(AAA_HOME)/.local/go/bin:/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
string
string
string
string
string
controllers.openclaw.initContainers.setup.image.tag (1)
2026.9.4@sha256:cc596b846506a5f4cfcee111394a2725f375f01cca2ebb492a161fd1b747f101
string
boolean
string
boolean
boolean
string
string
string
string
string
number
number
boolean
number
string
number
string
string
string
string
string
string
string
string
string
string
string
string
string
number
string
string
controllers.app.containers.app.env.PATH (1)
$(AAA_HOME)/.local/bin:$(AAA_HOME)/.local/share/mise/shims:$(AAA_HOME)/.local/go/bin:/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
string
string
string
string
string
string
controllers.app.containers.app.image.tag (1)
2026.9.5@sha256:ea298b62be8955d3ef750e2004a610dd90c3a30e5f9886e5d654d78a0c573218
string
boolean
boolean
boolean
number
number
boolean
string
boolean
controllers.app.containers.opencode.args[] (1)
- web
- --hostname
- "0.0.0.0"
- --port
- $(HTTP_PORT)
- --cors
- ${APP_DNS_OPENCODE:=opencode}
string
string
string
string
string
string
string
string
string
number
string
string
number
string
string
controllers.app.containers.opencode.env.PATH (1)
$(AAA_HOME)/.local/bin:$(AAA_HOME)/.local/share/mise/shims:$(AAA_HOME)/.local/go/bin:/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
string
string
string
string
string
string
controllers.app.containers.opencode.image.tag (1)
1.18.31@sha256:319e524999a8b7ff3c77af0555d9a2bc149c69ef687ca97c33d97e1a007d1b8c
string
boolean
boolean
boolean
number
number
boolean
string
boolean
string
controllers.app.initContainers.setup.command[] (1)
- sh
- -c
- while [ ! -z "$(pgrep node)" ] || [ ! -s $(AAA_HOME)/.openclaw/openclaw.json ]; do echo 'OpenClaw has not been setup, please exec to this container and run `openclaw setup` for the app to startup!'; sleep 60; done;
string
string
string
string
string
string
string
string
string
string
string
number
string
string
controllers.app.initContainers.setup.env.PATH (1)
$(AAA_HOME)/.local/bin:$(AAA_HOME)/.local/share/mise/shims:$(AAA_HOME)/.local/go/bin:/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
string
string
string
string
string
controllers.app.initContainers.setup.image.tag (1)
2026.9.5@sha256:ea298b62be8955d3ef750e2004a610dd90c3a30e5f9886e5d654d78a0c573218
string
boolean
string
boolean
string
string
string
string
string
string
string
string
string
string
string
string
string
string
number
string
string
number
string
number
number
boolean
string
boolean
string
string
string
string
defaultPodOptions.hostAliases[].hostnames[] (1)
- ${APP_DNS_NTFY:=ntfy}
- ${APP_DNS_CONTINUWUITY:=continuwuity}
- ${APP_DNS_CONTINUWUITY_SERVER:=continuwuity}
string
defaultPodOptions.hostAliases[].ip (1)
${APP_IP_NTFY_MX:=127.0.0.1}
${APP_IP_CONTINUWUITY:=127.0.0.1}
string
string
boolean
number
string
string
number
number
number
number
string
string
string
string
string
string
string
number
string
number
string
string
string
boolean
persistence.data.path (1)
/tank/Apps/openclaw
string
string
string
string
string
string
number
string
string
string
string
string
string
number
string
string
persistence.configmap.name (2)
{{ .Release.Name }}-config
string
string
string
persistence.misc.globalMounts[].path (2)
/home/linuxbrew
/nix
/home/openclaw/go
/home/openclaw/.local/go
/home/openclaw/.local/share/mise
/home/openclaw/.gradle
/home/openclaw/.cache
string
persistence.misc.globalMounts[].subPath (2)
brew
nix
go
go-local
mise
gradle
cache
string
string
boolean
string
string
string
string
string
string
string
string
string
persistence.downloads.path (1)
/tank/Storage/Downloads
string
string
string
string
string
string
string
persistence.images.globalMounts[].path (1)
/home/node/.openclaw/workspace/images
string
persistence.images.path (1)
/tank/Apps/comfyui/output
string
string
string
string
boolean
string
boolean
string
string
string
number
persistence.skills.globalMounts[].path (1)
/skills/prometheus/SKILL.md
/skills/victorialogs/SKILL.md
/skills/autobrr/SKILL.md
/skills/bazarr/SKILL.md
/skills/cross-seed/SKILL.md
/skills/jellyfin/SKILL.md
/skills/jellyseerr/SKILL.md
/skills/plex/SKILL.md
/skills/prowlarr/SKILL.md
/skills/qbittorrent/SKILL.md
/skills/sonarr/SKILL.md
/skills/radarr/SKILL.md
/skills/sabnzbd/SKILL.md
/skills/tautulli/SKILL.md
/skills/kubernetes-events/SKILL.md
/skills/flux/SKILL.md
string
persistence.skills.globalMounts[].subPath (1)
prometheus.md
victorialogs.md
autobrr.md
bazarr.md
cross-seed.md
jellyfin.md
jellyseerr.md
plex.md
prowlarr.md
qbittorrent.md
sonarr.md
radarr.md
sabnzbd.md
tautulli.md
kubernetes-events.md
flux.md
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string
rbac.roles.openclaw-read-all.rules[].apiGroups[] (1)
-
- apps
- batch
- networking.k8s.io
- storage.k8s.io
- autoscaling
- policy
- coordination.k8s.io
- rbac.authorization.k8s.io
- apiextensions.k8s.io
- apiregistration.k8s.io
- metrics.k8s.io
- helm.toolkit.fluxcd.io
- kustomize.toolkit.fluxcd.io
- source.toolkit.fluxcd.io
- external-secrets.io
- monitoring.coreos.com
- snapshot.storage.k8s.io
string
rbac.roles.openclaw-read-all.rules[].resources[] (1)
- pods
- pods/log
- nodes
- services
- namespaces
- configmaps
- persistentvolumes
- persistentvolumeclaims
- endpoints
- resourcequotas
- limitranges
- serviceaccounts
- events
- deployments
- daemonsets
- statefulsets
- replicasets
- controllerrevisions
- jobs
- cronjobs
- ingresses
- ingressclasses
- networkpolicies
- storageclasses
- csinodes
- csidrivers
- volumeattachments
- horizontalpodautoscalers
- poddisruptionbudgets
- leases
- roles
- rolebindings
- clusterroles
- clusterrolebindings
- customresourcedefinitions
- apiservices
- nodes
- pods
- helmreleases
- kustomizations
- gitrepositories
- helmrepositories
- ocirepositories
- buckets
- helmcharts
- externalsecrets
- secretstores
- clustersecretstores
- prometheuses
- alertmanagers
- servicemonitors
- podmonitors
- prometheusrules
- thanosrulers
- probes
- volumesnapshots
- volumesnapshotcontents
- volumesnapshotclasses
string
rbac.roles.openclaw-read-all.rules[].verbs[] (1)
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
- get
- list
- watch
string
string
string
string
string
string