Repository navigation
OpenClaw: new service - #385
Open
jackspiering wants to merge 2 commits into
Open
jackspiering wants to merge 2 commits into
jackspiering wants to merge 2 commits into
Conversation
Adds the OpenClaw Gateway behind a Tailscale sidecar. The official image has no tailscale CLI, so OpenClaw's own Serve mode cannot run in the container. Closes #234.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds OpenClaw, a self-hosted personal AI assistant, behind a Tailscale sidecar.
Is the sidecar necessary? Yes. OpenClaw has its own Tailscale Serve mode, but it runs the
tailscalecommand on the host and needs a logged-in daemon next to the Gateway. The official image (ghcr.io/openclaw/openclaw:latest) contains neithertailscalenortailscaled(which tailscale tailscaledfinds nothing), and upstream's compose file dropsNET_ADMIN. Sogateway.tailscale.modestaysoff, the sidecar provides Serve, andgateway.auth.allowTailscaleidentity login is unavailable, so the stack signs in with a token.Is the project maintained? Yes. The repository is not archived, was pushed to today, and publishes releases almost daily.
ghcr.io/openclaw/openclawis the registry that the upstream Docker docs name, andlatestis the tag they recommend.Notes on the stack:
gateway.trustedProxiesto127.0.0.1andgateway.modetolocalon each start. Without the trusted proxy, Serve gets403 proxy_attribution_required.GatewayLockError).Related Issues
Verification
docker compose config --quietfromservices/openclaw, with a dummy value forOPENCLAW_GATEWAY_TOKEN--resolve, because test nodes are not reachable from this host)rumdl check --config .markdownlint.yml .on the whole repository (0.2.78), andgit diff --check origin/mainWhat I ran on a copy outside the repository:
docker exec app-<name> node dist/docker-healthcheck.jsexits 0.GET /and/healthzthrough Serve return 200. A wrong token is rejected (gateway token mismatch), and the right token reachesdevice pairing required.devices approvepairs the device, and the paired device is still there afterdocker compose restart.https://<name>.<tailnet>.ts.netorigin connected with the token, created a pairing request asopenclaw-control-ui, and I approved it. The Serve origin needs noallowedOriginssetting.portsblock (left commented, as in the template).Impact on existing users
Checklist
Additional Context
cap_drop,no-new-privileges), and no separate CLI container (usedocker exec app-openclaw node dist/index.js ...).