Appearance
生产环境部署指南 (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 启动服务
- 生成随机 Token:
openssl rand -hex 32 - 创建
.env文件:OPENCLAW_AUTH_TOKEN=你的Token - 启动:
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。
- 在宿主机安装 Tailscale:
curl -fsSL https://tailscale.com/install.sh | sh - 启动 Tailscale:
tailscale up - 获取 Tailscale IP:
tailscale ip -4 - 在本地机器上使用
openclaw connect <Tailscale_IP>:18789连接。
这种方式最安全,因为 Gateway 端口完全不对公网开放。