logo
icon

OpenClaw 🦞

CPU 2 CoresRAM 2 GB

OpenClaw 🦞 (formerly Clawdbot, Moltbot) is a personal AI assistant that runs locally and connects to multiple messaging platforms (WhatsApp, Telegram, Slack, Discord, etc.) via a WebSocket-based Gateway architecture.

template cover
Deployed11377 times
PublisherzeaburZeabur
Created2026-01-26
Services
service icon
Tags
AIAssistantChatbotWhatsAppTelegramSlackDiscord

OpenClaw 🦞

OpenClaw 🦞 (formerly Clawdbot, Moltbot) is a personal AI assistant that runs locally and connects to multiple messaging platforms via a WebSocket-based Gateway architecture.

⚠️ This template uses ghcr.io/openclaw/openclaw:2026.2.2. OpenClaw 🦞 is in rapid development, so there may be undiscovered bugs. Changing versions may also cause stability issues.

⚠️ If you encounter any issues, feel free to check the GitHub issues for solutions or to report new ones. For Zeabur platform-related issues, please contact Zeabur support.

⚠️ macOS-specific software and packages (e.g. Homebrew) are not supported in this container environment. Please look for alternative solutions.

⚠️ This template is pre-configured and ready to use - no need to run the setup wizard. If you do want to run the wizard, remember to set bind to lan mode. Refer to the official documentation for more advanced configuration.


Recommended Resources

  • Minimum: 2 vCPU / 4 GB RAM
  • Recommended: 4 vCPU / 8 GB RAM

Feature Extensions

  • Browser: If you need browser features (web browsing, screenshots, etc.), deploy the Browser Template

Usage

  1. After deployment, copy "Web UI (with token)" URL from the Instructions tab and paste it into your browser (first login requires token, after that you can access directly)
  2. Configure AI model (choose one):
    • Zeabur AI Hub (default model: gpt-5-mini): If you entered the API Key during deployment, go directly to step 3. You can also add ZEABUR_AI_HUB_API_KEY later via Variables tab in Zeabur dashboard (restart service after adding).
    • Other providers (Anthropic, OpenAI, etc.): If you did not enter a Zeabur AI Hub API Key, the default model is anthropic/claude-opus-4-5. Go to Web UI Settings or add API key via environment variables. See: https://docs.openclaw.ai/providers/anthropic
  3. Go to the Chat page to test if your AI model is working
  4. (Optional) Set up messaging platforms like Telegram, WhatsApp, etc.

For AI model configuration, see the official documentation.

Telegram Bot Setup

Getting your bot token from BotFather:

  1. Open Telegram and search for @BotFather
  2. Send /newbot to create a new bot
  3. Follow the prompts to set a name and username for your bot
  4. BotFather will send you a token (e.g., 123456789:ABCdefGHIjklMNOpqrsTUVwxyz)

Adding the token to Zeabur:

  1. Go to your service's Environment Variables tab in Zeabur dashboard
  2. Add TELEGRAM_BOT_TOKEN with your bot token
  3. Restart the service

Pairing your Telegram account:

  1. Send /start to your bot in Telegram
  2. The bot will reply with a pairing code (e.g., JN4MSY23)
  3. Approve the pairing using one of these methods:
    • Web Chat: In the OpenClaw web interface chat box, type openclaw pairing approve telegram <code>
    • Terminal: Open Command in Zeabur dashboard, run openclaw pairing approve telegram <code>
  4. You'll see: Approved telegram sender <user-id>.
  5. Now you can chat with the bot!

WhatsApp Setup

Step 1: Configure WhatsApp channel Add the following configuration via OpenClaw Web UI (Settings → Config) or paste it to chat:

"channels": {
  "whatsapp": {
    "selfChatMode": true,
    "dmPolicy": "allowlist",
    "allowFrom": ["+15551234567"]
  }
}

Replace +15551234567 with your WhatsApp phone number (with country code). Restart the service after saving.

Step 2: Link WhatsApp

  1. Open Command in Zeabur dashboard to access the container terminal
  2. Run: openclaw channels login
  3. A QR code will appear - scan it with WhatsApp on your phone
  4. Connection complete! You can now message yourself on WhatsApp to chat with OpenClaw

For other messaging platforms (Discord, Slack, etc.), see the Channels documentation.

AI Model Configuration

Verify your setup:

  1. Your default model depends on deployment:
    • With Zeabur AI Hub API Key → default model: zeabur-ai/gpt-5-mini
    • Without → default model: anthropic/claude-opus-4-5 (requires API key)
  2. Open Chat page and send a test message
  3. If you get a response → model is working
  4. If you get an error → check that your API key is configured correctly

Switch model for current conversation (via chat commands):

  • /models - View available models
  • /model <model-id> - Switch model for this conversation only (does not affect other conversations)

Change default model for all new conversations (via Web UI Settings):

  • Go to Settings → Agents → Default model
  • Tip: Set a low-cost model as default (e.g., gemini-2.5-flash-lite, gpt-5-nano). If a model becomes unavailable, use /new to start a new conversation with the default model.

Add AI providers (via Web UI Settings or environment variables):

Modify Zeabur AI Hub models (via Zeabur dashboard):

  • Go to SettingsConfigs → Edit /opt/openclaw/providers/zeabur-ai-hub.json5
  • Older versions (without commands): Edit /home/node/.openclaw/openclaw.json via Files tab or Web UI Settings. Add the following to models.providers.zeabur-ai.models array:
{ "id": "gpt-5.2", "name": "GPT-5.2", "reasoning": false, "input": ["text", "image"], "cost": { "input": 1.5, "output": 12, "cacheRead": 0.15, "cacheWrite": 0 }, "contextWindow": 400000, "maxTokens": 8192 },
{ "id": "gpt-5.1", "name": "GPT-5.1", "reasoning": false, "input": ["text", "image"], "cost": { "input": 1.35, "output": 11, "cacheRead": 0.14, "cacheWrite": 0 }, "contextWindow": 400000, "maxTokens": 8192 },
{ "id": "gpt-5-nano", "name": "GPT-5 Nano", "reasoning": false, "input": ["text", "image"], "cost": { "input": 0.1, "output": 0.8, "cacheRead": 0.01, "cacheWrite": 0 }, "contextWindow": 400000, "maxTokens": 8192 },
{ "id": "glm-4.7", "name": "GLM-4.7", "reasoning": false, "input": ["text", "image"], "cost": { "input": 0.5, "output": 2, "cacheRead": 0.12, "cacheWrite": 0 }, "contextWindow": 204800, "maxTokens": 8192 },
{ "id": "glm-4.7-flash", "name": "GLM-4.7 Flash", "reasoning": false, "input": ["text", "image"], "cost": { "input": 0.25, "output": 1, "cacheRead": 0.06, "cacheWrite": 0 }, "contextWindow": 204800, "maxTokens": 8192 },
{ "id": "kimi-2.5", "name": "Kimi 2.5", "reasoning": false, "input": ["text"], "cost": { "input": 0.45, "output": 2, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 131072, "maxTokens": 8192 }

Data Persistence

All data is stored under /home/node:

  • /home/node/.openclaw - Configuration, sessions, devices, and credentials
  • /home/node/.openclaw/workspace - Workspace and memory files

Backup & Restore

💡 Tip: We recommend creating a backup after completing your initial setup or making significant configuration changes.

Backup:

  • Method 1: Zeabur Backup Service (Recommended) - Use Zeabur's built-in backup feature. See Zeabur Backup Documentation.
  • Method 2: Manual Backup - Open Command → Run backup → Download from /home/node in Files tab (e.g. backup-1430.tar.gz)
    • Older versions (without commands): cd /home/node && tar -czvf backup.tar.gz .openclaw

Restore:

  1. Upload backup file to /home/node folder in Files tab
  2. Open Command and run:
    • From Zeabur Backup Service: restore <backup-file> --strip 2
    • From Manual Backup: restore <backup-file>
    • Older versions (without commands): cd /home/node && tar -xzvf <backup-file>
  3. Restart service

⚠️ Restore will overwrite existing configuration and data on the new service. Remember to also restore related environment variables (e.g. TELEGRAM_BOT_TOKEN). Channel backup/restore has only been tested with Telegram and WhatsApp.

Migrating from Clawdbot / Moltbot

Old version (without commands) data locations:

  • Clawdbot: config ~/.clawdbot, workspace ~/clawd
  • Moltbot: config ~/.moltbot or ~/.clawdbot, workspace ~/clawd

New OpenClaw location: /home/node/.openclaw (includes config and workspace)

OpenClaw has backward compatibility and will automatically read from .clawdbot and .moltbot folders, so you can extract directly without renaming.

Migration steps:

  1. Backup data on your old service:
    • Open Command in old service
    • cd /home/node && tar -czvf backup.tar.gz .clawdbot .moltbot clawd 2>/dev/null (ignores missing folders)
    • Download backup.tar.gz from Files tab
  2. Deploy this new OpenClaw template
  3. Restore backup to new service:
    • Drag backup.tar.gz to /home/node folder in Files tab
    • Open Command: cd /home/node && tar -xzvf backup.tar.gz && rm backup.tar.gz
    • Restart service
  4. Your configuration, sessions, and credentials will be preserved

The clawdbot and moltbot CLI commands are still available for backward compatibility.

Troubleshooting

Service won't start after config change? Use rescue mode:

  1. Go to SettingsCommand, change to: /opt/openclaw/rescue.sh (or sleep infinity for older versions without commands)
  2. Go to SettingsHealth Check, disable it (rescue mode won't respond to health checks)
  3. Restart service - container will run without starting OpenClaw
  4. Open Files tab to access the file browser
  5. Check Logs to find the error. Example: Invalid config at /home/node/.openclaw/openclaw.json: - agents.list.0: Unrecognized key: "allowModels" — fix the config at /home/node/.openclaw/openclaw.json in the file browser, or open Command and run openclaw doctor --fix to remove unrecognized keys automatically
  6. Change startup command back to: /opt/openclaw/startup.sh && /opt/openclaw/start_gateway.sh
    • Older versions (without commands): node dist/index.js gateway --allow-unconfigured --bind "${OPENCLAW_GATEWAY_BIND}" --port "${OPENCLAW_GATEWAY_PORT}" --token "${OPENCLAW_GATEWAY_TOKEN}"
  7. Re-enable health check and restart service

Update version: Go to SettingsService Image Source → modify ghcr.io/openclaw/openclaw:<tag>.

Health check error Startup probe failed: dial tcp ... connect: connection refused? This means the service hasn't finished starting yet or the port is not ready. OpenClaw may need more time to start, especially on first launch. Try:

  1. Wait a few minutes — the service may still be initializing
  2. If the error persists, increase resources (minimum 2 vCPU / 4 GB RAM, recommended 4 vCPU / 8 GB RAM)
  3. If the service keeps restarting, disable Health Check temporarily to prevent restart loops, then check logs for the actual error

Zeabur-Specific Configuration

This template disables mDNS/Bonjour (OPENCLAW_DISABLE_BONJOUR=1) because Zeabur container hostnames can exceed the 63-byte DNS label limit. mDNS is only used for local network discovery (like AirPlay/Chromecast) and is not needed in cloud environments where services connect via internal DNS.

Documentation

Changelog

2026/2/4

  • Use Zeabur configs for startup scripts (easier to maintain)
  • Add backup and restore global commands
  • Add rescue.sh for troubleshooting when config is broken
  • Add 6 new Zeabur AI Hub models: gpt-5.2, gpt-5.1, gpt-5-nano, glm-4.7, glm-4.7-flash, kimi-2.5
  • Add store compatibility setting for Zeabur AI Hub Claude models

2026/2/2

  • Add AI model configuration section (global vs conversation settings)
  • Add migration guide from Clawdbot / Moltbot with data paths
  • Add backup & restore section with Zeabur backup service
  • Add tip to backup after initial setup
  • Remove Google Gemini CLI patch (fixed upstream)
  • Remove ANTHROPIC_API_KEY and OPENAI_API_KEY from deployment variables to prevent OpenClaw from detecting empty API keys and failing (can be configured later via Web UI or environment variables)