openclaw

关注公众号 jb51net

关闭
AI > openclaw >

OpenClaw安装部署指南之npm、Docker与源码三种模式详解

模界

前言

在生产环境部署 AI Agent 网关,选择合适的交付模式远比单纯的"能跑起来"更重要。本文从资源隔离性、运维复杂度、安全边界三个维度,深度解析 OpenClaw 的三种官方部署方案。

一、环境要求与前置检查

在正式部署前,需要确认目标机器满足以下基线配置。OpenClaw 采用 Node.js 运行时架构,网关进程本身轻量,但沙箱执行环境与向量内存操作对资源有特定要求。

1.1 基础硬件配置

部署场景CPU内存存储网络
开发测试4核+2GB(最低)
4GB(建议)
20GB SSD出站 443 端口开放
生产单节点6核+8GB~16GB100GB+ NVMe稳定公网/IP白名单
高可用集群8核+32GB持久化卷(PVC)内网 10Gbps+

关键提示:若启用浏览器自动化(Playwright)或本地模型推理(Ollama/Llama.cpp),内存需求需额外增加 4GB~8GB 缓冲。

1.2 软件依赖清单

执行前置检查命令:

# 验证 Node 版本
node -v  # 需输出 v22.x.x
# 验证 ulimit(Docker 方案需关注)
ulimit -n  # 建议 > 65535,避免高并发句柄耗尽

二、部署方案选型决策树

OpenClaw 提供三种官方支持的部署路径,分别对应不同的运维哲学:

+---------------------------------------------------+
|               OpenClaw 部署选型决策               |
+---------------------------------------------------+
                          |
          +---------------+---------------+
          |                               |
   追求极简快速?                  需要长期运维?
          |                               |
    一键脚本安装                   Docker 部署
   (install.sh)                   (Compose)
          |                               |
   +------+------+            +-----------+-----------+
   |             |            |                       |
本地开发    快速验证     全容器化模式      Host+Sandbox 混合模式
(npm)       (npm)       (推荐生产)           (进阶隔离)

选型建议:

三、方案一:一键脚本安装(极速体验)

官方提供的自动化脚本适用于绝大多数 Linux 发行版(Ubuntu 22.04/Debian 12/RHEL 9),封装了 Node 环境检测、依赖安装与初始化引导。

3.1 执行流程拆解

脚本执行逻辑并非简单的"下载-解压",而是包含环境探测与自适应修复:

curl -fsSL https://openclaw.ai/install.sh | bash

脚本内部执行阶段:

+----------------+
|  阶段1: 环境探测  |
|  - 检查 Node 版本 |
|  - 检测包管理器   |
|  - 验证权限      |
+--------+-------+
         |
         v
+--------+-------+
|  阶段2: 依赖安装  |
|  - 若缺 Node 22 |
|    自动调用 n 或  |
|    nvm 安装     |
+--------+-------+
         |
         v
+--------+-------+
|  阶段3: 二进制安装 |
|  - npm install  |
|  - 生成 CLI 包装器|
+--------+-------+
         |
         v
+--------+-------+
|  阶段4: 初始化引导 |
|  - 提示 onboard  |
|  - 创建 systemd   |
|    服务(可选)   |
+----------------+

3.2 安装后验证

# 检查 CLI 可用性
openclaw --version
# 查看网关守护进程状态(若启用)
systemctl status openclaw-gateway

版本升级策略:
OpenClaw 采用语义化版本(Semver),但注意 0.x 版本期间可能存在破坏性变更。生产环境建议锁定 minor 版本:

# 安全升级(仅 patch 版本)
npm update -g openclaw
# 大版本迁移(需查阅 Migration Guide)
npm install -g openclaw@0.4.0

4.2 进程保活配置

npm 模式默认前台运行,生产环境需配合进程管理器:

PM2 方案(推荐):

npm install -g pm2
pm2 start "openclaw gateway" --name openclaw-gw
pm2 startup
pm2 save

Systemd 方案:
手动创建服务单元文件 /etc/systemd/system/openclaw.service,指定 User 与 WorkingDirectory,避免 root 运行风险。

五、方案三:Docker Compose 部署(生产级)

Docker 方案是生产环境的首选,核心优势在于环境一致性与安全沙箱的原生支持。官方提供两种 Compose 配置模式,对应不同的隔离级别。

5.1 架构模式对比

模式 A:全容器化(Full Containerization)

所有组件(Gateway、CLI、Sandbox)运行于容器网络内部。

+--------------------------------------------------+
|                   Docker Host                    |
|  +---------------------------------------------+ |
|  |           Docker Network: openclaw          | |
|  |  +----------------+    +------------------+ | |
|  |  | openclaw-cli   |    | openclaw-gateway | | |
|  |  | (配置管理)      |    | (核心网关)        | | |
|  |  +----------------+    +------------------+ | |
|  |           |                    |            | |
|  |           v                    v            | |
|  |  +----------------------------------------+ | |
|  |  |   Sandbox 容器(代码执行隔离)            | | |
|  |  |   - 无网络访问(可选)                    | | |
|  |  |   - 只读文件系统(除 /tmp)               | | |
|  |  +----------------------------------------+ | |
|  +---------------------------------------------+ |
+--------------------------------------------------+

适用场景:公有云 VPS、团队共享开发机、CI/CD 流水线。

模式 B:Host Gateway + Sandbox 容器(混合隔离)

网关进程直接运行于宿主机(或主容器),仅将危险操作(代码执行、浏览器自动化)放入临时沙箱容器。

+--------------------------------------------------+
|                   Docker Host                    |
|                                                  |
|  +------------------+      +------------------+  |
|  | openclaw-gateway |      |   Sandbox Pool   |  |
|  | (Host Network)   |<---->|  +------------+  |  |
|  | PID 1 (宿主机)    |      |  | Sandbox #1 |  |  |
|  +------------------+      |  +------------+  |  |
|           |                |  +------------+  |  |
|           v                |  | Sandbox #2 |  |  |
|  +------------------+      |  +------------+  |  |
|  |   Control UI     |      +------------------+  |
|  |   (Port 18789)   |                            |
|  +------------------+                            |
+--------------------------------------------------+

架构优势:

5.2 部署实操步骤

官方提供自动化设置脚本 docker-setup.sh,建议先 clone 仓库再执行,便于后续调优:

git clone https://github.com/openclaw/openclaw.git
cd openclaw
# 执行自动化构建与配置
./docker-setup.sh

脚本执行关键动作:

version: '3.8'
services:
  openclaw-gateway:
    build: .
    ports:
      - "18789:18789"
    volumes:
      - ~/.openclaw:/home/node/.openclaw
      - ~/openclaw/workspace:/home/node/workspace
    environment:
      - NODE_ENV=production
      - SANDBOX_ENABLED=true
    restart: unless-stopped

启动命令:

# 初始化(仅需一次)
docker compose run --rm openclaw-cli onboard
# 后台启动网关
docker compose up -d openclaw-gateway
# 查看实时日志
docker compose logs -f gateway

5.3 权限与持久化注意事项

官方镜像以非 root 用户 node(UID 1000)运行,若宿主机挂载目录权限不符,会导致配置写入失败:

# Linux 宿主机需调整目录归属
sudo chown -R 1000:1000 ~/.openclaw ~/openclaw/workspace
# 或设置 ACL(若多用户共享)
setfacl -R -m u:1000:rwx ~/.openclaw

六、初始化向导与配置生成

无论采用哪种部署方式,首次运行都需执行 openclaw onboard,这是一个交互式配置流程,生成核心配置文件 ~/.openclaw/config.json。

6.1 向导流程解析

+-------------------+
|   openclaw onboard |
+---------+---------+
          |
          v
+---------+---------+
| 1. 选择 AI 提供商  |
|    - OpenAI       |
|    - Anthropic    |
|    - OpenRouter   |
|    - 本地模型      |
+---------+---------+
          |
          v
+---------+---------+
| 2. 配置 API 密钥   |
|    (加密存储)       |
+---------+---------+
          |
          v
+---------+---------+
| 3. 设置网关凭证    |
|    - Admin Token  |
|    - 端口 (18789) |
+---------+---------+
          |
          v
+---------+---------+
| 4. 选择通信通道    |
|    - Telegram     |
|    - WhatsApp     |
|    - Discord      |
|    - Webhook      |
+---------+---------+
          |
          v
+---------+---------+
| 5. 生成配置文件    |
|    与系统服务      |
+-------------------+

6.2 关键配置项说明

模型路由配置(config.json 节选):

{
  "models": {
    "default": "gpt-4",
    "providers": [
      {
        "name": "openai",
        "apiKey": "${OPENAI_API_KEY}",
        "baseURL": "https://api.openai.com/v1"
      },
      {
        "name": "local-llama",
        "apiKey": "sk-no-key",
        "baseURL": "http://host.docker.internal:11434/v1"
      }
    ]
  },
  "gateway": {
    "port": 18789,
    "sandbox": {
      "enabled": true,
      "image": "openclaw/sandbox:latest"
    }
  }
}

环境变量覆盖:生产环境建议通过 .env 或 Docker Secrets 注入敏感信息,避免硬编码于 JSON 文件。

七、生产环境加固建议

从架构安全角度,部署完成后建议实施以下加固措施:

7.1 网络层安全

7.2 运行时安全

7.3 监控与备份

八、故障排查速查表

现象可能原因排查命令
onboard 卡住API Key 验证失败curl -I https://api.openai.com 检查出站网络
Docker 启动后 1008 错误远程访问配置未启用检查 config.jsonallowInsecureAuth(仅内网可临时开启)
权限被拒绝 (EACCES)UID 1000 无权访问挂载卷ls -n ~/.openclaw 确认归属
内存溢出 (OOM)Sandbox 未限制内存Docker 中设置 deploy.resources.limits.memory
端口冲突18789 被占用`netstat -tulnpgrep 18789`

九、总结

OpenClaw 的三级部署体系覆盖了从个人极客到企业级生产的全场景:

到此这篇关于OpenClaw安装部署指南之npm、Docker与源码三种模式详解的文章就介绍到这了,更多相关OpenClaw安装部署模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!