Skip to main content

🖥️ 服务器部署

将 YingClaw 部署到远程服务器,实现 24/7 不间断运行,配合定时任务和消息通道,打造全天候 AI 助手。


部署方式概览

方式适用场景运维成本
🐳 Docker 部署标准化容器环境
📦 直接部署个人 VPS、物理机
☁️ 云服务集成托管云服务最低

环境准备

服务器最低配置

项目最低要求推荐配置
CPU1 核2 核及以上
内存2GB4GB 及以上
磁盘10GB20GB SSD
系统Ubuntu 20.04+ / Debian 11+Ubuntu 22.04 LTS
Node.js18+20 LTS
网络公网访问(用于 API)稳定带宽

前置安装

# Ubuntu / Debian
apt update
apt install -y nodejs npm git curl

# 确认版本
node -v # ≥ 18
npm -v

Docker 部署(推荐)

1. 拉取镜像

docker pull yingclaw/yingclaw:latest

2. 编写 docker-compose.yml

version: '3.8'
services:
yingclaw:
image: yingclaw/yingclaw:latest
container_name: yingclaw
restart: unless-stopped
volumes:
- ./workspace:/home/yingclaw/workspace
- ./config:/home/yingclaw/config
- ./.env:/home/yingclaw/.env
environment:
- TZ=Asia/Shanghai
ports:
- '3000:3000'

3. 启动

docker-compose up -d

4. 验证

docker logs yingclaw

看到启动成功日志即为部署完成。


直接部署

1. 全局安装

npm install -g yingclaw

2. 创建工作目录

mkdir -p /opt/yingclaw
cd /opt/yingclaw

3. 配置环境变量

创建 /opt/yingclaw/.env 文件:

# AI 模型 API 密钥
API_KEY=your_api_key_here

# 可选:消息通道密钥
WECHAT_ENABLED=true

# 可选:推送通知
PUSHOVER_TOKEN=your_pushover_token
PUSHOVER_USER_KEY=your_pushover_user_key

4. 使用进程守护

推荐使用 PM2 保持服务常驻:

npm install -g pm2

pm2 start yingclaw -- --daemon --log-dir /opt/yingclaw/logs
pm2 save
pm2 startup # 设置开机自启
命令说明
pm2 status查看运行状态
pm2 logs yingclaw查看日志
pm2 restart yingclaw重启服务
pm2 stop yingclaw停止服务

运维管理

日志管理

# 查看实时日志
tail -f /opt/yingclaw/logs/yingclaw.log

# 日志轮转(保留最近 7 天)
pm2 install pm2-logrotate

备份策略

备份项路径建议频率
记忆数据workspace/MEMORY.md每日
配置文件config/配置变更时
环境变量.env配置变更时
# 快速备份
tar -czf backup-$(date +%Y%m%d).tar.gz /opt/yingclaw/workspace /opt/yingclaw/config /opt/yingclaw/.env

健康检查

# 进程检查
pm2 status

# 端口检查
curl -s http://localhost:3000/health

# 磁盘检查
df -h /opt/yingclaw

安全加固

  • 🔒 使用非 root 用户运行 YingClaw
  • 🔑 API 密钥存于 .env 文件,权限设为 600
  • 🛡️ 配置防火墙,仅开放必要端口
  • 📋 启用操作日志,定期审计
  • ⏰ 设置定时任务的超时限制
# 创建专用用户
useradd -m -s /bin/bash yingclaw

# 设置文件权限
chown -R yingclaw:yingclaw /opt/yingclaw
chmod 600 /opt/yingclaw/.env

更新升级

# Docker 方式
docker pull yingclaw/yingclaw:latest
docker-compose down && docker-compose up -d

# npm 方式
npm update -g yingclaw
pm2 restart yingclaw

下一步