-
-
Notifications
You must be signed in to change notification settings - Fork 164
2.3.70 Satellite OpenClaw
Handle:
openclaw
URL: http://localhost:34721

OpenClaw is a personal AI assistant that runs locally and connects to your existing chat channels through a self-hosted gateway and Control UI.
Note: This service was previously named "Moltbot" and was renamed to "OpenClaw".
# Build from source (recommended for Docker installs)
harbor build openclaw
# Set the model (required on first start)
harbor config set openclaw.model "llama3.1:8b"
# Start OpenClaw with a backend (Ollama, llamacpp, vllm, etc.)
harbor up openclaw ollama --open
# Open the Control UI
harbor open openclaw- OpenClaw requires an OpenAI-compatible backend. Start with one of:
ollama,llamacpp,vllm,tabbyapi,mistralrs,sglang, orlmdeploy. - Harbor automatically configures OpenClaw to use whichever backend is running.
-
harbor open openclawuses the configuredopenclaw.open_urlwhich includes the gateway token, so no manual token entry is required by default. - If
OPENCLAW_MODELis unset, OpenClaw will exit on first start and ask you to set it.
Before adding your Discord bot to OpenClaw, you must enable required privileged intents in the Discord Developer Portal:
- Go to Discord Developer Portal
- Select your application
- Navigate to Bot settings
- Under Privileged Gateway Intents, enable:
- Message Content Intent (required for reading messages)
- Server Members Intent (recommended for better user management)
- Presence Intent (optional)
- Save changes
Without these intents enabled, Discord will reject the connection with error code 4014.
To configure Discord or other chat channels:
# Interactive channel configuration
harbor run openclaw configure --section channelsOr add channels directly via CLI:
# Add Discord channel
harbor run openclaw channels add --channel discord --token <bot-token>
# Add other channels (Telegram, WhatsApp, etc.)
harbor run openclaw channels add --channel telegram --token <telegram-token>The configuration wizard will guide you through:
- Selecting a channel (Discord, Telegram, WhatsApp, etc.)
- Entering credentials (bot token, etc.)
- Configuring access policies
Your channel configurations persist across container restarts thanks to Harbor's config preservation system.
Following options can be set via harbor config:
# Control UI (Gateway) port
OPENCLAW_HOST_PORT=34721
# Bridge port (device nodes)
OPENCLAW_BRIDGE_HOST_PORT=34722
# Image + build source
OPENCLAW_IMAGE="openclaw"
OPENCLAW_VERSION="local"
OPENCLAW_GIT_REF="https://github.com/openclaw/openclaw.git#main"
# Persistent configuration + workspace
OPENCLAW_CONFIG_DIR="~/.openclaw"
OPENCLAW_WORKSPACE_DIR="~/openclaw"
# Gateway settings
OPENCLAW_GATEWAY_MODE="local"
OPENCLAW_GATEWAY_BIND="lan"
OPENCLAW_GATEWAY_TOKEN="harbor-openclaw-token-change-me"
# Model (required)
# Specify the model ID exactly as it appears in your backend.
# Harbor automatically prepends the provider prefix (e.g., "llamacpp/") internally.
#
# For llamacpp models with vendor prefixes, include the full path:
# unsloth/GLM-4.7-Flash-GGUF:Q8_0
# bartowski/Qwen2.5-Coder-7B-Instruct-GGUF:Q6_K
# For Ollama models:
# llama3.1:8b
# qwen3-vl:8b
#
# Note: Do NOT include the backend name (e.g., "llamacpp/") in OPENCLAW_MODEL.
# Harbor handles provider prefixing automatically.
OPENCLAW_MODEL=""
# Context window for the model
OPENCLAW_CONTEXT_WINDOW=16384
# Build-time extra apt packages
OPENCLAW_DOCKER_APT_PACKAGES=""
# Auto-approve Control UI device pairing
OPENCLAW_AUTO_APPROVE_UI=true
# Optional Claude session values
OPENCLAW_CLAUDE_AI_SESSION_KEY=""
OPENCLAW_CLAUDE_WEB_SESSION_KEY=""
OPENCLAW_CLAUDE_WEB_COOKIE=""OpenClaw persists data in the following directories:
-
OPENCLAW_CONFIG_DIR- Gateway configuration, credentials, and tokens -
OPENCLAW_WORKSPACE_DIR- Agent workspace, skills, and session data
On first start, Harbor creates the initial openclaw.json configuration file. On subsequent restarts, Harbor only updates the dynamic parts (gateway tokens, backend URL, model ID) while preserving all user customizations including:
- Channel configurations (Discord, Telegram, etc.)
- Custom agent settings
- Model provider customizations
- Any other manual edits to the config file
This ensures your customizations aren't lost when switching models or backends.
OpenClaw runs inside Docker, so the Control UI connects from the Docker bridge and can require device pairing. Harbor auto-approves this by default. If you disable it, run:
harbor exec openclaw node dist/index.js devices list --json
harbor exec openclaw node dist/index.js devices approve <request-id>If you see Fatal Gateway error: 4014 in logs or the Control UI when using Discord:
Cause: Discord is rejecting the connection because required privileged intents are not enabled.
Fix:
- Go to Discord Developer Portal
- Select your bot application
- Navigate to Bot settings
- Under Privileged Gateway Intents, enable:
- Message Content Intent (required)
- Server Members Intent (recommended)
- Click Save Changes
- Restart OpenClaw:
harbor restart openclaw
The bot should now connect successfully. Check logs with harbor logs openclaw to verify.
harbor logs openclaw# Stop the service
harbor down openclaw
# Remove local data (WARNING: destroys config and sessions)
rm -rf ~/.openclaw ~/openclaw
# Restart
harbor up openclaw --open