February 1Feb 1 Author Quick update (NOW Edited): Just pushed a fix for skills that require Homebrew/Go. The template offers a command to enter into the OpenClaw Container CLI to install HomeBrew) If you had issues with skill installs, grab the latest template from GitHub! Edited February 2Feb 2 by jdhill777 Edit Notes: Removed automatic home-brew installation to comply with bash restrictions in Extra Params for CA Approved Applications.
February 1Feb 1 I finally got it working with Kimi! I'm not the most tech savvy person, so it took me a lot longer than I anticipated.I'll edit my previous comment to provide the changes I had made so that if other users want to go this route, they'll know how to do it.On a side note jdhill777, I asked my OpenClaw bot if there were any potential security issues and what it's able to view on my server.Take it with a grain of salt, as again, I'm not as tech savvy as you.My bot stated:If I escalated: • Escape the container and access the host filesystem (your Unraid system) • See/modify files outside /root/.openclaw/workspace • Potentially access other containers • Run commands on the host as whatever user the container runtime usesHow to lock it down so only you control the system: 1. NoNewPrivs — zero downside, blocks all privilege escalation attempts 2. Drop capabilities — removes ~30 unnecessary kernel permissions 3. Read-only root — trickier; I'd need to test if OpenClaw writes to /tmp, /var, etc.Key points to include: • Current template runs as root with no privilege restrictions • Suggest adding --security-opt no-new-privileges:true --cap-drop ALL to ExtraParams • These are zero-breaking-change security improvements • Cite Docker security best practices
February 1Feb 1 Author 3 hours ago, Rev0991 said:I finally got it working with Kimi!I'm not the most tech savvy person, so it took me a lot longer than I anticipated.I'll edit my previous comment to provide the changes I had made so that if other users want to go this route, they'll know how to do it.On a side note jdhill777, I asked my OpenClaw bot if there were any potential security issues and what it's able to view on my server.Take it with a grain of salt, as again, I'm not as tech savvy as you.My bot stated:If I escalated:• Escape the container and access the host filesystem (your Unraid system)• See/modify files outside /root/.openclaw/workspace• Potentially access other containers• Run commands on the host as whatever user the container runtime usesHow to lock it down so only you control the system:1. NoNewPrivs — zero downside, blocks all privilege escalation attempts2. Drop capabilities — removes ~30 unnecessary kernel permissions3. Read-only root — trickier; I'd need to test if OpenClaw writes to /tmp, /var, etc.Key points to include:• Current template runs as root with no privilege restrictions• Suggest adding --security-opt no-new-privileges:true --cap-drop ALL to ExtraParams• These are zero-breaking-change security improvements• Cite Docker security best practices@Rev0991 , I am glad to hear you got Kimi working. Was my earlier response to your original comment able to help you find the solution? Upon review it looks pretty similar to the edit you made on your original post, however, I wasn't able to test it myself and only produced that from reading the OpenClaw docs. I'd love to hear more about your findings if Kimi can offer a similar level of competence while offering a significant decrease in costs.In regards to the security stuff you mentioned: I appreciate you sharing and I think it is always a good question to bring up. Those are legitimate hardening practices, but here's why they're not critical in this specific context.Let me clarify a few things:Running as root inside a container isn't the same as having root on your Unraid host. Docker's namespace isolation keeps those separate. That's the whole point of container-based infrastructure, compared to installing OpenClaw in a non-isolated environment. The bot can only see files that are explicitly mounted (config, workspace, homebrew), not your whole system.The claims about "escaping the container" or "running commands on the host" would require an actual container escape exploit or misconfiguration like mounting the Docker socket...which we don't do. Container root ≠ host root.OpenClaw needs broad access inside its container to do its thing: shell commands, file management, package installs, etc. That's the whole point of having a powerful AI assistant like OpenClaw vs other offerings. That said, it's still sandboxed from your actual Unraid system on purpose. The AI can't do anything the container itself can't do, as the container is isolated from your host by Docker's namespace/cgroup boundaries.In regards to your additional commands: running as root without restrictions is intentional here. Upon initial spin-up, OpenClaw is installing multiple dependencies for the skill library in its Post Arguments Fields (which --read-only would not allow). This initiationsequence that OpenClaw goes through is quite complicated, which is why creating this template has been a challenge for me taking days for me to get right.Also, no-new-privileges doesn't really do anything when you're already root with full capabilities, as there's nowhere higher to escalate to...but remember, this is root inside of the container itself.In regards to --cap-drop ALL, this has the potential to break some skills that need specific capabilities, but if anyone would like to test it, I would be interested to hear your findings!If you want to be extra cautious, just be thoughtful about what volume mounts you add (specifically in the optional projects mapping option I have in the template, outside of your standard appdata folder structure). Don't mount / or anything sensitive and you're good... or at least about as good as you can be with running such a powerful tool. I can attest that at least you aren't one of the tens of thousands currently running OpenClaw on your everyday machine with no limits.I want to be very clear though: thanks for thinking about this stuff! It is always good to question security. The suggestions the AI gave you are definitely valid Docker hardening practices, even if not strictly necessary for OpenClaw's threat model. If there is anything in the configuration you would like to change for your custom environment, feel free to do so. I'm sure, others and me would be very interested to see what limitations it may introduce. Edited February 1Feb 1 by jdhill777
February 1Feb 1 9 hours ago, jdhill777 said:Hey Tommy_E!Great catch on the config overwrite issue! Just ran into this myself. Naturally openclaw was able to spot the error way before I did.But instead of thissh -c "mkdir -p /root/.openclaw; [ -f /root/.openclaw/openclaw.json ] || echo '{gateway:{\"mode\":\"local\",\"bind\":\"lan\",\"controlUi\":{\"allowInsecureAuth\":true},\"auth\":{\"mode\":\"token\"}}}' > /root/.openclaw/openclaw.json; exec node dist/index.js gateway --bind lan"it did recommend a slight variation: sh -c "mkdir -p /root/.openclaw; [ -s /root/.openclaw/openclaw.json ] || echo '{\"gateway\":{\"mode\":\"local\",\"bind\":\"lan\",\"controlUi\":{\"allowInsecureAuth\":true},\"auth\":{\"mode\":\"token\"}}}' > /root/.openclaw/openclaw.json; exec node dist/index.js gateway --bind lan"
February 1Feb 1 Author 15 minutes ago, JPHobby said:Just ran into this myself. Naturally openclaw was able to spot the error way before I did.But instead of thissh -c "mkdir -p /root/.openclaw; [ -f /root/.openclaw/openclaw.json ] || echo '{gateway:{\"mode\":\"local\",\"bind\":\"lan\",\"controlUi\":{\"allowInsecureAuth\":true},\"auth\":{\"mode\":\"token\"}}}' > /root/.openclaw/openclaw.json; exec node dist/index.js gateway --bind lan"it did recommend a slight variation:sh -c "mkdir -p /root/.openclaw; [ -s /root/.openclaw/openclaw.json ] || echo '{\"gateway\":{\"mode\":\"local\",\"bind\":\"lan\",\"controlUi\":{\"allowInsecureAuth\":true},\"auth\":{\"mode\":\"token\"}}}' > /root/.openclaw/openclaw.json; exec node dist/index.js gateway --bind lan"Hey @JPHobby ! Good catch on the -f vs -s improvement. Just pushed that fix to the repo. Both the XML template and docker-compose.yml now use -s to catch empty/corrupted config files.Also noticed you're running an older version of the template (pre-Homebrew support). If you grab the latest from GitHub, you'll get:- Auto-install Homebrew on first boot (~60 sec)- Skills that need go, npm, etc. will work out of the box- Persists across container restartscd /boot/config/plugins/dockerMan/templates-user && wget -O openclaw.xml https://raw.githubusercontent.com/jdhill777/openclaw-unraid/master/openclaw.xmlThen recreate your container from the updated template. Your existing config and workspace data will be preserved since those live in your appdata paths, not the template file.Thanks for the feedback!
February 1Feb 1 For me homebrew won't install as GitHub won't resolve. It could be a me issue, but when I was trying the template yesterday I got openrouter working so I know internet connectivity has been working (and I can also connect to it over my lan). Anyone seeing the same thing? Any ideas?2026-02-01T11:54:42.584Z [gateway] signal SIGTERM received2026-02-01T11:54:42.586Z [gateway] received SIGTERM; shutting down2026-02-01T11:54:42.592Z [gmail-watcher] gmail watcher stoppedInstalling Homebrew...curl: (6) Could not resolve host: raw.githubusercontent.com Edited February 1Feb 1 by atl-far-east
February 2Feb 2 Hey firstly nice, work have most things up and running, however i am looking to try set up headless web browsing using brave or chromium is there a straightforward way to get this up and running? Edited February 2Feb 2 by Draco
February 2Feb 2 Author 1 hour ago, Draco said:Hey firstly nice, work have most things up and running, however i am looking to try set up headless web browsing using brave or chromium is there a straightforward way to get this up and running?Hey Draco, the XML template already has the Brave key setting under the extra parameters at the bottom of the template. Have you been able to test putting your Brave key there?
February 2Feb 2 On 1/31/2026 at 5:23 PM, jdhill777 said:Good question! OpenClaw does have built-in Tailscale Serve/Funnel support, but it requires the tailscale CLI to be available to the OpenClaw process. In Docker, that's not the case, the container doesn't have Tailscale installed.The issue you're hitting is that nodes require a secure connection (WSS/HTTPS), which plain HTTP over the Tailscale IP doesn't provide.I haven't personally tested this, but in theory you could run Tailscale Serve on the Unraid host (outside the container) to proxy HTTPS to the container's port. Something like:tailscale serve --bg --https=8443 http://localhost:18789Then access via: https://<your-machine>.<tailnet>.ts.net:8443/That said, I'm not an expert on Tailscale Serve with secure WebSocket connections, so use at your own discretion. I'd recommend checking the Tailscale and OpenClaw docs before running commands on your host:Tailscale Serve docs: https://tailscale.com/kb/1242/tailscale-serveOpenClaw Tailscale docs: https://docs.openclaw.ai/gateway/tailscaleIf you get it working, let us know! Would be great info for others hitting the same issue.The tailscale serve command helped connect my mac as a node. I just had to add 'token' key/value in the mac openclaw.json config. Was able to get messaging and reminders working! Thanks for the suggestion and the work to get this on CA
February 2Feb 2 1 hour ago, jdhill777 said:Hey Draco, the XML template already has the Brave key setting under the extra parameters at the bottom of the template. Have you been able to test putting your Brave key there?Hey there, I have the Web Search one in and its working well, what i am talking about here is the Browser configuration which actually runs a headless chrome/brave browser that can open sites navigate through things for you and other scenarios like that. unless i am missing something. This loosk to be the documentation for it https://docs.openclaw.ai/tools/browseralso just a heads up i tried to install gemini-cli via the web control portal / brew and it failed.
February 2Feb 2 Author 1 hour ago, Draco said:Hey there, I have the Web Search one in and its working well, what i am talking about here is the Browser configuration which actually runs a headless chrome/brave browser that can open sites navigate through things for you and other scenarios like that. unless i am missing something. This loosk to be the documentation for it https://docs.openclaw.ai/tools/browseralso just a heads up i tried to install gemini-cli via the web control portal / brew and it failed.Hey @Draco , I follow along now! Interesting concept! One thing to mention in how I personally run OpenClaw...I run it in Host mode for my network settings. It allows it to bind itself to any other port for spinning up applications and deploying services it downloads. My OpenClaw has built 10+ dashboards/web applications that I now access from any machine on my network, which would not work in the current Bridge mode template. I don't have the template do that, due to trying to keep the base template more secure for CA standards and approvals. So, in theory, if it was running in Host, it would allow the container to bind to other ports for you to run your browser in. However, the Chromium browser does not come with the OpenClaw docker build they publish. You can get it running a CLI command on the OpenClaw container console (apt-get update && apt-get install -y chromium), which I just tested and it works. It would survive restarts, but not rebuilds, meaning whenever OpenClaw releases a new docker image it would no longer stay alive. The solution to this, on the surface, would be similar to how I solved it for Homebrew: creating a mount point for persistent storage. However, Chromium via apt-get is messy and scatters files across /usr/bin/, /usr/lib/, and /usr/share/. Instead, you can leverage the Playwright that's already bundled with OpenClaw to install Chromium. Run this command in the container console: node $(find /app/node_modules/.pnpm -path "*/playwright-core@*/cli.js" | head -1) install chromium This downloads Chromium to Playwright's cache directory (~/.cache/ms-playwright/ by default). To make it persistent across rebuilds, you can:Set the environment variable PLAYWRIGHT_BROWSERS_PATH to a custom path (e.g., /browser-cache)Mount that path to your appdata (e.g., /mnt/user/appdata/openclaw/browser) Then configure OpenClaw to use headless mode in your openclaw.json: { "browser": { "enabled": true, "headless": true, "noSandbox": true } } I'm considering adding this as an optional advanced mount in a future template update, however I would love to test it more, so I would love to hear back from you with your findings!Re: gemini-cli failing - This is likely a timeout issue with the skill installer. Some skills that require Go or large downloads via Homebrew timeout on first install. Try clicking Install again, it usually succeeds the second time since the dependencies (go) are cached, however, if I am not following along, please correct me!
February 2Feb 2 Author 19 hours ago, atl-far-east said:For me homebrew won't install as GitHub won't resolve. It could be a me issue, but when I was trying the template yesterday I got openrouter working so I know internet connectivity has been working (and I can also connect to it over my lan). Anyone seeing the same thing? Any ideas?2026-02-01T11:54:42.584Z [gateway] signal SIGTERM received2026-02-01T11:54:42.586Z [gateway] received SIGTERM; shutting down2026-02-01T11:54:42.592Z [gmail-watcher] gmail watcher stoppedInstalling Homebrew...curl: (6) Could not resolve host: raw.githubusercontent.comHey @atl-far-east , sorry for the delay in responding to you. I did update the template this afternoon for Brew to be an optional/manual install (specifically for CA approval), however it may help here. Can you run the command found in the new template against your console CLI and see if that will connect to GitHub? My first though is that you might be running it not in bridge/host network mode and that it is almost failing DNS connectivity...Try running nslookup raw.githubusercontent.com or ping google.com from the container console to verify DNS is working. If both fail, check your Docker network settings, you might need to set custom DNS (like 8.8.8.8) in your container's network config. Edited February 2Feb 2 by jdhill777
February 2Feb 2 Author 3 hours ago, rwjk16 said:The tailscale serve command helped connect my mac as a node. I just had to add 'token' key/value in the mac openclaw.json config. Was able to get messaging and reminders working! Thanks for the suggestion and the work to get this on CAThat is awesome to hear, and glad you got it working! It is such a cool application, and can't wait for it to be on the CA! I am sure many will want to use tailscale with their OpenClaw deployment, so thank you for documenting what you did!
February 2Feb 2 Hi, thanks for this, I managed to install the docker and the status is connected. When i have some time I just need to connect ollama (locally) to get the agent working. First attempt and the config json kept saying invalid and wouldn't save.Any suggestions for Ollama setup?
February 2Feb 2 Hey, I've been playing around with this and got mostly everything working with a local model via LiteLLM. The issue I am still facing is the Discord integration (I don't use Telegram and don't plan on ever using it). The responses from the bot are in JSON format, something like this:{"name": "sessions_send", "arguments": {"sessionKey": "main", "message": "Hey there! It's nice to see you again. I was just thinking about how unique each greeting can be — from 'Hello world!' to 'Hey there!' What made you choose that particular way of saying hello today? Are you in a playful mood or maybe working on something fun?"}}Any thouhgts on how to filter this and get only the "message" part?Thanks! Edited February 2Feb 2 by TopSOUL
February 2Feb 2 I wanted to pass down some info for anyone who might need it. The documentation for OpenClaw is very heavily written for the CLI and there is very little info on the Gateway UI.How to set up your default LLMTo do this, start by looking to see which models you have access to. Under Settings, click Debug. You will see a list of Models. Look for your provider by searching (Ctrl+F) for it's provider ID. Mine was github-copilot (you can look yours up here: https://docs.openclaw.ai/concepts/model-providers). Find a model you would like to use and make a note of it's ID. For mine, it was gpt-4.1Now you can go to Config > Agents and look for Primary Model. Input the two values you got earlier like this: <provider>/<id>Now you can click save in the top right and give the model a test in chat. If you get a reply from your LLM, then its working! Edited February 2Feb 2 by AetherCollective
February 3Feb 3 1 hour ago, RoboCanvas said:I keep fumbling on the llm part. I only have local ollama.Sharing my local ollama settings. "models": { "providers": { "ollama": { "baseUrl": "http://xxx.xxx.xxx.xxx:11434/v1", "apiKey": "ollama", "api": "openai-responses", "authHeader": false, "models": [ { "id": "qwen2.5", "name": "qwen2.5", "reasoning": false, "input": [ "text", "image" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 16384, "maxTokens": 4096 } ] } } }, "agents": { "defaults": { "model": { "primary": "ollama/qwen2.5" }, "maxConcurrent": 1, "subagents": { "maxConcurrent": 2 } } },
February 3Feb 3 On 2/1/2026 at 12:01 AM, jdhill777 said:Great catch on the config overwrite issue! I've pushed your fix to the template after testing it myself. The PostArgs now checks if the config exists before writing. So configs will persist across container restarts now.Hey Jdhill!I couldn't wait for the CA release so I did pull the template myself. I am running into this issue though, I've updated to latest but if I restart the docker container openclaw.json reverts. Am I missing something? I already tried to pull a whole new container but the moment I change something in the json and restart the container the changes are gone. Can you help me? ^-^
February 3Feb 3 Author 9 minutes ago, rp1989 said:Trying to install via official CA release but getting the error below. Any ideas please? Unable to find image 'ghcr.io/openclaw/openclaw:latest' locallydocker: Error response from daemon: Head "https://ghcr.io/v2/openclaw/openclaw/manifests/latest": denied: denied.See 'docker run --help'.That is very strange, I just ran it on my end and it worked. You may be having some issues resolving the url...You can try to replace 'latest' with 'main'.
February 4Feb 4 @jdhill777 how would I use something like gcloud adc to use a vertex ai key? https://docs.openclaw.ai/concepts/model-providers#google-vertex-antigravity-and-gemini-cli
February 4Feb 4 2026-02-04T04:04:24.699Z [canvas] host mounted at http://0.0.0.0:18789/__openclaw__/canvas/ (root /root/.openclaw/canvas)2026-02-04T04:04:24.832Z [heartbeat] started2026-02-04T04:04:24.835Z [gateway] agent model: anthropic/claude-opus-4-52026-02-04T04:04:24.836Z [gateway] listening on ws://0.0.0.0:18789 (PID 1)2026-02-04T04:04:24.837Z [gateway] log file: /tmp/openclaw/openclaw-2026-02-03.log2026-02-04T04:04:24.845Z [browser/service] Browser control service ready (profiles=2)nothing else is happening. ideas? No changes from community app.
February 4Feb 4 10 minutes ago, RoboCanvas said:2026-02-04T04:04:24.699Z [canvas] host mounted at http://0.0.0.0:18789/__openclaw__/canvas/ (root /root/.openclaw/canvas)2026-02-04T04:04:24.832Z [heartbeat] started2026-02-04T04:04:24.835Z [gateway] agent model: anthropic/claude-opus-4-52026-02-04T04:04:24.836Z [gateway] listening on ws://0.0.0.0:18789 (PID 1)2026-02-04T04:04:24.837Z [gateway] log file: /tmp/openclaw/openclaw-2026-02-03.log2026-02-04T04:04:24.845Z [browser/service] Browser control service ready (profiles=2)nothing else is happening. ideas? No changes from community app.nevermind. had to use http://xxx.xxx.xxx.xxx:18789/?token=your-gateway-token-here
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.