Skip to content

openclaw-layer

Recipe card from the charly-openclaw plugin (Images — the deployable catalog).

Property Value
Dependencies nodejs, socat, supervisord
Ports 18789
Port relay 18789 (eth0 -> loopback)
Volumes data -> ~/.openclaw
Aliases openclaw -> openclaw
Service openclaw (supervisord)
Install files package.json
Home repo opencharly/layer-openclaw (candy/openclaw)
Variable Value
NODE_ENV production

The npm pin lives in package.json ([email protected]) and the candy’s own plan asserts it, together with the engine range the package declares — >=24.16.0 <25 || >=26.1.0. The floor moved at 2026.9.3 and excludes node 22 and node 25.x, so the check fails on a base whose node is outside the range instead of running an unsupported runtime. The Arch nodejs package in the CachyOS base satisfies it.

# box charly.yml
openclaw:
candy:
base: cachyos
candy:
- openclaw
Terminal window
charly alias install openclaw # install host 'openclaw' command
openclaw config # uses the alias

The gateway binds to 127.0.0.1:18789 (loopback only). A socat relay forwards from the container’s network interface to loopback, so every connection appears as loopback to the gateway and OpenClaw’s allowedOrigins requirement for the Control UI never applies. Same pattern as the chrome candy (CDP on port 9222).