Skip to content

生产环境部署指南 (Production Deployment)

本文档将指导你在生产环境(如 VPS、云服务器)中部署 OpenClaw,涵盖 Docker、Docker Compose、Caddy 反向代理以及 Tailscale 内网穿透。

1. 硬件要求 (Hardware)

OpenClaw 是轻量级的 Node.js 运行时,但 LLM 和技能可能消耗大量资源。

  • CPU: 2核 (建议 x86-64 或 ARM64)
  • Memory:
    • 2GB: 仅运行 Gateway 和简单 Skill。
    • 4GB: 运行大量 Session 和并发 Skill。
    • 8GB+: 如果需要在本地运行 Llama 3 (Ollama),建议 16GB。
  • Disk: SSD 20GB+ (用于存储 Logs 和 Workspace)。
  • Network:
    • Public IP: 必须有一个公网 IP (用于 Telegram Webhook)。
    • Firewall: 开放 443 端口 (HTTPS) 和 UDP 41641 (Tailscale)。

2. Docker Compose 部署 (推荐)

最稳健的生产环境部署方式是使用 docker-compose

2.1 创建 docker-compose.yml

yaml
version: '3.8'

services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    restart: always
    user: root # 某些 Skill 需要 root 权限 (如 apt install)
    environment:
      - OPENCLAW_GATEWAY_PORT=18789
      - OPENCLAW_AUTH_TOKEN=${OPENCLAW_AUTH_TOKEN} # 你的 Gateway Token
      - TZ=Asia/Shanghai
    volumes:
      - ./data:/root/.openclaw # 持久化配置和 workspace
      - /var/run/docker.sock:/var/run/docker.sock # 允许 OpenClaw 管理 Docker (可选)
    ports:
      - "127.0.0.1:18789:18789" # 仅绑定到本地,不暴露公网
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  caddy:
    image: caddy:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    depends_on:
      - openclaw

volumes:
  caddy_data:
  caddy_config:

2.2 配置 Caddy 反向代理

OpenClaw 默认不处理 HTTPS,建议使用 Caddy 自动申请证书并反向代理。

创建 Caddyfile

caddyfile
your-domain.com {
    reverse_proxy openclaw:18789 {
        header_up Host {host}
        header_up X-Real-IP {remote}
        header_up X-Forwarded-For {remote}
        header_up X-Forwarded-Proto {scheme}
    }
    
    # 可选:开启 Basic Auth 保护 Gateway
    basicauth / {
        admin $2a$14$P/K.... # 使用 caddy hash-password 生成
    }
}

2.3 启动服务

  1. 生成随机 Token: openssl rand -hex 32
  2. 创建 .env 文件: OPENCLAW_AUTH_TOKEN=你的Token
  3. 启动: docker-compose up -d

3. 安全加固 (Security Hardening)

3.1 沙箱权限控制 (Tool Policy)

OpenClaw 默认允许所有 Tool 执行。在生产环境中,你应该限制高危操作。

编辑 data/openclaw.json

json
{
  "tools": {
    "policy": {
      "exec": {
        "allow": ["ls", "cat", "grep", "docker ps"], // 仅允许特定命令
        "deny": ["rm -rf", "reboot", "shutdown"] // 禁止危险命令
      },
      "write": {
        "deny": ["/etc/*", "/var/*"] // 禁止写入系统目录
      }
    }
  }
}

3.2 Tailscale 内网穿透 (VPN Access)

如果你不想把 OpenClaw 暴露在公网,可以使用 Tailscale。

  1. 在宿主机安装 Tailscale: curl -fsSL https://tailscale.com/install.sh | sh
  2. 启动 Tailscale: tailscale up
  3. 获取 Tailscale IP: tailscale ip -4
  4. 在本地机器上使用 openclaw connect <Tailscale_IP>:18789 连接。

这种方式最安全,因为 Gateway 端口完全不对公网开放。


👉 下一步:技能开发实战

Released under the MIT License.