Community Applications template for OpenClaw (formerly ClawdBot/MoltBot) — a powerful, self-hosted AI assistant that runs locally on your Unraid server.
- What is OpenClaw?
- Requirements
- Quick Start
- Configuration
- Updating
- Troubleshooting
- Install Before CA Approval
- Resources
- License
- Support the Maintainer
- Credits
OpenClaw is a personal AI assistant you run on your own devices. It answers you on the channels you already use and keeps your data completely local.
Connect to all your favorite platforms from one assistant:
- 💬 WhatsApp — via WhatsApp Web/Baileys
✈️ Telegram — Bot API with DMs + groups- 🎮 Discord — Full bot integration with guilds
- 💼 Slack — Workspace integration via Bolt
- 📧 Google Chat — Workspace chat support
- 📱 Signal — Secure messaging
- 🍎 iMessage — macOS integration
- 🔷 Microsoft Teams — Enterprise chat
- 🌐 Matrix, Mattermost, BlueBubbles, and more via plugins
- 🧠 Multi-Agent Routing — Route different channels/users to isolated agents with separate workspaces
- 📁 File Management — Read, write, and organize files on your server
- ⚡ Shell Commands — Execute scripts, manage Docker, automate anything
- 🌐 Browser Control — Research, fetch data, interact with web pages
- ⏰ Cron Jobs — Schedule tasks, reminders, and automated workflows
- 🧩 Skills System — Extend capabilities with bundled or custom skills
- 🎤 Voice Wake + Talk Mode — Always-on speech with ElevenLabs TTS
- 📺 Live Canvas — Agent-driven visual workspace
- 📱 Mobile Nodes — iOS and Android companion apps
- 🖥️ macOS Menu Bar App — Quick access companion
Your files, workspace, and configuration stay 100% on your Unraid server. Conversations are processed through your chosen LLM provider's API (Anthropic, OpenAI, etc.) but nothing is stored on third-party servers beyond their standard API processing. For fully local operation, you can use Ollama with local models.
- Unraid 6.x or 7.x
- Docker support enabled
- API key from one of:
- Anthropic (Claude) — recommended
- OpenRouter (100+ models)
- OpenAI (GPT models)
- Google AI Studio (Gemini)
- Groq (Fast Llama/Mixtral)
- Go to console.anthropic.com
- Sign up or log in
- Add a payment method (Settings → Billing)
- Go to API Keys and create a new key
- Copy the key (starts with
sk-ant-)
Pricing: Pay-as-you-go, starting at $5 credit. Most personal usage costs $5-20/month depending on how much you chat.
Note: This is separate from a Claude Pro subscription ($20/mo). Claude Pro is for the claude.ai web app — API access requires credits from the console. If you have Claude Pro or Max, see below for subscription-based auth.
Already have a Claude Pro ($20/mo) or Max subscription? You can get a subscription-based token from Claude Code instead of buying API credits.
On your Mac or PC (not Unraid):
- Make sure you have Claude Code installed and logged in with your Pro/Max account
- Run this command:
claude setup-token
- Follow the prompts — it will output a token (starts with
sk-ant-oat01-...) - Copy that token
On Unraid:
- In the OpenClaw template, set the environment variable:
- Name:
CLAUDE_CODE_OAUTH_TOKEN - Value: (paste the token from step 3)
- Name:
That's it! OpenClaw will use your subscription instead of API credits.
Tip: The token expires periodically. If you get auth errors, run
claude setup-tokenagain to get a fresh token.
OpenClaw defaults to Anthropic's Claude model. If you're using a different provider, you must change the default model after installation:
- Install OpenClaw with your API key (e.g.,
GEMINI_API_KEY) - Open the Control UI
- Go to Config tab
- Find
agents.defaults.model.primaryand change it to match your provider:
| Provider | Model Example |
|---|---|
| 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 |
- Save the config and restart the container
Why is this needed? OpenClaw doesn't auto-detect which provider you're using from the API key. The default model is Anthropic — if you set a Gemini key but leave the default model, you'll get "No API key found for anthropic" errors.
- Search for OpenClaw in Community Applications
- Click Install
- Fill in the form:
- Gateway Token: Recommend generating with
openssl rand -hex 24, but can be any value - LLM API Key: Your Anthropic, OpenRouter, or other provider key
- Gateway Token: Recommend generating with
- Click Apply
That's it! The template automatically configures everything.
Open your browser to:
http://YOUR-UNRAID-IP:18789/?token=YOUR_GATEWAY_TOKEN
Important: You must append ?token=YOUR_TOKEN to the URL for authentication.
Example: http://192.168.1.41:18789/?token=mySecretToken123
This table documents all settings available in the Unraid template:
| Setting | Type | Required | Default | Description |
|---|---|---|---|---|
| Ports | ||||
| Control UI Port | Port | ✅ Yes | 18789 |
Web UI and Gateway API port. Access at http://IP:18789/?token=TOKEN |
| Paths | ||||
| Config Path | Path | ✅ Yes | /mnt/user/appdata/openclaw/config |
OpenClaw configuration, sessions, and credentials |
| Workspace Path | Path | ✅ Yes | /mnt/user/appdata/openclaw/workspace |
Agent workspace for files, memory, and projects |
| Projects Path | Path | ❌ Optional | /mnt/user/appdata/openclaw/projects |
Additional path for coding projects (advanced) |
| Homebrew Path | Path | ❌ Optional | /mnt/user/appdata/openclaw/homebrew |
Persistent Homebrew packages. If you install Homebrew manually via console, this mount ensures it persists across restarts. |
| Authentication | ||||
| Gateway Token | Variable | ✅ Yes | — | Secret token for API/UI access. Generate: openssl rand -hex 24 |
| LLM Providers (at least one required) | ||||
| Anthropic API Key | Variable | ⚡ Recommended | — | Claude models. Get from console.anthropic.com |
| OpenRouter API Key | Variable | ❌ Optional | — | 100+ models via single API. Get from openrouter.ai |
| OpenAI API Key | Variable | ❌ Optional | — | GPT models. Get from platform.openai.com |
| Gemini API Key | Variable | ❌ Optional | — | Google Gemini. Get from aistudio.google.com |
| Groq API Key | Variable | ❌ Optional | — | Fast Llama/Mixtral. Get from console.groq.com |
| xAI API Key | Variable | ❌ Optional | — | xAI Grok models. Get from console.x.ai |
| Z.AI API Key | Variable | ❌ Optional | — | Z.AI/Zhipu GLM models. Get from z.ai/model-api |
| Subscription Auth | ||||
| GitHub Copilot Token | Variable | ❌ Optional | — | (Advanced) GitHub Copilot OAuth token. See Using Claude Pro/Max section. |
| Messaging Channels (configure after install) | ||||
| Discord Bot Token | Variable | ❌ Optional | — | Discord bot integration. Can also configure via Control UI |
| Telegram Bot Token | Variable | ❌ Optional | — | Telegram bot from @BotFather. Can also configure via Control UI |
| Advanced | ||||
| Gateway Port | Variable | ❌ Optional | 18789 |
Override if port 18789 is in use |
| PATH | Variable | ❌ Optional | (auto-set) | System PATH including Homebrew. Do not modify unless you know what you're doing. |
| Web Search API Key | Variable | ❌ Optional | — | Brave Search API for web search (2000 free/month at brave.com/search/api) |
| Container Path | Host Path | Description |
|---|---|---|
/root/.openclaw |
/mnt/user/appdata/openclaw/config |
Config file, sessions, credentials, WhatsApp auth |
/home/node/clawd |
/mnt/user/appdata/openclaw/workspace |
Agent workspace (files, memory, AGENTS.md, etc.) |
/projects |
/mnt/user/appdata/openclaw/projects |
Optional coding projects folder |
/home/linuxbrew/.linuxbrew |
/mnt/user/appdata/openclaw/homebrew |
Homebrew packages (persists brew/go/npm installs) |
OpenClaw includes a Skills system that extends functionality with plugins. Some skills require tools like go, npm, 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 — the template has already configured the PATH for you
- Homebrew and installed packages persist in the
Homebrew Pathvolume across restarts - We recommend reviewing the install script at brew.sh before running
Known limitation: Skills that require Go (like blogwatcher, blucli) may timeout on first install while Go is being downloaded via Homebrew. This is due to OpenClaw's skill installer timeout. Simply click Install again and it will succeed since Go is now cached.
The main configuration file is stored at:
/mnt/user/appdata/openclaw/config/openclaw.json
Key configuration sections (see full docs):
| Section | Purpose | Example |
|---|---|---|
gateway |
Core gateway settings | { "bind": "lan", "port": 18789 } |
gateway.auth |
Authentication mode | { "mode": "token" } |
gateway.controlUi |
Web UI settings | { "allowInsecureAuth": true } |
channels |
Messaging platform configs | Discord, Telegram, WhatsApp, Slack, etc. |
channels.discord |
Discord bot settings | { "enabled": true, "token": "..." } |
channels.telegram |
Telegram bot settings | { "enabled": true, "botToken": "..." } |
channels.whatsapp |
WhatsApp Web settings | { "allowFrom": ["+1234567890"] } |
agents |
Agent configuration | Model selection, workspace, sandbox |
agents.defaults.model |
Default LLM model | { "primary": "anthropic/claude-sonnet-4-5" } |
agents.defaults.workspace |
Agent workspace path | "~/.openclaw/workspace" |
tools |
Tool permissions | Web search, browser, elevated access |
cron |
Scheduled jobs | Reminders, automations, periodic tasks |
messages |
Message handling | Prefixes, reactions, queue behavior |
Minimal config (auto-created on first run):
{
"gateway": {
"mode": "local",
"bind": "lan",
"controlUi": { "allowInsecureAuth": true },
"auth": { "mode": "token" }
}
}Example with Discord + custom model:
{
"gateway": {
"mode": "local",
"bind": "lan",
"controlUi": { "allowInsecureAuth": true },
"auth": { "mode": "token" }
},
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_DISCORD_BOT_TOKEN",
"dm": { "enabled": true, "policy": "allowlist", "allowFrom": ["YOUR_DISCORD_USER_ID"] },
"guilds": {
"YOUR_GUILD_ID": {
"channels": { "general": { "allow": true } }
}
}
}
},
"agents": {
"defaults": {
"model": { "primary": "anthropic/claude-sonnet-4-5" }
}
}
}📚 Full configuration reference: docs.openclaw.ai/gateway/configuration
After installation, configure channels via the Control UI Config page, or edit directly:
/mnt/user/appdata/openclaw/config/openclaw.json
Example adding Discord + Telegram:
{
"gateway": { ... },
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_DISCORD_BOT_TOKEN"
},
"telegram": {
"enabled": true,
"botToken": "YOUR_TELEGRAM_BOT_TOKEN"
}
}
}📚 Full channel setup guides: OpenClaw Docs - Channels
Via Unraid Docker UI:
- Docker tab → Click OpenClaw icon → Check for Updates
- Apply update
Via command line:
docker pull ghcr.io/openclaw/openclaw:latest
docker restart OpenClawEnsure you're accessing with your token:
http://YOUR-IP:18789/?token=YOUR_TOKEN
If the error persists, verify the config file exists and contains allowInsecureAuth:
cat /mnt/user/appdata/openclaw/config/openclaw.jsonManually create the config:
mkdir -p /mnt/user/appdata/openclaw/config
echo '{"gateway":{"mode":"local","bind":"lan","controlUi":{"allowInsecureAuth":true},"auth":{"mode":"token"}}}' > /mnt/user/appdata/openclaw/config/openclaw.json
docker restart OpenClawdocker logs OpenClaw 2>&1 | tail -50Not in CA yet? No problem — install via terminal in under a minute:
Step 1: 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.xmlStep 2: Refresh your browser on the Unraid Docker page
Step 3: Go to Docker → Add Container → Select OpenClaw from the Template dropdown
Step 4: Fill in your settings:
- Gateway Token: Any secret value (or generate with
openssl rand -hex 24) - Anthropic API Key: Get from console.anthropic.com (recommended)
- Or use OpenRouter/OpenAI/Gemini/Groq instead
Step 5: Click Apply — done!
Note: Homebrew is optional — see the Homebrew & Skills Support section if you need it for certain skills.
Advanced: Manual Docker Run
For those who prefer the command line without using templates:
# Create directories
mkdir -p /mnt/user/appdata/openclaw/config
mkdir -p /mnt/user/appdata/openclaw/workspace
mkdir -p /mnt/user/appdata/openclaw/homebrew
# Run container (replace YOUR_TOKEN and YOUR_API_KEY)
docker run -d \
--name OpenClaw \
--network bridge \
--user root \
--hostname OpenClaw \
--restart unless-stopped \
-p 18789:18789 \
-v /mnt/user/appdata/openclaw/config:/root/.openclaw:rw \
-v /mnt/user/appdata/openclaw/workspace:/home/node/clawd:rw \
-v /mnt/user/appdata/openclaw/homebrew:/home/linuxbrew/.linuxbrew:rw \
-e OPENCLAW_GATEWAY_TOKEN=YOUR_TOKEN \
-e ANTHROPIC_API_KEY=sk-ant-YOUR_KEY \
-e PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
ghcr.io/openclaw/openclaw:latest \
sh -c "mkdir -p /root/.openclaw /home/linuxbrew; [ -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"- Unraid Support Thread: https://forums.unraid.net/topic/196865-support-openclaw-ai-personal-assistant/
- OpenClaw Website: https://openclaw.ai
- Documentation: https://docs.openclaw.ai
- GitHub: https://github.com/openclaw/openclaw
- Discord Community: https://discord.gg/clawd
- Getting Started Guide: https://docs.openclaw.ai/start/getting-started
This template is released under the MIT License.
OpenClaw is open-source under the MIT License — see the OpenClaw repository.
If this template saved you time, consider buying me a coffee!
Note: I maintain the Unraid template — for the OpenClaw project itself, see their GitHub Sponsors.
- OpenClaw Team — Peter Steinberger (@steipete) and contributors
- Template Author — @jdhill777
- Tested on — Unraid 7.x
🦞 "EXFOLIATE! EXFOLIATE!" — A space lobster, probably
Questions? Open an issue or join the OpenClaw Discord.
