OpenClaw 自托管完全指南:掌控你的 AI 助手

在当今数据安全和隐私日益重要的时代,自托管成为越来越多企业和个人的选择。OpenClaw 作为开源项目,提供了完整的自托管支持,让你能够完全掌控自己的 AI 助手和数据。本文将详细介绍如何自托管 OpenClaw,以及为什么你应该考虑自托管。

什么是自托管?

自托管(Self-hosting)是指在自己的服务器或设备上运行软件,而不是使用第三方提供的云服务。对于 OpenClaw 来说,自托管意味着:

  • 数据完全本地化:所有对话数据、技能配置、用户信息都存储在你的服务器上
  • 完全控制:可以自由定制功能、界面和行为
  • 无服务费:除了服务器成本外,无需支付任何使用费用
  • 离线可用:在有网络隔离的环境中也能运行

为什么选择自托管?

1. 数据隐私与安全

  • 不将敏感数据发送给第三方
  • 符合数据合规要求(如 GDPR)
  • 防止数据泄露风险
  • 自主管理数据备份

2. 成本控制

方案 成本 适用场景
云服务 API 按调用付费 小规模测试
自托管(小规模) 服务器成本 个人/小团队
自托管(中规模) 服务器+运维 中型企业
自托管(大规模) 集群+专业团队 大型组织

3. 定制化需求

  • 深度定制 AI 行为
  • 集成内部系统
  • 自定义工作流
  • 特殊功能需求

4. 可靠性保证

  • 不依赖第三方服务可用性
  • 可自行选择 SLA
  • 完全掌控更新节奏

自托管方案选择

方案一:个人电脑/服务器

适合:个人用户、小团队

最低配置: - CPU: 2 核心 - 内存: 4 GB - 存储: 20 GB - 系统: Ubuntu 20.04 / macOS 12

推荐配置: - CPU: 4 核心 - 内存: 8 GB - 存储: 100 GB SSD - 系统: Ubuntu 22.04 LTS

方案二:云服务器

适合:需要远程访问的用户

推荐云服务商: - AWS EC2 - Google Cloud Compute - 阿里云 ECS - 腾讯云 CVM - DigitalOcean Droplet

推荐配置(入门): - 实例:t3.medium (2C 4G) - 存储:50 GB SSD - 带宽:100 Mbps

方案三:Docker 容器

适合:追求快速部署和易于管理的用户

推荐使用 Docker Compose 或 Kubernetes 进行编排。

方案四:Kubernetes 集群

适合:大规模生产环境

  • 多节点高可用
  • 自动伸缩
  • 负载均衡

开始自托管

方式一:Docker 自托管

1. 安装 Docker

# Ubuntu/Debian
curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker
sudo systemctl start docker

# macOS
brew install --cask docker

2. 创建配置文件

创建 openclaw 目录:

mkdir -p ~/openclaw/{config,data,logs}
cd ~/openclaw

创建 docker-compose.yml

version: '3.8'

services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - LLM__PROVIDER=${LLM_PROVIDER:-openai}
      - LLM__API_KEY=${LLM_API_KEY}
      - LLM__MODEL=${LLM_MODEL:-gpt-4}
      - ADMIN_USER_IDS=${ADMIN_USER_IDS}
    volumes:
      - ./config:/app/config
      - ./data:/app/data
      - ./logs:/app/logs
    healthcheck:
      test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  # 可选:Redis 用于缓存和会话存储
  redis:
    image: redis:7-alpine
    container_name: openclaw-redis
    restart: unless-stopped
    volumes:
      - redis-data:/data

volumes:
  redis-data:

创建 .env 文件:

# LLM 配置
LLM_PROVIDER=openai
LLM_API_KEY=sk-your-openai-key
LLM_MODEL=gpt-4

# 管理员
ADMIN_USER_IDS=your-user-id

# Telegram(可选)
TELEGRAM_BOT_TOKEN=your-telegram-token

# Discord(可选)
DISCORD_BOT_TOKEN=your-discord-token

# 飞书(可选)
FEISHU_APP_ID=your-feishu-app-id
FEISHU_APP_SECRET=your-feishu-secret

# Gmail(可选)
GMAIL_CLIENT_ID=your-client-id
GMAIL_CLIENT_SECRET=your-client-secret

3. 启动服务

docker-compose up -d

查看日志:

docker-compose logs -f

4. 配置反向代理(推荐)

使用 Nginx 反向代理,添加 SSL:

server {
    listen 443 ssl http2;
    server_name your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

方式二:直接安装

1. 安装 Node.js

# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# 验证
node --version
npm --version

2. 安装 PM2

PM2 是 Node.js 进程管理器:

sudo npm install -g pm2

3. 部署应用

# 克隆项目
git clone https://github.com/openclaw/your-repo.git
cd openclaw

# 安装依赖
npm install

# 复制配置
cp config/app.example.yaml config/app.yaml
cp .env.example .env

# 编辑配置
nano config/app.yaml
nano .env

# 构建
npm run build

# 使用 PM2 启动
pm2 start dist/index.js --name openclaw

# 设置开机自启
pm2 startup
pm2 save

4. 配置系统服务

创建 systemd 服务:

sudo nano /etc/systemd/system/openclaw.service

内容:

[Unit]
Description=OpenClaw AI Agent
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/openclaw
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

数据管理

数据目录结构

~/openclaw/
├── config/          # 配置文件
│   ├── app.yaml
│   ├── skills/
│   └── prompts/
├── data/            # 应用数据
│   ├── memory/      # 用户记忆
│   ├── skills/      # 技能数据
│   └── cache/       # 缓存
├── logs/            # 日志文件
└── backups/         # 备份目录

备份策略

自动备份脚本

创建 backup.sh

#!/bin/bash
BACKUP_DIR=~/openclaw/backups
DATE=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份配置和数据
tar -czf $BACKUP_DIR/openclaw_$DATE.tar.gz \
  ~/openclaw/config \
  ~/openclaw/data

# 删除 7 天前的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

echo "Backup completed: openclaw_$DATE.tar.gz"

添加到 Cron:

crontab -e
# 每天凌晨 3 点执行备份
0 3 * * * ~/openclaw/backup.sh

安全配置

1. 防火墙配置

# 只允许必要端口
sudo ufw allow 22    # SSH
sudo ufw allow 80    # HTTP
sudo ufw allow 443   # HTTPS
sudo ufw enable

2. SSL 证书

使用 Let's Encrypt 免费证书:

# 安装 Certbot
sudo apt install certbot python3-certbot-nginx

# 获取证书
sudo certbot --nginx -d your-domain.com

# 自动续期
sudo certbot renew --dry-run

3. 环境变量安全

不要在 .env 中存储敏感信息,使用密钥管理器或 Docker secrets。

4. 访问控制

# config/app.yaml
security:
  # IP 白名单
  allowedIPs:
    - "127.0.0.1"
    - "10.0.0.0/8"

  # 认证
  authentication:
    enabled: true
    type: "basic"  # basic, oauth, jwt

  # 速率限制
  rateLimit:
    windowMs: 60000
    max: 100

监控与维护

1. 日志管理

# 使用 journalctl(systemd)
sudo journalctl -u openclaw -f

# 使用 PM2
pm2 logs openclaw

# Docker
docker logs openclaw

2. 性能监控

推荐工具: - PM2 Plus:PM2 的云监控服务 - Prometheus + Grafana:开源监控方案 - New Relic:商业监控解决方案

3. 自动更新

# Docker 方式
docker-compose pull
docker-compose up -d

# 直接安装
git pull
npm install
npm run build
pm2 restart openclaw

故障排查

常见问题

问题 原因 解决方案
无法启动 端口占用 检查端口或修改配置
API 调用失败 网络/Key 问题 检查网络和 API Key
内存溢出 配置过高 调整 Node.js 内存限制
磁盘空间不足 日志/数据过多 清理日志和数据

调试模式

# 开发模式运行
npm run dev

# Docker 开发模式
docker-compose -f docker-compose.dev.yml up

扩展阅读

高可用部署

对于企业级应用,可以考虑: - 多节点负载均衡 - 数据库主从复制 - 缓存层(Redis) - CDN 加速静态资源

Kubernetes 部署

可以使用官方提供的 Helm Chart:

helm repo add openclaw https://charts.openclaw.dev
helm install my-openclaw openclaw/openclaw

总结

自托管 OpenClaw 为你提供了完全的数据控制权和定制灵活性。通过本文的指南,你应该能够:

  • ✅ 选择适合的自托管方案
  • ✅ 使用 Docker 或直接安装完成部署
  • ✅ 配置数据备份和安全策略
  • ✅ 建立监控和维护机制

无论你是个人用户还是企业团队,自托管都能满足你对数据安全和可控性的需求。开始你的自托管之旅吧!


相关阅读: - OpenClaw 安装指南 - OpenClaw 配置详解 - OpenClaw Docker 部署 - OpenClaw 最佳实践