Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] OpenClaw — AI Personal Assistant

Featured Replies

OpenClaw — AI Personal Assistant

OpenClaw is a powerful, self-hosted AI personal assistant that connects to your favorite messaging platforms. Run your own Claude, GPT, or other LLM-powered assistant directly on your Unraid server.

screenshot.png

Features

  • Multi-Channel Messaging — WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Google Chat, Microsoft Teams, and more

  • File Management — Read, write, and organize files on your server

  • Shell Commands — Execute scripts, manage Docker, automate tasks

  • Browser Control — Research, fetch data, interact with web pages

  • Cron Jobs — Schedule tasks and automated workflows

  • Skills System — Extend with bundled or custom plugins (includes Homebrew support for go/npm tools)

  • Voice Support — Talk mode with ElevenLabs TTS

  • Mobile Apps — iOS and Android companion nodes

Requirements


Installation

From Community Apps (Coming Soon)

  1. Search for OpenClaw in Community Applications

  2. Fill in Gateway Token (generate with: openssl rand -hex 24)

  3. Add your LLM API key (Anthropic recommended)

  4. Click Apply

  5. Access the Control UI at: http://YOUR-IP:18789/?token=YOUR_TOKEN

Before CA Approval

SSH into your Unraid server and run:

curl -o /boot/config/plugins/dockerMan/templates-user/openclaw.xml https://raw.githubusercontent.com/jdhill777/openclaw-unraid/master/openclaw.xml

Then refresh your browser, go to Docker → Add Container → Select OpenClaw from the Template dropdown.

IMPORTANT: You must append ?token=YOUR_TOKEN to the Control UI URL.


Using Non-Anthropic Providers (Gemini, OpenAI, Groq, OpenRouter, etc.)

OpenClaw defaults to Anthropic's Claude model. If you're using a different provider, you must change the default model:

  1. Open the Control UI (http://YOUR-IP:18789/?token=YOUR_TOKEN)

  2. Go to Config tab → Agents section

  3. Click Raw JSON at the bottom

  4. Add or modify the agents section:

{"agents": {
    "defaults": {
      "model": {
        "primary": "YOUR_PROVIDER/MODEL_NAME"
      }
    }}}

Common model values:

Provider

Model

Anthropic

anthropic/claude-sonnet-4-5 (default)

Google Gemini

google/gemini-2.0-flash

OpenAI

openai/gpt-4o

Groq

groq/llama-3.1-70b-versatile

OpenRouter

openrouter/anthropic/claude-3-sonnet

  1. Save and restart the container


Skills & Homebrew Support

OpenClaw includes a Skills system that extends functionality with plugins. Some skills require tools like gonpm, or other brew-installable packages.

How it works:

  • Homebrew is optional... only install if you need skills that require brew/go/npm tools

  • To install, open the container console and run:NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  • You can ignore the "Next steps" output as the template has already configured the PATH for you on first run

  • Homebrew and installed packages persist across restarts

  • I recommend reviewing the install script at brew.sh before running

Known limitation: Skills that require Go (like blogwatcherblucli) may timeout on first install while Go is being downloaded. Just click Install again and it will succeed since Go is now cached.


Configuration

After installation, configure messaging channels via the Control UI Config page, or edit directly:

/mnt/user/appdata/openclaw/config/openclaw.json

📚 Full channel setup guides: OpenClaw Docs - Channels


Troubleshooting

"control ui requires HTTPS or localhost"

Make sure you're adding ?token=YOUR_TOKEN to the URL:

http://YOUR-IP:18789/?token=YOUR_TOKEN
"No API key found for anthropic"

You're using a non-Anthropic provider but haven't changed the default model. See the Using Non-Anthropic Providers section above.

Container won't start

Check logs:

docker logs OpenClaw 2>&1 | tail -50
Skills install timing out

Some skills (especially those requiring Go) may timeout on first install. Click Install again — it will succeed since dependencies are now cached.


Resources


Support the Template Maintainer

If this template saved you time, consider buying me a coffee: https://buymeacoffee.com/jdhill777


Questions? Post below or join the OpenClaw Discord!

Edited by jdhill777
Homebrew no longer automatically downloaded, to comply with CA standards

  • Replies 201
  • Views 91.9k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Sharing my local ollama settings. "models": { "providers": { "ollama": { "baseUrl": "http://xxx.xxx.xxx.xxx:11434/v1", "apiKey": "ollama", "api": "openai-responses

  • PikkonMG
    PikkonMG

    If your on chrome or like me edge then edge://flags/#unsafely-treat-insecure-origin-as-secure Enable Insecure origins treated as secure and add your local ip on unraid server running openclaw I.E http

  • Can't seem to find the template on community apps. Was this published yet?

Posted Images

Can't seem to find the template on community apps. Was this published yet?

  • Author
1 hour ago, lysin said:

Can't seem to find the template on community apps. Was this published yet?

No, it hasn't been approved yet. I submitted it to the selfhosters GitHub and through the forms for a personally managed template (my preference), but I'm still waiting on approval. Everything's submitted on my end.

If you'd like to see it in CA sooner, vocalizing support in the forum and Discord can help speed things along. In the meantime, you can spin it up directly from the GitHub repo if you want, happy to help you get it running.

Hi @jdhill777, thanks for pulling this together. Looking forward to the approval coming through.

  • Author
10 hours ago, bambalam said:

Hi @jdhill777, thanks for pulling this together. Looking forward to the approval coming through.

Thanks! Hopefully will be live in the CA soon! 🤞

10 hours ago, jdhill777 said:

No, it hasn't been approved yet. I submitted it to the selfhosters GitHub and through the forms for a personally managed template (my preference), but I'm still waiting on approval. Everything's submitted on my end.

If you'd like to see it in CA sooner, vocalizing support in the forum and Discord can help speed things along. In the meantime, you can spin it up directly from the GitHub repo if you want, happy to help you get it running.

Very cool! I'd like to play around with OpenClaw but I have no clue how to install something that's not in the normal apps part of Unraid. Do you have any idea if there is a small guide on how to get that running? My google-fu is failing me.

  • Author
10 minutes ago, Rubensz said:

Very cool! I'd like to play around with OpenClaw but I have no clue how to install something that's not in the normal apps part of Unraid. Do you have any idea if there is a small guide on how to get that running? My google-fu is failing me.

Thank you for the interest Rubensz!

Check out the install guide here: OpenClaw-Unraid GitHub

Before CA approval, the easiest way is Option 1 located towards the bottom of the ReadMe, add my template repo and you'll get the same install experience as Community Apps. Let me know if you have any questions!

Edited by jdhill777

Looks like the whole Template repositories thing has been removed since Unraid 6.10.0 so I'll wait for the CA approval. Still, great work!

  • Author
6 minutes ago, Rubensz said:

Looks like the whole Template repositories thing has been removed since Unraid 6.10.0 so I'll wait for the CA approval. Still, great work!

Good catch! You're right that Template Repositories were removed in 6.10. There's still a way to get it running though, as this is the process I did for testing on my 2nd server:

1. Download the template: https://raw.githubusercontent.com/jdhill777/openclaw-unraid/master/openclaw.xml

2. Copy it to /boot/config/plugins/dockerMan/templates-user/openclaw.xml

3. Docker tab → Add Container → select "OpenClaw" from the “Template” dropdown

I just updated the GitHub README with instructions for 6.10+ users. This is the backend storage mechanism that the templates get saved to in Unraid. But totally understand if you'd rather wait for CA approval. 😃

Edited by jdhill777

hi, thanks so much for pulling this! testing it out, but after setting up the telegram bot api key I don't know how to pair the device, and in the console the command "openclaw" doesn't work (would be amazing if it did, there are lots of cmd line ops with this bot). Also, regarding models available, I think a local ollama endpoint option would be amazing, also a "merge" (to have one as a primary and another one as a fallback). Thanks again for this!

i followed your instructions and got openclaw setup and I can access the UI but I am unable to actually chat with it. I configured my API key for openrouter but that didnt seem to do it? So i went ahead and configured the key for Oauth on my Claude Max plan but still nothing. What am i doing wrong here?

  • Author
1 hour ago, antwick said:

i followed your instructions and got openclaw setup and I can access the UI but I am unable to actually chat with it. I configured my API key for openrouter but that didnt seem to do it? So i went ahead and configured the key for Oauth on my Claude Max plan but still nothing. What am i doing wrong here?

Can you check the container logs?

The conatiner started and I can access the UI! Unfortunately setting Gemini API token seems to lead to errors, see log below.

Also the openclaw cli doe not work out of the box, which would be great if it did.

Thanks a lot for wseetign this up byt the way, should be amazing once some small things get polished out.

2026-01-31T16:41:24.879Z [diagnostic] lane task error: lane=main durationMs=5 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T16:41:24.881Z [diagnostic] lane task error: lane=session:agent:main:main durationMs=10 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T16:41:24.883Z Embedded agent failed before reply: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.
2026-01-31T17:54:25.945Z [diagnostic] lane task error: lane=main durationMs=5 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T17:54:25.947Z [diagnostic] lane task error: lane=session:agent:main:main durationMs=13 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T17:54:25.949Z Embedded agent failed before reply: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.
2026-01-31T16:11:24.571Z [canvas] host mounted at http://0.0.0.0:18789/__openclaw__/canvas/ (root /root/.openclaw/canvas)
2026-01-31T16:11:24.637Z [heartbeat] started
2026-01-31T16:11:24.641Z [gateway] agent model: anthropic/claude-opus-4-5
2026-01-31T16:11:24.642Z [gateway] listening on ws://0.0.0.0:18789 (PID 9)
2026-01-31T16:11:24.645Z [gateway] log file: /tmp/openclaw/openclaw-2026-01-31.log
2026-01-31T16:11:24.651Z [browser/service] Browser control service ready (profiles=2)
2026-01-31T16:11:31.535Z [ws] webchat connected conn=8cc60f27-be78-4134-8bcd-8d187d81f105 remote=192.168.32.164 client=openclaw-control-ui webchat vdev
2026-01-31T16:13:41.560Z [ws] ⇄ res ✓ config.schema 71ms conn=8cc60f27…f105 id=e6c8ed75…1f57
2026-01-31T16:30:22.272Z [ws] ⇄ res ✓ logs.tail 112ms conn=8cc60f27…f105 id=f6ebef70…2631
2026-01-31T16:31:22.403Z [ws] ⇄ res ✓ logs.tail 243ms conn=8cc60f27…f105 id=65f620a1…04ba
2026-01-31T16:38:22.302Z [ws] ⇄ res ✓ logs.tail 145ms conn=8cc60f27…f105 id=b3c29a02…7ea8
2026-01-31T16:43:22.451Z [ws] ⇄ res ✓ logs.tail 292ms conn=8cc60f27…f105 id=22e3b2fe…9a4c
2026-01-31T17:29:22.238Z [ws] ⇄ res ✓ logs.tail 68ms conn=8cc60f27…f105 id=cccbfa77…ffbc
2026-01-31T17:32:22.244Z [ws] ⇄ res ✓ logs.tail 72ms conn=8cc60f27…f105 id=c9308539…2e7c
2026-01-31T17:33:22.564Z [ws] ⇄ res ✓ logs.tail 367ms conn=8cc60f27…f105 id=d56e867a…4786
2026-01-31T17:34:22.232Z [ws] ⇄ res ✓ logs.tail 61ms conn=8cc60f27…f105 id=75f5a70c…692c
2026-01-31T17:37:22.322Z [ws] ⇄ res ✓ logs.tail 154ms conn=8cc60f27…f105 id=73f4d42a…1b11
2026-01-31T17:39:22.400Z [ws] ⇄ res ✓ logs.tail 226ms conn=8cc60f27…f105 id=df53463b…53fc
2026-01-31T17:41:22.265Z [ws] ⇄ res ✓ logs.tail 96ms conn=8cc60f27…f105 id=87be7703…8860
2026-01-31T17:45:22.478Z [ws] ⇄ res ✓ logs.tail 310ms conn=8cc60f27…f105 id=5c5674f6…6488

Thanks for the template!

I would recommend the following command for the post argument:


sh -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"

otherwise the openclaw.json gets replaced after every container restart.

Edited by tommy_e

Is it possible to add Kimi?

EDIT:

After a few hours of testing, I was able to successfully get my bot up and running with Kimi 2.5.

Step 1:

https://platform.moonshot.ai/console

You have to get the API key from here, not Kimi Code.

Recharge the account and get your API key

Step 2:

Replace your OpenClaw JSON file with the code below

Note: I had Telegram setup on my bot, so it has the parameters already included below if you want to add your own Telegram bot. Change 'UPDATE' listed under botToken for your bot token, then replace 'UPDATE' under allowFrom with your Telegram user ID.

Step 3:

Edit your OpenClaw container and add variable

Name: MOONSHOT API KEY

Key: MOONSHOT_API_KEY

Value: Your API Key

Done.

	{
  "meta": {
    "lastTouchedVersion": "2026.1.30",
    "lastTouchedAt": "2026-02-01T01:13:25.232Z"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "moonshot": {
        "baseUrl": "https://api.moonshot.ai/v1",
        "apiKey": "${MOONSHOT_API_KEY}",
        "api": "openai-completions",
        "models": [
          {
            "id": "kimi-k2.5",
            "name": "Kimi K2.5",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 256000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "moonshot/kimi-k2.5"
      },
      "models": {
        "moonshot/kimi-k2.5": {
          "alias": "Kimi K2.5"
        }
      },
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  },
  "messages": {
    "ackReactionScope": "group-mentions"
  },
  "commands": {
    "native": "auto",
    "nativeSkills": "auto"
  },
  "channels": {
    "telegram": {
      "dmPolicy": "pairing",
      "botToken": "UPDATE",
      "allowFrom": [
        "UPDATE",
        "UPDATE"
      ],
      "groupPolicy": "allowlist",
      "streamMode": "partial",
      "actions": {
        "reactions": true,
        "sendMessage": true
      }
    }
  },
  "gateway": {
    "mode": "local",
    "bind": "lan",
    "controlUi": {
      "enabled": true,
      "allowInsecureAuth": true
    },
    "auth": {
      "mode": "token"
    }
  },
  "plugins": {
    "entries": {
      "telegram": {
        "enabled": true
      }
    }
  }
}

Edited by Rev0991

51 minutes ago, danielpiccoli said:

installed it , simply navigate to /boot/config/plugins/dockerMan/templates-user/ from terminal and do a simple wget https://raw.githubusercontent.com/jdhill777/openclaw-unraid/master/openclaw.xml

then follow the +add container section of the guide ... installed without issues, will connect to the messaging stuff now and get it rolling...

excellent work

This is the best way forward before approval is granted. Thanks for the write up and thanks again @jdhill777 for making this.

Is this able to be served through a tailnet? Was able to install it following the instructions, and connecting to web ui through tailscale ip. But trying to connect to a node isnt working due to requirement of a secure connection.

  • Author
4 hours ago, MrChunky said:

The conatiner started and I can access the UI! Unfortunately setting Gemini API token seems to lead to errors, see log below.

Also the openclaw cli doe not work out of the box, which would be great if it did.

Thanks a lot for wseetign this up byt the way, should be amazing once some small things get polished out.

2026-01-31T16:41:24.879Z [diagnostic] lane task error: lane=main durationMs=5 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T16:41:24.881Z [diagnostic] lane task error: lane=session:agent:main:main durationMs=10 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T16:41:24.883Z Embedded agent failed before reply: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.
2026-01-31T17:54:25.945Z [diagnostic] lane task error: lane=main durationMs=5 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T17:54:25.947Z [diagnostic] lane task error: lane=session:agent:main:main durationMs=13 error="Error: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
2026-01-31T17:54:25.949Z Embedded agent failed before reply: No API key found for provider "anthropic". Auth store: /root/.openclaw/agents/main/agent/auth-profiles.json (agentDir: /root/.openclaw/agents/main/agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.
2026-01-31T16:11:24.571Z [canvas] host mounted at http://0.0.0.0:18789/__openclaw__/canvas/ (root /root/.openclaw/canvas)
2026-01-31T16:11:24.637Z [heartbeat] started
2026-01-31T16:11:24.641Z [gateway] agent model: anthropic/claude-opus-4-5
2026-01-31T16:11:24.642Z [gateway] listening on ws://0.0.0.0:18789 (PID 9)
2026-01-31T16:11:24.645Z [gateway] log file: /tmp/openclaw/openclaw-2026-01-31.log
2026-01-31T16:11:24.651Z [browser/service] Browser control service ready (profiles=2)
2026-01-31T16:11:31.535Z [ws] webchat connected conn=8cc60f27-be78-4134-8bcd-8d187d81f105 remote=192.168.32.164 client=openclaw-control-ui webchat vdev
2026-01-31T16:13:41.560Z [ws] ⇄ res ✓ config.schema 71ms conn=8cc60f27…f105 id=e6c8ed75…1f57
2026-01-31T16:30:22.272Z [ws] ⇄ res ✓ logs.tail 112ms conn=8cc60f27…f105 id=f6ebef70…2631
2026-01-31T16:31:22.403Z [ws] ⇄ res ✓ logs.tail 243ms conn=8cc60f27…f105 id=65f620a1…04ba
2026-01-31T16:38:22.302Z [ws] ⇄ res ✓ logs.tail 145ms conn=8cc60f27…f105 id=b3c29a02…7ea8
2026-01-31T16:43:22.451Z [ws] ⇄ res ✓ logs.tail 292ms conn=8cc60f27…f105 id=22e3b2fe…9a4c
2026-01-31T17:29:22.238Z [ws] ⇄ res ✓ logs.tail 68ms conn=8cc60f27…f105 id=cccbfa77…ffbc
2026-01-31T17:32:22.244Z [ws] ⇄ res ✓ logs.tail 72ms conn=8cc60f27…f105 id=c9308539…2e7c
2026-01-31T17:33:22.564Z [ws] ⇄ res ✓ logs.tail 367ms conn=8cc60f27…f105 id=d56e867a…4786
2026-01-31T17:34:22.232Z [ws] ⇄ res ✓ logs.tail 61ms conn=8cc60f27…f105 id=75f5a70c…692c
2026-01-31T17:37:22.322Z [ws] ⇄ res ✓ logs.tail 154ms conn=8cc60f27…f105 id=73f4d42a…1b11
2026-01-31T17:39:22.400Z [ws] ⇄ res ✓ logs.tail 226ms conn=8cc60f27…f105 id=df53463b…53fc
2026-01-31T17:41:22.265Z [ws] ⇄ res ✓ logs.tail 96ms conn=8cc60f27…f105 id=87be7703…8860
2026-01-31T17:45:22.478Z [ws] ⇄ res ✓ logs.tail 310ms conn=8cc60f27…f105 id=5c5674f6…6488

Hey MrChunky! Thanks for the detailed logs. That helped pinpoint the issue and test personally with my Gemini key instead of Anthropic.

The "No API key found for anthropic" error happens because OpenClaw defaults to Claude models. When you're using a different provider (Gemini, OpenAI, Groq, OpenRouter), you need to change the default model to match your API key.

Why this happens: OpenClaw is designed to run an onboarding wizard (openclaw onboard) that walks you through setup, including model selection. But with a Community Apps deployment, you're getting a ready-to-go container...no CLI wizard. So the default model stays set to Anthropic even if you provide a different provider's key.

Quick fix:

1. Open the Control UI (http://YOUR-IP:18789/?token=YOUR_TOKEN)

2. Go to Config tab, go to the Agents tab

3. Click Raw JSON at the bottom

4. Add the agents section with your preferred model, might need to overwrite what is there:

{
  "gateway": {
    "mode": "local",
    "bind": "lan",
    "controlUi": { "allowInsecureAuth": true },
    "auth": { "mode": "token" }
  },
  "agents": {
    "defaults": {
      "model": { "primary": "YOUR_PROVIDER/MODEL_NAME" }
    }
  }
}

Common model values:

- Anthropic: anthropic/claude-sonnet-4-5

- Google Gemini: google/gemini-2.0-flash

- OpenAI: openai/gpt-4o

- Groq: groq/llama-3.1-70b-versatile

- OpenRouter: openrouter/anthropic/claude-3-sonnet

5. Save and restart the container

I've updated the GitHub README with a full guide:

https://github.com/jdhill777/openclaw-unraid#using-non-anthropic-providers-openai-gemini-groq-openrouter

Thanks for testing!

Edited by jdhill777

  • Author
10 hours ago, antwick said:

i followed your instructions and got openclaw setup and I can access the UI but I am unable to actually chat with it. I configured my API key for openrouter but that didnt seem to do it? So i went ahead and configured the key for Oauth on my Claude Max plan but still nothing. What am i doing wrong here?

You might see my response to MrChunky above this chat. If that doesn't resolve your issue, feel free to send your container logs and I would be happy to work through it with you!

  • Author
3 hours ago, tommy_e said:

Thanks for the template!

I would recommend the following command for the post argument:


sh -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"

otherwise the openclaw.json gets replaced after every container restart.

Hey Tommy_E!

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.

Really appreciate you digging into this and suggesting the fix!

  • Author
3 hours ago, Rev0991 said:

Is it possible to add Kimi? Seems to be the best price at the moment unless someone else has a recommendation? I did try to view the config settings for Kimi on OpenClaw, but for some reason the page keeps dissapearing.

Good news: OpenClaw does support Kimi!

The bad news: is it's not as simple as the other providers...

Anthropic, OpenAI, Gemini, Groq, and OpenRouter work with just an API key because OpenClaw has them built-in. Kimi (Moonshot) requires a custom models.providers block in the config due to how the OpenClaw team implemented provider support for them.

Adding this to the template would break it for users of the other LLMs, so I'm keeping the template focused on the built-in providers for now.

If you want to use Kimi, you'll need to manually edit your config via Raw JSON in the Control UI:

{
  "gateway": {
    "mode": "local",
    "bind": "lan",
    "controlUi": { "allowInsecureAuth": true },
    "auth": { "mode": "token" }
  },
  "models": {
    "providers": {
      "moonshot": {
        "baseUrl": "https://api.moonshot.ai/v1",
        "apiKey": "YOUR_MOONSHOT_API_KEY",
        "models": [{ "id": "kimi-k2.5", "name": "Kimi K2.5" }]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": { "primary": "moonshot/kimi-k2.5" }
    }
  }
}

From the OpenClaw docs it appears the available Kimi models are:

- moonshot/kimi-k2.5

- moonshot/kimi-k2-thinking

- moonshot/kimi-k2-turbo-preview

Full docs: https://docs.openclaw.ai/providers/moonshot

As for the config page disappearing, that sounds like a UI bug. Try refreshing, or use Raw JSON mode which tends to be more stable.

  • Author
1 hour ago, danielpiccoli said:

installed it , simply navigate to /boot/config/plugins/dockerMan/templates-user/ from terminal and do a simple wget https://raw.githubusercontent.com/jdhill777/openclaw-unraid/master/openclaw.xml

then follow the +add container section of the guide ... installed without issues, will connect to the messaging stuff now and get it rolling...

excellent work

Glad to hear it is working for you! One thing I will tell you, the new version of the template on my GitHub features a change that will fix the replacement of your config file being overwritten upon restart. You may want to make sure you update your template to the newer version!

  • Author
31 minutes ago, rwjk16 said:

Is this able to be served through a tailnet? Was able to install it following the instructions, and connecting to web ui through tailscale ip. But trying to connect to a node isnt working due to requirement of a secure connection.

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:18789

Then 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-serve

OpenClaw Tailscale docs: https://docs.openclaw.ai/gateway/tailscale

If you get it working, let us know! Would be great info for others hitting the same issue.

  • Author
4 hours ago, Rev0991 said:

Is it possible to add Kimi? Seems to be the best price at the moment unless someone else has a recommendation? I did try to view the config settings for Kimi on OpenClaw, but for some reason the page keeps dissapearing.

Hey shick! Thanks for testing. Let me address each of your points:

1. Telegram pairing

After setting the bot token (either via the template's TELEGRAM_BOT_TOKEN variable or in the config), restart the container. Then DM your bot in Telegram. On first contact, it should generate a pairing code. You'll need to approve it in the Control UI under the pairing section in agents tab. Once approved, you're connected!

Quick config via Raw JSON if you want to skip pairing and allowlist yourself directly, however, I haven't been able to test this myself and not sure I can recommend:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN",
      "dmPolicy": "allowlist",
      "allowFrom": ["tg:YOUR_TELEGRAM_USER_ID"]
    }
  }
}

Full Telegram docs: https://docs.openclaw.ai/channels/telegram

2. CLI not working

You're right, the openclaw command doesn't work out of the box in the container console. This is a limitation of how the OpenClaw team implemented their Docker container, at least to my understanding. For now, most configuration can be done via the Control UI. I am looking into other options but don't have a fix yet.

3. Local Ollama support

Good news — OpenClaw does support Ollama! The catch for Docker: if your Ollama runs on your Unraid host, the container needs to reach it. You'd need to configure the baseUrl to point to your host's IP.

In your config via Raw JSON:

{
  "agents": {
    "defaults": {
      "model": { "primary": "ollama/llama3.3" }
    }
  },
  "models": {
    "providers": {
      "ollama": {
        "baseUrl": "http://YOUR_UNRAID_IP:11434/v1",
        "apiKey": "ollama-local"
      }
    }
  }
}

Replace YOUR_UNRAID_IP with your Unraid server's IP (not localhost, since that would point inside the container). Make sure Ollama is running and accessible.

Full Ollama docs: https://docs.openclaw.ai/providers/ollama

4. Primary/fallback models ("merge")

Also supported! OpenClaw has built-in model fallback. If your primary model fails (rate limit, auth issue, etc.), it can automatically try fallback models.

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4-5",
        "fallbacks": ["openai/gpt-4o", "google/gemini-2.0-flash"]
      }
    }
  }
}

This will try Claude first, then GPT-4o, then Gemini if the others fail.

Hope that helps! Let me know if you run into any issues.

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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.