OpenClaw Docker 部署维护指南:记住「2 个主配置 + 3 个辅助文件」
+Docker 部署 OpenClaw 后,日常维护只需抓住核心文件结构。本文把功能配置、密钥配置、常见修改场景和常用命令一次讲清。
+核心文件结构
+当前真正最重要的是:
+/root/local-app/openclaw-walter/
+│
+├── .env ← 密钥、环境变量
+├── docker-compose.yml ← Docker部署层,平时基本不改
+│
+├── data/openclaw/
+│ └── openclaw.json ← ★ OpenClaw 最核心配置文件
+│
+├── config/
+│ └── .npmrc ← npm国内源
+│
+└── INSTALL_INFO.txt ← 安装信息/端口/Token
+OpenClaw 官方从 ~/.openclaw/openclaw.json 读取主配置;在 Docker 映射里,对应宿主机就是 /root/local-app/openclaw-walter/data/openclaw/openclaw.json。
主要管这两个
+1. openclaw.json —— 功能配置
负责:LLM、Hindsight、Browser、微信插件启停、Agent、模型选择、Skill、工具权限、Gateway、MCP,即绝大多数功能配置。
+2. .env —— 密钥配置
负责:Gateway Token、LLM API Key、Hindsight Token、npm Registry、Docker 环境变量。
+原则:
+++功能参数进
+openclaw.json,密码 / API Key 尽量进.env。
这样备份、迁移、安全性都会清晰很多。
+一、Hindsight 后续怎么改
+Hindsight 的主要配置会进入 data/openclaw/openclaw.json,大致结构:
{
+ "plugins": {
+ "entries": {
+ "hindsight-openclaw": {
+ "enabled": true,
+ "config": {
+ "hindsightApiUrl": "http://t.stoneji.cc:18888",
+ "dynamicBankId": false,
+ "bankId": "walter",
+ "autoRecall": true,
+ "autoRetain": true,
+ "recallBudget": "mid",
+ "recallMaxTokens": 1024,
+ "enableKnowledgeTools": true
+ }
+ }
+ }
+ }
+}
+推荐修改方式
+不要直接 vim JSON,用命令改:
+cd /root/local-app/openclaw-walter
+
+# 查看
+./openclaw.sh config get plugins.entries.hindsight-openclaw
+
+# 改 Hindsight 地址
+./openclaw.sh config set \
+ plugins.entries.hindsight-openclaw.config.hindsightApiUrl \
+ "http://新的地址:18888"
+
+# 改 Bank
+./openclaw.sh config set \
+ plugins.entries.hindsight-openclaw.config.bankId \
+ "walter"
+
+# 开启 Recall
+./openclaw.sh config set \
+ plugins.entries.hindsight-openclaw.config.autoRecall \
+ true --strict-json
+
+# 开启 Retain
+./openclaw.sh config set \
+ plugins.entries.hindsight-openclaw.config.autoRetain \
+ true --strict-json
+
+# Recall 深度
+./openclaw.sh config set \
+ plugins.entries.hindsight-openclaw.config.recallBudget \
+ "mid"
+Recall 深度可选:low(快、省)、mid(均衡,推荐)、high(更深入、更慢)。
Hindsight Token 怎么改
+敏感信息放 .env:
nano /root/local-app/openclaw-walter/.env
+HINDSIGHT_API_TOKEN=你的token
+.env 是 Docker 启动时注入的,改完后必须用 --force-recreate:
docker compose up -d --force-recreate openclaw-gateway
+不是普通 restart。
+二、LLM 后续怎么改
+已专门生成了配置脚本 /root/local-app/openclaw-walter/configure-responses-llm.sh,第一次配置直接跑:
cd /root/local-app/openclaw-walter
+./configure-responses-llm.sh
+它配置两部分:
+.env 保存:
OPENCLAW_CUSTOM_LLM_API_KEY=sk-xxxx
+openclaw.json 保存:
{
+ "models": {
+ "mode": "merge",
+ "providers": {
+ "custom": {
+ "baseUrl": "https://api.xxx.com/v1",
+ "api": "openai-responses",
+ "apiKey": {
+ "source": "env",
+ "provider": "default",
+ "id": "OPENCLAW_CUSTOM_LLM_API_KEY"
+ },
+ "timeoutSeconds": 300,
+ "models": [
+ {
+ "id": "gpt-xxx",
+ "name": "gpt-xxx",
+ "reasoning": true,
+ "input": ["text", "image"],
+ "contextWindow": 200000,
+ "maxTokens": 32768
+ }
+ ]
+ }
+ }
+ },
+ "agents": {
+ "defaults": {
+ "model": {
+ "primary": "custom/gpt-xxx"
+ }
+ }
+ }
+}
+通过 models.providers 配置自定义 Base URL,用 api: openai-responses 指定 Responses API(前提是上游真的支持 /v1/responses)。
三、只改 LLM 地址
+不用重跑配置器:
+./openclaw.sh config set \
+ models.providers.custom.baseUrl \
+ "https://api.b.com/v1"
+
+docker compose restart openclaw-gateway
+四、换 API Key
+nano .env
+# OPENCLAW_CUSTOM_LLM_API_KEY=sk-old → sk-new
+
+docker compose up -d --force-recreate openclaw-gateway
+传递链路:
+.env → Docker Environment → SecretRef → OpenClaw
+不要把 API Key 明文写进 openclaw.json。
五、切换默认模型
+# 查看
+./openclaw.sh models list
+
+# 切换
+./openclaw.sh models set custom/gpt-5.6-sol
+
+# 或直接改配置
+./openclaw.sh config set \
+ agents.defaults.model.primary \
+ "custom/gpt-5.6-sol"
+模型引用统一使用 provider/model 格式,例如:
custom/gpt-5.6-sol
+deepseek/deepseek-v3
+dashscope/qwen3-max
+六、建议配置两个 LLM Provider
+{
+ "models": {
+ "providers": {
+ "main": {
+ "baseUrl": "https://api.xxx.com/v1",
+ "api": "openai-responses"
+ },
+ "deepseek": {
+ "baseUrl": "https://api.deepseek.com/v1",
+ "api": "openai-completions"
+ }
+ }
+ }
+}
+main/gpt-5.6-sol
+deepseek/deepseek-chat
+主模型:./openclaw.sh models set main/gpt-5.6-sol
七、微信:插件启停与账号
+插件启停在 openclaw.json:
{
+ "plugins": {
+ "entries": {
+ "openclaw-weixin": {
+ "enabled": true
+ }
+ }
+ }
+}
+# 查看
+./openclaw.sh config get plugins.entries.openclaw-weixin
+
+# 启用 / 禁用
+./openclaw.sh config set plugins.entries.openclaw-weixin.enabled true --strict-json
+./openclaw.sh config set plugins.entries.openclaw-weixin.enabled false --strict-json
+微信账号 Token 不要手工编辑。登录用:
+./wechat-login.sh
+本质执行 openclaw channels login --channel openclaw-weixin。扫码成功后,插件自动把账号凭据写入 ~/.openclaw(即宿主机 /root/local-app/openclaw-walter/data/openclaw/)。重新登录直接再跑脚本即可。
多账号:再运行一次 ./wechat-login.sh 添加第二账号,并建议:
./openclaw.sh config set session.dmScope per-account-channel-peer
+这样微信账号 A/B 的用户会话不会混。
+八、Browser 配置
+{
+ "browser": {
+ "enabled": true,
+ "defaultProfile": "openclaw",
+ "headless": true
+ }
+}
+./openclaw.sh config get browser
+./browser-test.sh
+九、docker-compose.yml 什么时候才需要改
+只管「基础设施」:端口、Volume、网络。端口实际来自 .env 的 OPENCLAW_HOST_PORT=18789,大部分情况只改 .env 即可,无需动 compose。
十、.npmrc 基本不用碰
+位置 /root/local-app/openclaw-walter/config/.npmrc,如:
registry=https://registry.npmmirror.com/
+只有 npm 镜像挂了才改。
+十一、建议不要直接编辑 openclaw.json
+虽然可以 nano data/openclaw/openclaw.json,但官方更推荐:
openclaw config get
+openclaw config set
+openclaw config validate
+自定义 Provider 增量更新用 config set ... --merge,减少误覆盖风险。
日常固定习惯:
+cd /root/local-app/openclaw-walter
+
+# 查看
+./openclaw.sh config get xxx
+
+# 修改
+./openclaw.sh config set xxx value
+
+# 验证
+./openclaw.sh config validate
+
+# 重启
+docker compose restart openclaw-gateway
+十二、记忆规则
+ OpenClaw 配置
+ │
+ ┌───────────┴───────────┐
+ │ │
+ 非敏感配置 密钥
+ │ │
+ ▼ ▼
+ openclaw.json .env
+ │ │
+ Hindsight参数 LLM API KEY
+ LLM Provider Hindsight Token
+ 默认模型 Gateway Token
+ Browser
+ Plugin开关
+ Agent
+ MCP
+再往外:
+docker-compose.yml
+ ↓
+只负责 Docker / 端口 / Volume / 网络
+
+.npmrc
+ ↓
+只负责 npm / pnpm 下载源
+十三、最常用的 10 条命令
+cd /root/local-app/openclaw-walter
+
+# 整体状态
+./status.sh
+
+# OpenClaw 日志
+./logs.sh
+
+# 检查配置
+./openclaw.sh config validate
+
+# 看 Hindsight
+./openclaw.sh config get plugins.entries.hindsight-openclaw
+
+# 看 LLM
+./openclaw.sh config get models
+
+# 看默认模型
+./openclaw.sh config get agents.defaults.model
+
+# 模型列表
+./openclaw.sh models list
+
+# 微信状态
+./openclaw.sh channels status --probe
+
+# 微信重新登录
+./wechat-login.sh
+
+# Browser
+./browser-test.sh
+总结:长期维护的核心文件就是 data/openclaw/openclaw.json,日常通过 ./openclaw.sh config set 修改;.env 只在改 API Key、Token 这些秘密时动。这样后续增加 Hindsight、微信、WPS MCP、Radicale/ntfy MCP、多个 LLM Provider,都不会越来越乱。