Deploy
Clone Repo
Github Openclaw Repo: https://github.com/openclaw/openclaw.git
shell
git clone https://github.com/openclaw/openclaw.git
修改Setup.sh脚本
如果不修改脚本, 会出现openclaw Permission Denied的情况.
详细参考
Debug章节的## 无法配对机器人的内容
主要是要进行 chown -R 1000:1000 "$OPENCLAW_CONFIG_DIR" 的操作
Deploy With Sh Script
使用脚本./docker-setup.sh
该脚本会自动完成:
- 构建 Docker 镜像(
IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}") - 运行交互式 onboarding 向导
- 生成 Gateway Token 并写入 .env
- 启动网关服务
shell
./docker-setup.sh
如果你好奇官方脚本做了什么, 可以点击查看一下内容:
docker-compose.yaml文件做了什么
docker-compose.yml 定义了两个服务:
openclaw-gateway (网关服务)
- 端口: 18789 (网关), 18790 (桥接)
- 绑定: 默认 lan (局域网可访问)
- 重启策略: unless-stopped
- 持久化: 配置目录和工作空间挂载到主机
openclaw-cli (CLI 服务)
- 交互式终端 (tty: true, stdin_open: true)
- 用于执行命令、配置通道、运行 onboarding
Check Docker Image
整个Image大小: 4.+GB
Setup
开始Setup ClawBot
Basic
接受风险, 选择快速开始模式
Choose Model
我使用的是: GLM4.7模型
感觉Lite的额度都基本够一些使用了, 我平时额度用不完, 还可以继续压榨
配置API Key
选择模型
Choose Bot API
不得不喷一下国内那些App对于Bot的适配还需要开源人自己适配, 垃圾
参考下面的
# 接入Bot章节的内容接入Bot的API
Other
一些常见选项
完成Onboard配置
Web Dashboard配置
我中途不小心kill了Docker, 我使用docker compose up -d openclaw-gateway指令恢复
配置都存放在
~/.openclaw/, 所以没事
检查Token(这一步不需要, URL中携带了Token)
使用
cat ~/.openclaw/openclaw.json | grep token找到你需要在Web上配置的Token
修改配置文件: vim ~/.openclaw/openclaw.json
添加:
"controlUi": {
"enabled": true,
"allowInsecureAuth": true
},
修改完之后不需要重启服务, 就可以连接成功
接入Bot
TG Bot
使用 BotFather 创建Bot
文档: https://core.telegram.org/bots
/newbot - create a new bot
使用
\newbot指令
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
然后会提出输入Bot的名字.
Bot名字规范: Good. Now let's choose a username for your bot. It must end in
bot. Like this, for example: TetrisBot or tetris_bot.
输入了预期的Bot名字之后, 会给你Bot的认证Token
添加:
Setup ClawBot
配置Token
Pair TG Bot
openclaw pairing approve telegram <code>
需要在容器内部执行, 这里存在一个坑
我使用 docker compose up openclaw-cli pairing approve telegram <Code> 指令解决了问题
Debug
TG Bot无法回复
被墙了
ClawBot吃Env配置代理, 但是在容器中, 我一直没有配起来
yaml
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-openclaw:local}
network_mode: "host"
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
# 代理配置:现在可以直接用 127.0.0.1 了
http_proxy: http://127.0.0.1:20171
https_proxy: http://127.0.0.1:20171
all_proxy: socks5h://127.0.0.1:20170
HTTP_PROXY: http://127.0.0.1:20171
HTTPS_PROXY: http://127.0.0.1:20171
ALL_PROXY: socks5h://127.0.0.1:20170
no_proxy: localhost,127.0.0.1
NO_PROXY: localhost,127.0.0.1
无法配对机器人
参考: https://openclaw-ai.org/guides/fix-openclaw-docker-eacces-permission-denied
容器内的 node 用户(UID 1000)没有权限读写宿主机挂载进去的文件夹(通常是因为宿主机文件夹属于 root 或其他用户).
出现了 openclaw: Permission denied
fast way:
chown -R 1000:1000 "$HOME/.openclaw"
or add in docker-setup.sh:
after lines:
mkdir -p "$OPENCLAW_CONFIG_DIR"
mkdir -p "$OPENCLAW_WORKSPACE_DIR"
chown -R 1000:1000 "$OPENCLAW_CONFIG_DIR"
diff --git a/docker-setup.sh b/docker-setup.sh
index 89b8346a3..089a52b4e 100755
--- a/docker-setup.sh
+++ b/docker-setup.sh
@@ -27,6 +27,8 @@ OPENCLAW_WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}"
mkdir -p "$OPENCLAW_CONFIG_DIR"
mkdir -p "$OPENCLAW_WORKSPACE_DIR"
+chown -R 1000:1000 "$OPENCLAW_CONFIG_DIR"
+
export OPENCLAW_CONFIG_DIR
export OPENCLAW_WORKSPACE_DIR
export OPENCLAW_GATEWAY_PORT="${OPENCLAW_GATEWAY_PORT:-18789}"
参考
知乎 Docker部署Openclaw: https://zhuanlan.zhihu.com/p/2002144306304140149
Github ClawBot安装指南: https://github.com/xianyu110/clawbot