
ZeaburOpenClaw 🦞 (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.
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).anthropic/claude-opus-4-5. Go to Web UI Settings or add API key via environment variables. See: https://docs.openclaw.ai/providers/anthropicFor AI model configuration, see the official documentation.
Getting your bot token from BotFather:
/newbot to create a new bot123456789:ABCdefGHIjklMNOpqrsTUVwxyz)Adding the token to Zeabur:
TELEGRAM_BOT_TOKEN with your bot tokenPairing your Telegram account:
/start to your bot in TelegramJN4MSY23)openclaw pairing approve telegram <code>openclaw pairing approve telegram <code>Approved telegram sender <user-id>.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
openclaw channels loginFor other messaging platforms (Discord, Slack, etc.), see the Channels documentation.
Verify your setup:
zeabur-ai/gpt-5-minianthropic/claude-opus-4-5 (requires API key)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):
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):
/opt/openclaw/providers/zeabur-ai-hub.json5/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 }
All data is stored under /home/node:
/home/node/.openclaw - Configuration, sessions, devices, and credentials/home/node/.openclaw/workspace - Workspace and memory files💡 Tip: We recommend creating a backup after completing your initial setup or making significant configuration changes.
Backup:
backup → Download from /home/node in Files tab (e.g. backup-1430.tar.gz)
cd /home/node && tar -czvf backup.tar.gz .openclawRestore:
/home/node folder in Files tabrestore <backup-file> --strip 2restore <backup-file>cd /home/node && tar -xzvf <backup-file>⚠️ 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.
Old version (without commands) data locations:
~/.clawdbot, workspace ~/clawd~/.moltbot or ~/.clawdbot, workspace ~/clawdNew 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:
cd /home/node && tar -czvf backup.tar.gz .clawdbot .moltbot clawd 2>/dev/null (ignores missing folders)backup.tar.gz from Files tabbackup.tar.gz to /home/node folder in Files tabcd /home/node && tar -xzvf backup.tar.gz && rm backup.tar.gzThe clawdbot and moltbot CLI commands are still available for backward compatibility.
Service won't start after config change? Use rescue mode:
/opt/openclaw/rescue.sh (or sleep infinity for older versions without commands)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/opt/openclaw/startup.sh && /opt/openclaw/start_gateway.sh
node dist/index.js gateway --allow-unconfigured --bind "${OPENCLAW_GATEWAY_BIND}" --port "${OPENCLAW_GATEWAY_PORT}" --token "${OPENCLAW_GATEWAY_TOKEN}"Update version: Go to Settings → Service 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:
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.
2026/2/4
backup and restore global commandsrescue.sh for troubleshooting when config is broken2026/2/2
Zeabur