OpenClaw 自托管完全指南:掌控你的 AI 助手
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 最佳实践