🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

Clawdbot/OpenClaw Docker 部署与运维实战教程(2026版)

    • #32885

      本文更新:2026.3.7最新更新

      适用版本:OpenClaw 2026.2.21+(推荐 2026.3.1) 🆕 原文为 2026.1.29+/推荐 2026.2.1

      部署环境:Dockge / Portainer / Docker Compose


      1. 为什么选择 OpenClaw

      1.1 什么是 OpenClaw?

      OpenClaw(原名 Clawdbot → Moltbot)是一款开源的、自托管的个人 AI 助手,它的设计理念可以用官方的 slogan 来概括:

      “Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞”

      与 ChatGPT、Claude 等云端 AI 服务不同,OpenClaw 运行在你自己的设备上——无论是 Mac mini、树莓派、NAS 还是云服务器。这意味着你的所有对话、文件和自动化工作流都完全由你掌控,不会上传到第三方服务器。

      💡 名称变更历史

      • 2025年11月:Clawdbot(原始名称)
      • 2026年1月:Moltbot(因 Anthropic 商标异议更名)
      • 2026年1月29日:OpenClaw(最终定名,CLI 命令改为 openclaw

      根据 DigitalOcean 的深度评测,OpenClaw 正在成为 2026 年个人生产力工具领域的革命性产品。截至 2026 年 3 月,项目已获得 超过 250,000 颗 GitHub 星——已超越 React,成为 GitHub 上仅次于 TensorFlow 的最受瞩目开源项目。React 用了十多年才达到的数字,OpenClaw 大约 60 天就做到了。它能够:🆕 原文为 135,000+

      • 🔗 连接多种聊天平台(Telegram、WhatsApp、Discord、Slack、iMessage、Microsoft Teams、Google Chat、Signal 等)
      • 🧠 调用顶级 LLM(Claude、GPT、Gemini)或本地模型(Ollama)
      • 🖥️ 控制你的浏览器和文件系统
      • ⚡ 通过 Skills 系统无限扩展能力
      • 🔒 数据本地化,隐私完全自主

      1.2 为什么使用 Docker 部署?

      虽然 OpenClaw 支持多种安装方式(npm 全局安装、源码编译、官方 Docker 镜像 🆕等),但 Docker 部署具有以下显著优势:

      优势说明
      🔒 环境隔离不污染宿主机系统,依赖问题完全隔离
      📦 一键部署通过 docker-compose.yml 一条命令启动全部服务
      🔄 便于迁移配置和数据目录挂载到宿主机,迁移只需复制文件夹
      🛠️ 易于维护升级、回滚、重置都非常简单
      📁 配合 FileBrowser可视化管理 Skills 和配置文件,降低使用门槛
      🔐 安全隔离Docker 容器提供额外的安全层,限制潜在攻击面
      🏥 内置健康检查🆕 官方镜像内置 HEALTHCHECK,支持 Kubernetes 探针

      本教程的核心价值在于:我们将 OpenClaw 与 FileBrowser 集成部署,让你可以通过 Web 界面直接上传和编辑 SKILL.md 文件,而无需每次都通过终端操作。这对于非技术背景的用户来说是一个巨大的便利。


      2. 核心概念:理解 OpenClaw 架构

      在开始部署之前,理解 OpenClaw 的核心架构对后续的配置和维护至关重要。

      2.1 Gateway(网关)

      Gateway 是 OpenClaw 的核心控制中枢。 它是一个持续运行的后台服务,负责:

      • 监听来自各个聊天渠道的消息
      • 调度 LLM 处理用户请求
      • 管理 Skills 和 Tools 的调用
      • 提供 Web 控制界面(Control UI)
      • 🆕 提供健康检查 HTTP 端点(/health/healthz/ready/readyz

      Gateway 默认监听端口 18789,通过 WebSocket 协议与客户端通信。

      2.2 Skills(技能)

      Skills 是 OpenClaw 的”能力扩展包”。 根据 Skills 官方文档,每个 Skill 是一个包含 SKILL.md 文件的目录,定义了 OpenClaw 在特定场景下应该如何行动。

      Skills 与普通的 Slash Commands(斜杠命令)有本质区别:

      特性Slash CommandsSkills
      调用方式必须手动输入 /命令AI 可自动判断调用
      文件结构单个 .md 文件目录 + SKILL.md + 支持文件
      适用场景固定的快捷操作复杂的多步骤工作流
      上下文感知较弱可包含模板、脚本等辅助文件
      依赖管理可通过 bins 声明二进制依赖

      ⚠️ 🆕 ClawdHub 安全警告:研究人员发现 ClawdHub 上约 20%(~800个)的已发布 Skills 包含恶意代码,包括凭据窃取器和后门。安装社区 Skills 前请务必审查源码,或仅使用来自可信作者的 Skills。详见 第 8 节安全配置

      2.3 Agent 配置文件

      OpenClaw 使用一组 Markdown 文件来定义 AI 的”人格”和”记忆”。根据 官方配置文档

      文件职责
      SOUL.md🎭 定义角色人设、语气风格、行为边界(内部良知)
      AGENTS.md📋 操作指令、安全规则和长期记忆
      IDENTITY.md🏷️ Agent 的名字、氛围、代表 emoji(外部形象)
      USER.md👤 用户的个人资料和称呼偏好
      TOOLS.md🔧 工具使用说明和限制
      BOOTSTRAP.md🚀 首次运行的初始化脚本(执行后自动删除)

      这套配置系统的设计哲学是”关注点分离”——将不同类型的配置分散到不同文件中,便于维护和版本管理。

      💡 SOUL.md vs IDENTITY.md

      • SOUL.md 定义你的 AI 是谁——它的价值观、行为准则
      • IDENTITY.md 定义世界如何体验它——名字、emoji、语气风格

      3. 环境准备:部署前的必要条件

      3.1 硬件要求

      配置项最低要求推荐配置
      CPU1 核2 核+
      内存2 GB4 GB+(官方推荐)
      存储10 GB20 GB+(取决于日志和文件量)
      网络能访问外网稳定的网络连接

      💡 适用设备示例:Mac mini、树莓派 4B+、群晖 NAS、任意 VPS(如 Hetzner、DigitalOcean、Vultr)

      ⚠️ 🆕 内存注意:官方文档指出,使用 Docker 构建镜像(docker build)时,pnpm install 阶段至少需要 2 GB RAM,否则可能触发 OOM-killer(exit 137)。如果你使用预构建镜像(docker pull),则此限制不适用。

      3.2 软件要求

      • ✅ Docker Engine 24.0+ 或 Docker Desktop
      • ✅ Docker Compose v2(已集成在新版 Docker 中)
      • ✅ SSH 客户端(用于远程服务器管理)
      • 🆕 ✅ Node.js 22.12.0+(如使用非 Docker 方式安装;Docker 官方镜像已内置)

      🔴 🆕 关键安全要求:Node.js 22.12.0 最低版本强制

      v2026.2.21 起,OpenClaw 强制要求 Node.js 22.12.0 或更高版本。旧版 Node.js 存在两个已被利用的严重漏洞:

      CVE 编号类型影响
      CVE-2025-59466async_hooks DoS可导致拒绝服务攻击
      CVE-2026-21636Unix Domain Sockets 权限模型绕过可导致沙箱逃逸

      在旧版 Node.js 上运行 OpenClaw 是明确不受支持且不安全的。如果你使用官方 Docker 镜像 ghcr.io/openclaw/openclaw(基于 node:22-bookworm),则无需担心此问题。

      3.3 必备账户

      • LLM API Key:Anthropic(推荐)、OpenAI、OpenRouter、Venice 或其他支持的提供商

      ⚠️ 重要提示:根据 OpenClaw 官方安全文档 的建议,推荐使用 Anthropic Claude Opus 4.5 模型,因为它在识别 prompt injection(提示词注入攻击)方面表现更加出色。


      4. Docker Compose 配置详解

      🆕 重大更新说明:自 2026 年初起,OpenClaw 官方已提供预构建 Docker 镜像标准化的 docker-setup.sh 部署脚本。你现在有两种部署方式可选:

      方式说明推荐场景
      方式 A:官方镜像部署 🆕使用 ghcr.io/openclaw/openclaw 预构建镜像推荐大多数用户
      方式 B:手动构建部署基于 node:22-slim 手动安装(原教程方式)需要深度自定义的高级用户

      🆕 4.0 方式 A:使用官方预构建镜像(推荐)

      OpenClaw 官方现已在 GitHub Container Registry 提供预构建镜像。这是官方推荐的部署方式

      官方镜像地址:

      镜像源地址说明
      🥇 官方(推荐)ghcr.io/openclaw/openclawGitHub Container Registry
      🥈 Docker Hub 镜像alpine/openclaw自动从 ghcr.io 同步(注意:尽管名称含 alpine,实际基于 Debian Bookworm)

      快速部署(使用官方 docker-setup.sh)

      # 克隆仓库
      git clone https://github.com/openclaw/openclaw.git
      cd openclaw
      
      # 使用预构建镜像(而非从源码构建)
      export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
      
      # 运行官方部署脚本
      ./docker-setup.sh

      脚本会自动:

      • 创建 ~/.openclaw(配置目录:记忆、配置、API 密钥)
      • 创建 ~/openclaw/workspace(工作空间目录:Agent 可直接访问的文件)
      • 检测到 OPENCLAW_IMAGE 不是默认值 openclaw:local 时,自动执行 docker pull 而非 docker build

      🆕 官方支持的环境变量

      docker-setup.sh 支持以下环境变量进行自定义:

      变量用途示例
      OPENCLAW_IMAGE使用远程预构建镜像而非本地构建ghcr.io/openclaw/openclaw:latest
      OPENCLAW_SANDBOX启用 Docker 沙箱引导(仅 1/true/yes/on 为启用)1
      OPENCLAW_DOCKER_SOCKET沙箱模式所需的 Docker Socket 路径/var/run/docker.sock
      OPENCLAW_EXTRA_MOUNTS添加额外宿主机绑定挂载/data/shared:/mnt/shared
      OPENCLAW_HOME_VOLUME/home/node 持久化到命名 Volumeopenclaw-home
      OPENCLAW_DOCKER_APT_PACKAGES本地构建时安装额外 apt 包ffmpeg imagemagick
      OPENCLAW_INSTALL_DOCKER_CLI本地构建时安装 Docker CLI(沙箱模式自动设置)1

      4.1 方式 B:手动构建部署(高级用户/深度自定义)

      如果你需要深度自定义(如修改源码、安装特殊依赖),仍然可以使用手动构建方式。

      以下是整合了官方镜像的自定义配置文件:

      services:
        openclaw-gateway:
          image: ghcr.io/openclaw/openclaw:latest
          container_name: openclaw-gateway
          user: 0:0
          tty: true
          stdin_open: true
          volumes:
            - ./openclaw-config:/root/.openclaw
          environment:
            - HOME=/root
            - TZ=Asia/Shanghai
            - NODE_ENV=production
          ports:
            - 18789:18789
          entrypoint:
            - /bin/sh
            - -c
          command:
            - >
              mkdir -p /root/.openclaw/workspace &&
              echo "🦞 Starting OpenClaw Gateway..." &&
              exec node openclaw.mjs gateway --allow-unconfigured --bind lan --port 18789
          healthcheck:
            test:
              - CMD
              - curl
              - -f
              - http://localhost:18789/healthz
            interval: 30s
            timeout: 10s
            retries: 3
            start_period: 40s
          restart: unless-stopped
      
        filebrowser:
          image: filebrowser/filebrowser:latest
          container_name: filebrowser-openclaw
          user: 0:0
          volumes:
            - ./openclaw-config:/srv
            - ./filebrowser-config:/database
          command:
            - --database
            - /database/filebrowser.db
            - --root
            - /srv
          ports:
            - 2081:80
          restart: unless-stopped
      
      networks: {}

      或者完全彻底地自定义:

      version: "3.8"
      services:
        openclaw-gateway:
          image: node:22-slim
          container_name: openclaw-gateway
          tty: true
          stdin_open: true
          volumes:
            - ./data:/work
            - ./openclaw-config:/root/.openclaw
            - openclaw-modules:/usr/local/lib/node_modules  # 持久化已安装的包,避免重复安装
          working_dir: /work
          environment:
            - TZ=Asia/Shanghai
            - NODE_ENV=production
          ports:
            - 18789:18789
          entrypoint: ["/bin/bash", "-c"]
          command:
            - |
              # 只在首次运行时安装(避免 ENOTEMPTY 错误)
              if ! command -v openclaw &> /dev/null; then
                apt-get update && apt-get install -y curl git ca-certificates
                npm install -g openclaw@latest
              fi
      
              # 初始化配置(注意:bind 必须使用关键字,不能用 IP 地址)
              mkdir -p /root/.openclaw
              if [ ! -f /root/.openclaw/openclaw.json ]; then
                echo '{"gateway":{"bind":"lan","port":18789,"controlUi":{"allowInsecureAuth":true}}}' > /root/.openclaw/openclaw.json
              fi
      
              # 直接启动 gateway 进程(Docker 环境不支持 systemd)
              echo "🦞 Starting OpenClaw Gateway..."
              cd /usr/local/lib/node_modules/openclaw
              exec node dist/index.js gateway --bind lan --port 18789
          restart: unless-stopped
      
        filebrowser:
          image: filebrowser/filebrowser:latest
          container_name: filebrowser-openclaw
          user: 0:0
          volumes:
            - ./data:/srv
            - ./openclaw-config:/srv/.openclaw
            - ./filebrowser-config:/database
          command:
            - --database
            - /database/filebrowser.db
            - --root
            - /srv
          ports:
            - 2081:80
          restart: unless-stopped
      
      volumes:
        openclaw-modules:  # 持久化 node_modules,避免每次重启都重新安装
      
      networks: {}

      4.2 关键配置解读

      🔑 --bind 参数说明

      --bind 参数决定了 Gateway 监听的网络接口:

      实际绑定说明适用场景
      loopback127.0.0.1仅本机访问本地开发测试
      lan0.0.0.0所有网络接口局域网内多设备访问(推荐)✅
      tailnetTailscale IP绑定 Tailscale 网络通过 Tailscale VPN 访问
      auto自动选择优先 loopback,失败则 lan自动判断
      custom自定义 IP高级场景特殊网络配置

      ⚠️ 重要--bind 参数只接受上述关键字,不能直接写 IP 地址0.0.0.0127.0.0.1,否则会报 gateway.bind: Invalid input 错误。官方文档明确指出:Docker 默认使用 bind mode 值(lan/loopback),而非主机别名。

      🔑 allowInsecureAuth: true 的作用

      根据 GitHub Issue #1679 和官方安全文档,Control UI 现在默认拒绝不安全的 HTTP 连接。如果你没有配置 HTTPS(如通过 Tailscale Serve),就必须设置 allowInsecureAuth: true 才能正常访问 Web 界面。

      ⚠️ 安全警告:启用 allowInsecureAuth 是一个安全降级。生产环境推荐使用 HTTPS(Tailscale Serve)或仅在 127.0.0.1 上打开 UI。Gateway 的 Web 界面并非为公网暴露设计,必须使用反向代理 + 认证进行保护。

      🔑 openclaw-modules Volume 的作用(仅方式 B)

      这个持久化 Volume 解决了一个常见问题:每次容器重启都重新安装 openclaw 导致的 npm ENOTEMPTY 错误。通过持久化 node_modules 目录,只有首次启动时才需要安装。

      💡 使用官方镜像(方式 A)时不需要此 Volume,因为 OpenClaw 已预装在镜像中。

      🔑 为什么使用 node dist/index.js gateway(仅方式 B)

      Docker 容器默认没有 systemd 作为 init 系统,因此:

      • openclaw gateway 命令会尝试使用 systemd 管理服务,会报错
      • node dist/index.js gateway 直接运行 Node.js 进程,无需 systemd

      💡 使用官方镜像(方式 A)时,镜像的默认 entrypoint 已经正确处理了启动逻辑,无需手动指定。


      5. 完整部署流程

      🆕 5.0 快速部署(使用官方脚本,推荐)

      如果你只需要 OpenClaw 本身(不含 FileBrowser),官方提供了一键部署脚本:

      # 克隆仓库
      git clone https://github.com/openclaw/openclaw.git
      cd openclaw
      
      # 使用预构建镜像
      export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
      
      # 如需启用沙箱模式
      export OPENCLAW_SANDBOX=1
      export OPENCLAW_DOCKER_SOCKET=/var/run/docker.sock
      
      # 运行部署脚本
      ./docker-setup.sh
      
      # 启动
      docker compose up -d

      如果你想要 OpenClaw + FileBrowser 集成部署(本教程的核心价值),请继续按以下步骤操作:

      5.1 第一步:创建项目目录

      # 创建项目主目录
      mkdir -p ~/openclaw
      
      # 进入目录
      cd ~/openclaw
      
      # 创建子目录结构
      mkdir -p data openclaw-config workspace filebrowser-config

      目录结构说明:

      ~/openclaw/
      ├── docker-compose.yml      # Docker Compose 配置文件
      ├── data/                   # 工作目录(可存放项目文件)
      │   └── skills/             # 工作区 Skills(最高优先级)
      ├── openclaw-config/        # OpenClaw 配置持久化
      │   ├── openclaw.json       # 主配置文件
      │   ├── skills/             # 用户 Skills
      │   └── memory/             # 向量索引存储
      ├── workspace/              # 🆕 默认工作空间(官方镜像标准路径)
      │   ├── AGENTS.md           # 操作指令
      │   ├── SOUL.md             # 角色人设
      │   ├── IDENTITY.md         # 身份标识
      │   ├── USER.md             # 用户资料
      │   └── MEMORY.md           # 长期记忆
      └── filebrowser-config/     # FileBrowser 数据库
          └── filebrowser.db

      5.2 第二步:创建配置文件

      将第 4 节中的 docker-compose.yml 内容(方式 A 或方式 B)保存到 ~/openclaw/docker-compose.yml

      5.3 第三步:启动服务

      # 启动所有服务(后台运行)
      docker compose up -d
      
      # 查看启动日志
      docker logs -f openclaw-gateway

      等待看到以下输出,表示启动成功:

      🦞 OpenClaw 2026.3.1 (xxxxxxx)
      
      [gateway] listening on ws://0.0.0.0:18789
      [hooks] loaded 3 internal hook handlers

      ⚠️ 🆕 已知问题(v2026.3.1):当前 v2026.3.1 Docker 镜像内的二进制文件错误地自报为 2026.3.1-beta.1,导致 UI 持续显示”有更新可用”横幅。这是一个纯显示问题,无功能影响。详见 GitHub Issue #32488

      5.4 第四步:首次初始化(onboard)

      OpenClaw 首次运行需要进行初始化配置:

      # 进入容器
      docker exec -it openclaw-gateway bash
      
      # 运行初始化向导
      openclaw onboard

      向导会引导你完成以下配置:

      1. 选择 API Provider:推荐选择 Anthropic 或 OpenRouter
      2. 输入 API Key:填入你的 LLM API 密钥
      3. 选择默认模型:推荐 Claude Opus 4.5(更擅长防御 prompt injection)
      4. Gateway 绑定:选择 LAN 以允许远程访问
      5. 其他选项:按需配置

      完成后退出容器并重启服务:

      exit
      docker restart openclaw-gateway

      5.5 第五步:获取访问令牌

      根据 Simon Willison 的教程,直接访问 http://localhost:18789 会看到需要认证的错误。你需要获取访问令牌:

      # 获取带令牌的 Dashboard URL
      docker compose run --rm openclaw-cli dashboard --no-open

      这将输出一个带 ?token=... 参数的 URL,使用该 URL 访问 Control UI。

      5.6 第六步:验证健康状态 🆕

      启动完成后,可以通过健康检查端点验证服务状态:

      # 检查 Gateway 健康状态
      curl http://localhost:18789/healthz
      
      # 检查 Gateway 就绪状态(适用于 Kubernetes)
      curl http://localhost:18789/readyz

      5.7 第七步:访问 Web 界面

      服务访问地址用途
      🦞 OpenClawhttp://你的IP:18789?token=...AI 助手主界面
      📁 FileBrowserhttp://你的IP:2081文件管理(默认账号:admin/admin)

      6. Skills 系统:扩展你的 AI 助手

      6.1 Skills 的存储位置与优先级

      根据 Skills 官方文档,OpenClaw 会从多个位置加载 Skills,优先级从高到低如下:

      优先级容器内路径宿主机路径说明
      🥇 最高/work/skills/./data/skills/工作区 Skills,仅当前项目可用
      🥈 中/home/node/.openclaw/skills/ 🆕./openclaw-config/skills/用户 Skills,所有项目共享
      🥉 低内置OpenClaw 自带的 bundled Skills
      ⬇️ 最低extraDirs 配置自定义通过配置文件添加的额外目录

      💡 实践建议:将常用的通用 Skills 放在 openclaw-config/skills/,将项目相关的 Skills 放在 data/skills/

      💡 🆕 路径差异注意:使用官方镜像时,配置目录为 /home/node/.openclaw(非 root 用户);使用方式 B 手动构建时为 /root/.openclaw

      6.2 添加 Skills 的三种方法

      方法一:通过 FileBrowser 上传(推荐新手)

      这是最直观的方式,完全不需要使用终端:

      1. 打开 http://你的IP:2081
      2. 使用默认账号登录(admin/admin,请及时修改密码
      3. 进入 .openclaw/skills/ 目录
      4. 点击”新建文件夹”,创建一个以 Skill 名称命名的目录(如 my-assistant
      5. 进入该目录,上传你的 SKILL.md 文件

      方法二:通过 SCP 远程上传

      适合从本地电脑上传文件到远程服务器:

      # 第一步:在服务器上创建 Skill 目录
      docker exec -it openclaw-gateway mkdir -p /home/node/.openclaw/skills/my-skill
      
      # 第二步:从本地上传 SKILL.md(在本地终端执行)
      scp ~/Downloads/SKILL.md 用户名@服务器IP:~/openclaw/openclaw-config/skills/my-skill/

      方法三:通过 ClawdHub 安装社区 Skills

      ClawdHub 是 OpenClaw 的官方公共 Skills 注册表,你可以从中发现、安装和更新社区贡献的 Skills:

      # 进入容器
      docker exec -it openclaw-gateway bash
      
      # 同步所有可用 Skills
      clawdhub sync --all
      
      # 安装特定 Skill
      clawdhub install <skill-name>

      🔴 🆕 严重安全警告:研究人员发现 ClawdHub 上约 20%(~800个)已发布的 Skills 包含恶意代码,包括凭据窃取器和后门程序。安装社区 Skills 前必须:

      • 审查 Skill 的源代码和 SKILL.md 文件
      • 查看作者信誉和社区评价
      • 在沙箱模式下测试新安装的 Skills
      • 避免安装来历不明或没有 GitHub 仓库的 Skills

      6.3 SKILL.md 文件格式规范

      根据 Medium 上的详细教程,每个 Skill 必须包含一个 SKILL.md 文件,其格式如下:

      ---
      # Skill 名称(将成为 /skill-name 斜杠命令)
      name: my-skill
      
      # 描述(AI 根据此描述判断何时自动调用该 Skill)
      # ⚠️ 重要:用引号包裹描述,避免 YAML 解析错误
      description: "这是一个帮助用户进行代码审查的 Skill"
      
      # 是否允许用户通过 /命令 手动调用(默认 true)
      user-invocable: true
      
      # 是否禁止 AI 自动调用(默认 false)
      disable-model-invocation: false
      
      # 可选:声明依赖的二进制文件
      bins:
        - git
        - node
      ---
      
      # My Skill
      
      ## 你的角色
      
      你是一个专业的代码审查助手,擅长发现代码中的潜在问题。
      
      ## 工作流程
      
      1. 首先阅读用户提供的代码
      2. 从安全性、性能、可读性三个维度进行分析
      3. 给出具体的改进建议
      
      ## 输出格式
      
      使用 Markdown 格式输出,包含:
      - 问题摘要
      - 详细分析
      - 修改建议

      ⚠️ YAML Frontmatter 注意事项

      • 用引号包裹 description,避免特殊字符导致解析错误
      • 仅支持单行键值对,不要使用多行值或复杂的 YAML 结构
      • Skill 加载失败通常是因为 bins 中声明的二进制文件未安装

      6.4 调用 Skills

      手动调用:在对话框中输入 /skill名称

      /my-skill

      自动调用:直接描述你的需求,如果你的 Skill 描述写得清晰,OpenClaw 会自动判断并加载对应的 Skill。


      7. Agent 人设配置:打造专属 AI 角色

      7.1 配置文件位置

      Agent 配置文件位于:

      openclaw-config/          # 方式 A 映射到 /home/node/.openclaw
      └── workspace/            # 方式 B 映射到 /root/.openclaw
          ├── SOUL.md           # 角色人设(内部良知)
          ├── AGENTS.md         # 操作指令和安全规则
          ├── IDENTITY.md       # 身份标识(外部形象)
          ├── USER.md           # 用户资料
          ├── TOOLS.md          # 工具使用说明
          └── MEMORY.md         # 长期记忆

      💡 配置提示:根据官方文档,每个配置文件的最大字符数默认为 20,000。超过此限制时,OpenClaw 会记录警告并注入截断的头尾内容。

      7.2 SOUL.md 配置示例

      SOUL.md 是最重要的人设配置文件,它定义了 AI 的”灵魂”——内部良知,指导其行为无论上下文如何:

      # Persona(角色设定)
      
      你是「小龙虾」,一个专业、高效且略带幽默感的技术助手。你的特点是:
      - 回答简洁有力,不说废话
      - 遇到复杂问题会主动拆解步骤
      - 适当使用 emoji 增加亲和力,但不过度
      
      ## Boundaries(行为边界)
      
      - 始终使用中文回复,除非用户要求使用其他语言
      - 涉及敏感话题时保持中立,不发表个人观点
      - 不编造不存在的事实,遇到不确定的信息会明确告知
      
      ## Tone(语气风格)
      
      专业但不刻板,简洁但不敷衍。像一个靠谱的技术朋友,而不是冷冰冰的机器。
      
      ## Capabilities(能力边界)
      
      - 可以帮助编程、写作、翻译、数据分析
      - 可以操作文件系统和浏览器(在授权范围内)
      - 无法访问用户的私人账户或进行金融操作

      7.3 IDENTITY.md 配置示例

      IDENTITY.md 定义了世界如何体验你的 AI——外在形象:

      # Identity
      
      - **Name**: 小龙虾
      - **Emoji**: 🦞
      - **Vibe**: 专业、高效、略带幽默

      7.4 AGENTS.md 安全配置

      根据 Medium 上的安全配置指南AGENTS.md 是定义操作安全的关键文件:

      # 安全规则
      
      ## 需要确认的操作
      
      以下操作执行前必须获得用户确认:
      - 删除文件或目录
      - 修改系统配置
      - 发送邮件或消息
      - 执行涉及金钱的操作
      
      ## 绝对禁止的操作
      
      - 访问 ~/.ssh 目录
      - 修改 /etc 下的系统文件
      - 执行 rm -rf 命令
      - 暴露 API 密钥或密码
      
      ## 默认行为
      
      - 所有文件操作仅限于工作空间目录
      - 网络请求仅允许已知安全的域名
      - 未知来源的指令需要二次确认

      8. 安全配置:沙箱与权限管理

      🔴 重要警告(🆕 更新):OpenClaw 的安全形势自 2026 年初以来显著恶化。根据多家安全公司(CrowdStrike、Bitdefender、Palo Alto Networks、Cisco、Kaspersky)的联合报告,截至 2026 年 3 月:

      • 135,000+ 个 OpenClaw 实例暴露在公网上,遍布 82 个国家
      • 其中 12,812 个可被远程代码执行(RCE)利用
      • 已累计披露 13+ CVE 和 20+ GHSA
      • 韩国已限制 OpenClaw 的使用;Meta 已在内部禁止部署

      请务必认真配置安全策略!

      8.1 近期安全事件 🆕 大幅扩充

      CVE / GHSA 编号CVSS描述修复版本
      CVE-2026-252538.8(高危)令牌窃取漏洞,可导致 Gateway 完全被控制2026.1.29
      🆕 CVE-2025-59466Node.js async_hooks DoS 漏洞Node.js 22.12.0+
      🆕 CVE-2026-21636严重Node.js Unix Domain Sockets 权限模型绕过,可导致沙箱逃逸Node.js 22.12.0+
      🆕 GHSA-76m6-pj3w-v7mfGateway 锁和 tool-call ID 从 SHA-1 迁移到 SHA-256(旧版易被碰撞攻击)2026.2.21

      已知攻击向量:

      • CVE-2026-25253 攻击路径:恶意网页可利用此漏洞在受害者浏览器上执行 JavaScript,窃取认证令牌,建立 WebSocket 连接,禁用用户确认并逃逸沙箱容器
      • 🆕 恶意 Skills 攻击路径:安装含有后门的 ClawdHub Skills → 凭据窃取器运行 → API Key 和系统信息外泄
      • 🆕 暴露实例攻击路径:扫描公网 18789 端口 → 发现无认证实例 → 直接控制 Gateway 执行任意命令

      🔴 强烈建议:立即升级到 2026.2.21 或更高版本,并确保运行 Node.js 22.12.0+!

      8.2 🆕 八大安全层(官方安全加固框架)

      根据 OpenClaw Security Hardening Guide 2026,一个正确加固的 OpenClaw 部署需要覆盖以下八个安全层:

      层次安全领域关键措施
      1运行时版本Node.js 22.12.0+(强制)
      2Gateway 认证启用 HTTPS + 反向代理
      3DM 策略与白名单配置消息渠道访问控制
      4文件系统沙箱限制 Agent 可访问的文件路径
      5Docker 加固非 root 运行、只读文件系统、丢弃权能
      6执行审批流程配置 approval gates
      7SSRF 防护限制 web_fetch 可访问的域名
      8插件信任管理审核 Skills 来源,禁用未知来源

      8.3 OpenClaw 的安全设计哲学

      根据 OpenClaw 官方安全文档,其安全策略遵循以下原则:

      “Identity first: 先确定谁能与 bot 对话(DM 配对/白名单) Scope next: 再确定 bot 能在哪里操作(群组白名单、工具权限、沙箱、设备权限) Model last: 假设模型可能被操纵,设计时确保操纵的影响范围有限”

      8.4 三大风险与缓解措施

      根据 Composio 的安全指南

      风险类型描述缓解措施
      Root 风险主机被攻陷使用非 root 用户运行 🆕 官方镜像已默认使用 node 用户,只读文件系统,丢弃权能
      Agency 风险非预期的破坏性操作启用沙箱,配置审批门控
      Keys 风险凭据泄露将密钥存储在 Gateway 主机的环境变量中,不要放入提示词

      8.5 沙箱模式配置 🆕 更新

      根据官方文档,沙箱模式可以将 Skill 的执行隔离在 Docker 容器中,限制其对宿主系统的影响。

      openclaw.json 中添加:

      {
        "agents": {
          "defaults": {
            "sandbox": {
              "mode": "all",
              "workspaceAccess": "none"
            }
          }
        },
        "mdns": {
          "mode": "off"
        }
      }

      sandbox.mode 可选值:

      说明
      off关闭沙箱(默认,不推荐
      non-main非主会话(群组/频道)在沙箱中运行
      all所有会话都在沙箱中运行(推荐

      🆕 v2026.2.21 沙箱增强

      • 浏览器容器移除默认 --no-sandbox 启动参数,改为显式 opt-in
      • noVNC 观察者会话现在需要密码认证
      • 沙箱浏览器容器默认使用专用 Docker 网络openclaw-sandbox-browser),与主网络隔离
      • 新增 CDP(Chrome DevTools Protocol)入站源范围限制
      • docker-setup.sh 在沙箱前置条件不满足时,会自动将 agents.defaults.sandbox.mode 重置为 off,避免残留的错误沙箱配置

      8.6 高风险工具管理

      官方文档建议限制以下高风险工具的使用:

      • exec(命令执行)
      • browser(浏览器控制)
      • web_fetch / web_search(网络请求)

      推荐做法:

      • 使用小型模型时,启用沙箱并禁用网络相关工具
      • 对于生产环境,使用白名单机制限制可执行的命令
      • 敏感操作前,配置 approval gates(审批门控)
      • 将密钥存储在环境变量中,不要放入提示词
      • 🆕 运行 Docker 容器时使用安全限制参数--read-only--cap-drop=ALL

      8.7 安全检查清单 🆕 更新

      根据 OCSAS 项目(OpenClaw Security Audit Script):

      • ☐ 升级到最新版本(2026.2.21+,推荐 2026.3.1)
      • ☐ 🆕 确认 Node.js 版本 ≥ 22.12.0(node --version
      • ☐ 配置 AGENTS.md 安全规则
      • ☐ 启用沙箱模式
      • ☐ 关闭 mDNS 发现(mdns.mode: "off"
      • ☐ 使用 HTTPS 或 Tailscale Serve
      • ☐ 🆕 配置反向代理 + 认证(Gateway Web 界面不应直接暴露在公网)
      • ☐ 🆕 审核所有已安装的 ClawdHub Skills
      • ☐ 🆕 检查 DOCKER-USER 防火墙策略(防止端口绕过 iptables 规则直接暴露)
      • ☐ 运行 openclaw doctor 检查配置
      • ☐ 定期审计访问日志

      9. 日常运维命令手册

      以下是你在日常维护中最常用的命令,建议收藏备用。

      9.1 容器管理

      # 启动服务
      docker compose up -d
      
      # 停止服务
      docker compose down
      
      # 重启服务
      docker compose restart
      
      # 查看运行状态
      docker compose ps
      
      # 查看实时日志
      docker logs -f openclaw-gateway

      9.2 Gateway 管理

      ⚠️ Docker 环境特别说明:由于 Docker 容器没有 systemd,openclaw gateway restart/stop/start 等命令无法在容器中使用,会报 systemctl --user unavailable 错误。请使用 docker restart 替代。

      # 查看 Gateway 状态
      docker exec -it openclaw-gateway openclaw gateway status
      
      # 重启 Gateway(Docker 环境正确方式)
      docker restart openclaw-gateway
      
      # 查看日志
      docker logs -f openclaw-gateway

      🆕 9.3 健康检查

      v2026.3.1 起,Gateway 内置了 HTTP 健康检查端点:

      # 基础健康检查
      curl http://localhost:18789/health
      curl http://localhost:18789/healthz
      
      # 就绪检查(适用于 Kubernetes liveness/readiness 探针)
      curl http://localhost:18789/ready
      curl http://localhost:18789/readyz

      如果你使用官方镜像(方式 A),Docker HEALTHCHECK 已自动配置。可以通过以下命令查看健康状态:

      # 查看容器健康状态
      docker inspect --format='{{.State.Health.Status}}' openclaw-gateway

      9.4 终端直接对话

      在 Docker 环境中,可以使用 --local 参数直接在终端与 AI 对话:

      # 进入容器
      docker exec -it openclaw-gateway bash
      
      # 发送消息(本地模式,不需要 systemd)
      openclaw agent --message "你好" --local
      
      # 带思考模式
      openclaw agent --message "帮我分析这个问题" --thinking high --local

      9.5 日志与诊断

      # 运行健康检查
      docker exec -it openclaw-gateway openclaw doctor
      
      # 自动修复常见问题
      docker exec -it openclaw-gateway openclaw doctor --fix
      
      # 检查通道状态
      docker exec -it openclaw-gateway openclaw channels status --probe
      
      # 安全审计
      docker exec -it openclaw-gateway openclaw security audit

      9.6 版本更新 🆕 更新

      方式 A:使用官方镜像更新(推荐)

      # 拉取最新镜像
      docker compose pull
      
      # 重新创建容器(数据通过 Volume 保留)
      docker compose up -d
      
      # 验证版本
      docker exec -it openclaw-gateway openclaw --version

      方式 B:手动构建方式更新

      # 方法一:重建容器(推荐,确保干净更新)
      docker compose down -v
      docker compose up -d
      
      # 方法二:进入容器手动更新
      docker exec -it openclaw-gateway bash
      npm install -g openclaw@latest
      exit
      docker restart openclaw-gateway

      💡 根据 v2026.1.29 更新说明,新版本会自动迁移旧配置路径。

      9.7 Skills 管理

      # 创建新 Skill 目录
      docker exec -it openclaw-gateway mkdir -p /home/node/.openclaw/skills/新skill名称
      
      # 列出已安装的 Skills
      docker exec -it openclaw-gateway openclaw skills list
      
      # 查看特定 Skill 信息
      docker exec -it openclaw-gateway openclaw skills info <skill-name>
      
      # 检查 Skill 配置
      docker exec -it openclaw-gateway openclaw skills check
      
      # 从 ClawdHub 同步 Skills
      docker exec -it openclaw-gateway clawdhub sync --all

      9.8 完全重置

      ⚠️ 危险操作:以下命令会删除所有配置和数据!

      # 停止并删除容器和 Volume
      docker compose down -v
      
      # 删除所有配置(不可恢复!)
      rm -rf openclaw-config/*
      
      # 重新启动
      docker compose up -d
      
      # 重新初始化
      docker exec -it openclaw-gateway openclaw onboard

      10. 故障排查指南

      10.1 远程无法访问

      排查清单:

      • ☐ 确认 --bind lan 已设置
      • ☐ 确认 allowInsecureAuth: true 已配置
      • ☐ 检查服务器防火墙是否放行 18789 端口
      • ☐ 确认 docker-compose.yml 中端口映射正确(18789:18789
      • ☐ 确认日志中显示 listening on ws://0.0.0.0:18789 而非 127.0.0.1
      • ☐ 确认使用了带 ?token=... 参数的 URL

      一键修复网络绑定:

      docker exec openclaw-gateway sed -i 's/"bind":[^,}]*/"bind": "lan"/g' /root/.openclaw/openclaw.json && docker restart openclaw-gateway

      10.2 npm 警告信息(仅方式 B)

      警告信息:

      npm warn deprecated gauge@4.0.4: This package is no longer supported.
      npm warn deprecated tar@6.2.1: Old versions of tar are not supported...

      处理方式:这些是依赖包的版本警告,不影响使用,可以忽略。使用官方镜像(方式 A)则不会遇到此问题。

      🆕 10.3 v2026.3.1 版本号显示异常

      症状:UI 持续显示”有更新可用”横幅,即使已是最新版本。

      原因:v2026.3.1 和 v2026.3.1-beta.1 的 Docker 镜像 digest 相同,但内置二进制文件自报为 2026.3.1-beta.1。UI 将此字符串与 GitHub latest release tag 比较后误判存在更新。

      处理方式:这是纯显示问题,无功能影响。等待官方在下一版本修复即可。详见 GitHub Issue #32488

      10.4 Skill 加载失败

      根据官方文档,Skill 加载失败通常有以下原因:

      1. YAML 解析错误description 中包含特殊字符,用引号包裹
      2. 依赖缺失bins 中声明的二进制文件未安装
      3. 路径冲突:多个 Skill 使用相同名称
      # 检查 Skill 配置
      docker exec -it openclaw-gateway openclaw skills check
      
      # 查看详细错误
      docker exec -it openclaw-gateway openclaw skills info <skill-name>

      10.5 安全漏洞警告

      如果 openclaw doctor 报告安全警告:

      # 查看详细安全建议
      docker exec -it openclaw-gateway openclaw security audit
      
      # 应用推荐的安全配置
      docker exec -it openclaw-gateway openclaw doctor --fix

      🆕 10.6 Docker 构建 OOM(内存不足)

      症状docker build 过程中进程被杀死,退出码 137。

      原因pnpm install 阶段内存不足(至少需要 2 GB)。

      解决方案

      • 增加主机 swap 空间:sudo fallocate -l 2G /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
      • 或改用预构建镜像(方式 A),完全避免本地构建

      11. 进阶资源与社区

      11.1 官方资源

      资源链接说明
      🏠 官网openclaw.ai官方主页
      📚 文档docs.openclaw.ai完整技术文档
      💻 GitHubgithub.com/openclaw/openclaw源代码仓库(250k+ ⭐ 🆕
      📦 Skills 仓库github.com/openclaw/skills官方 Skills 集合
      🏪 ClawdHubclawdhub.com社区 Skills 注册表(⚠️ 注意安全风险)
      📦 npmnpmjs.com/package/openclawnpm 包
      🆕 🐳 Docker 镜像ghcr.io/openclaw/openclaw官方 Docker 镜像
      🆕 🐳 Docker Hubhub.docker.com/r/alpine/openclawDocker Hub 镜像(自动同步)

      11.2 重要文档入口


      📋 命令速查表

      操作命令
      启动服务docker compose up -d
      停止服务docker compose down
      重启服务docker compose restart
      查看日志docker logs -f openclaw-gateway
      进入容器docker exec -it openclaw-gateway bash
      初始化配置docker exec -it openclaw-gateway openclaw onboard
      查看状态docker exec -it openclaw-gateway openclaw gateway status
      重启 Gatewaydocker restart openclaw-gateway ⚠️
      健康检查docker exec -it openclaw-gateway openclaw doctor
      🆕 HTTP 健康检查curl http://localhost:18789/healthz
      🆕 就绪检查curl http://localhost:18789/readyz
      自动修复docker exec -it openclaw-gateway openclaw doctor --fix
      安全审计docker exec -it openclaw-gateway openclaw security audit
      🆕 更新版本(方式 A)docker compose pull && docker compose up -d
      更新版本(方式 B)docker compose down -v && docker compose up -d
      列出 Skillsdocker exec -it openclaw-gateway openclaw skills list
      检查 Skillsdocker exec -it openclaw-gateway openclaw skills check
      同步 Skillsdocker exec -it openclaw-gateway clawdhub sync --all
      获取访问令牌docker compose run --rm openclaw-cli dashboard --no-open
      终端直接对话docker exec -it openclaw-gateway openclaw agent --message "你好" --local
      🆕 查看容器健康状态docker inspect --format='{{.State.Health.Status}}' openclaw-gateway

      ⚠️ 注意:Docker 环境中 openclaw gateway restart 无法使用,请用 docker restart openclaw-gateway 替代


      🆕 更新日志

      本文最后更新于 2026 年 3 月 7 日。以下是相对于初版(2026 年 2 月初)的主要变更:

      变更说明
      🐳 新增官方 Docker 镜像部署方式ghcr.io/openclaw/openclaw,不再需要手动 npm install
      ⭐ GitHub Stars 更新135,000+ → 250,000+(已超越 React)
      🔒 Node.js 最低版本强制v2026.2.21 起要求 Node.js 22.12.0+(CVE-2025-59466 / CVE-2026-21636)
      🛡️ 安全章节大幅扩充新增 GHSA-76m6-pj3w-v7mf、ClawdHub 恶意 Skills、八大安全层框架
      🏥 新增健康检查端点/health/healthz/ready/readyz
      🐛 v2026.3.1 已知问题版本号显示为 beta.1 的 bug
      🧱 沙箱安全增强noVNC 认证、专用 Docker 网络、浏览器 –no-sandbox 移除
      📦 推荐版本更新2026.2.1 → 2026.3.1
      🏗️ 基础镜像更新node:22-slimnode:22-bookworm

  • 抱歉,回覆主題必需先登入。