diff --git a/content/openclaw-docker-maintenance.md b/content/openclaw-docker-maintenance.md new file mode 100644 index 0000000..1a6d294 --- /dev/null +++ b/content/openclaw-docker-maintenance.md @@ -0,0 +1,441 @@ +# OpenClaw Docker 部署维护指南:记住「2 个主配置 + 3 个辅助文件」 + +Docker 部署 OpenClaw 后,日常维护只需抓住核心文件结构。本文把功能配置、密钥配置、常见修改场景和常用命令一次讲清。 + +## 核心文件结构 + +当前真正最重要的是: + +```text +/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`,大致结构: + +```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**,用命令改: + +```bash +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`: + +```bash +nano /root/local-app/openclaw-walter/.env +``` + +```ini +HINDSIGHT_API_TOKEN=你的token +``` + +`.env` 是 Docker 启动时注入的,改完后必须用 `--force-recreate`: + +```bash +docker compose up -d --force-recreate openclaw-gateway +``` + +不是普通 restart。 + +## 二、LLM 后续怎么改 + +已专门生成了配置脚本 `/root/local-app/openclaw-walter/configure-responses-llm.sh`,第一次配置直接跑: + +```bash +cd /root/local-app/openclaw-walter +./configure-responses-llm.sh +``` + +它配置两部分: + +**`.env` 保存:** + +```ini +OPENCLAW_CUSTOM_LLM_API_KEY=sk-xxxx +``` + +**`openclaw.json` 保存:** + +```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 地址 + +不用重跑配置器: + +```bash +./openclaw.sh config set \ + models.providers.custom.baseUrl \ + "https://api.b.com/v1" + +docker compose restart openclaw-gateway +``` + +## 四、换 API Key + +```bash +nano .env +# OPENCLAW_CUSTOM_LLM_API_KEY=sk-old → sk-new + +docker compose up -d --force-recreate openclaw-gateway +``` + +传递链路: + +```text +.env → Docker Environment → SecretRef → OpenClaw +``` + +不要把 API Key 明文写进 `openclaw.json`。 + +## 五、切换默认模型 + +```bash +# 查看 +./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` 格式,例如: + +```text +custom/gpt-5.6-sol +deepseek/deepseek-v3 +dashscope/qwen3-max +``` + +## 六、建议配置两个 LLM Provider + +```json +{ + "models": { + "providers": { + "main": { + "baseUrl": "https://api.xxx.com/v1", + "api": "openai-responses" + }, + "deepseek": { + "baseUrl": "https://api.deepseek.com/v1", + "api": "openai-completions" + } + } + } +} +``` + +```text +main/gpt-5.6-sol +deepseek/deepseek-chat +``` + +主模型:`./openclaw.sh models set main/gpt-5.6-sol` + +## 七、微信:插件启停与账号 + +**插件启停**在 `openclaw.json`: + +```json +{ + "plugins": { + "entries": { + "openclaw-weixin": { + "enabled": true + } + } + } +} +``` + +```bash +# 查看 +./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 不要手工编辑**。登录用: + +```bash +./wechat-login.sh +``` + +本质执行 `openclaw channels login --channel openclaw-weixin`。扫码成功后,插件自动把账号凭据写入 `~/.openclaw`(即宿主机 `/root/local-app/openclaw-walter/data/openclaw/`)。重新登录直接再跑脚本即可。 + +**多账号**:再运行一次 `./wechat-login.sh` 添加第二账号,并建议: + +```bash +./openclaw.sh config set session.dmScope per-account-channel-peer +``` + +这样微信账号 A/B 的用户会话不会混。 + +## 八、Browser 配置 + +```json +{ + "browser": { + "enabled": true, + "defaultProfile": "openclaw", + "headless": true + } +} +``` + +```bash +./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`,如: + +```ini +registry=https://registry.npmmirror.com/ +``` + +只有 npm 镜像挂了才改。 + +## 十一、建议不要直接编辑 openclaw.json + +虽然可以 `nano data/openclaw/openclaw.json`,但官方更推荐: + +```bash +openclaw config get +openclaw config set +openclaw config validate +``` + +自定义 Provider 增量更新用 `config set ... --merge`,减少误覆盖风险。 + +日常固定习惯: + +```bash +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 +``` + +## 十二、记忆规则 + +```text + OpenClaw 配置 + │ + ┌───────────┴───────────┐ + │ │ + 非敏感配置 密钥 + │ │ + ▼ ▼ + openclaw.json .env + │ │ + Hindsight参数 LLM API KEY + LLM Provider Hindsight Token + 默认模型 Gateway Token + Browser + Plugin开关 + Agent + MCP +``` + +再往外: + +```text +docker-compose.yml + ↓ +只负责 Docker / 端口 / Volume / 网络 + +.npmrc + ↓ +只负责 npm / pnpm 下载源 +``` + +## 十三、最常用的 10 条命令 + +```bash +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,都不会越来越乱。 + +## 参考 + +- [OpenClaw 常见问题](https://docs.openclaw.ai/zh-CN/help/faq) +- [Hindsight 集成文档](https://github.com/vectorize-io/hindsight/blob/main/hindsight-docs/docs-integrations/codex.md) +- [OpenClaw 配置工具与自定义提供商](https://docs.openclaw.ai/zh-CN/gateway/config-tools) +- [OpenClaw 模型与身份验证 FAQ](https://docs.openclaw.ai/zh-CN/help/faq-models) +- [OpenClaw 微信频道](https://docs.openclaw.ai/zh-CN/channels/wechat) diff --git a/public/openclaw-docker-maintenance.html b/public/openclaw-docker-maintenance.html new file mode 100644 index 0000000..0106366 --- /dev/null +++ b/public/openclaw-docker-maintenance.html @@ -0,0 +1,348 @@ + + + + + + + +OpenClaw Docker 部署维护指南:2 个主配置 + 3 个辅助文件 + + + +
+
2026-09-01 10:20 +0800·文章
+ +

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,都不会越来越乱。

+

参考

+ +
+ +
+ + \ No newline at end of file