Files
K-hermes edf4dfcd52 初始提交: 通用数据同步服务
- 基于OpenResty的RESTful API服务
- 支持Cookie/Token等数据类型的存储和管理
- 登录认证保护
- Web管理界面
- 数据过期管理
2026-08-14 09:53:32 +08:00

5.7 KiB
Raw Permalink Blame History

部署指南

🚀 快速部署

1. 环境要求

  • Docker & Docker Compose
  • Python 3.7+
  • 开放端口:5001

2. 部署步骤

# 1. 进入项目目录
cd /home/hermes/projects/data-sync-service

# 2. 创建数据目录并设置权限
mkdir -p data
chmod 777 data

# 3. 启动服务
docker-compose up -d

# 4. 验证服务
curl http://localhost:5001/health
# 预期输出: {"status":"ok"}

# 5. 查看日志
docker-compose logs -f

如果你之前使用 cookie-receiver,可以迁移现有数据:

# 1. 停止旧服务
cd /home/hermes/projects/cookie-receiver
docker-compose down

# 2. 运行迁移脚本
cd /home/hermes/projects/data-sync-service
python3 scripts/migrate_data.py

# 3. 启动新服务
docker-compose up -d

# 4. 验证迁移
curl http://localhost:5001/api/data

🔧 配置过期检测

使用 Hermes Cron(推荐)

# 添加定时任务(每天上午9点检查)
hermes cron add \
  --name "data-sync-expiry-check" \
  --schedule "0 9 * * *" \
  --command "python3 /home/hermes/projects/data-sync-service/scripts/check_expiry.py"

# 查看定时任务
hermes cron list

# 测试立即运行
python3 /home/hermes/projects/data-sync-service/scripts/check_expiry.py

使用系统 Cron

# 编辑 crontab
crontab -e

# 添加以下行(每天上午9点)
0 9 * * * cd /home/hermes/projects/data-sync-service && python3 scripts/check_expiry.py

📱 微信通知配置

脚本的 print() 输出会自动通过 Hermes 发送到微信。确保 Hermes 已配置微信通知:

# 检查 Hermes 配置
hermes config show

# 如需配置微信通知,参考 Hermes 文档

🌐 外网访问配置

如果需要从外网访问服务,建议使用 Nginx 反向代理:

# /etc/nginx/sites-available/data-sync.conf

server {
    listen 80;
    server_name sync.yourdomain.com;

    location / {
        proxy_pass http://localhost:5001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

或使用 HTTPS

server {
    listen 443 ssl http2;
    server_name sync.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:5001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

🔐 安全加固

1. 修改默认密码

编辑 nginx/nginx.conf,替换所有 admin123123123 为新密码:

cd /home/hermes/projects/data-sync-service
sed -i 's/admin123123123/YOUR_NEW_PASSWORD/g' nginx/nginx.conf
docker-compose restart

同时更新客户端配置。

2. IP 白名单

nginx/nginx.confserver 块中添加:

# 只允许特定 IP 访问
allow 192.168.1.0/24;
allow 10.0.0.0/8;
deny all;

3. 防火墙配置

# Ubuntu/Debian
sudo ufw allow from 192.168.1.0/24 to any port 5001
sudo ufw enable

# CentOS/RHEL
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="5001" accept'
sudo firewall-cmd --reload

📊 监控和维护

查看服务状态

cd /home/hermes/projects/data-sync-service

# 查看容器状态
docker-compose ps

# 查看实时日志
docker-compose logs -f

# 查看资源占用
docker stats data-sync-service

备份数据

# 手动备份
tar -czf data-backup-$(date +%Y%m%d).tar.gz data/

# 定期备份(添加到 crontab
0 2 * * * cd /home/hermes/projects/data-sync-service && tar -czf backups/data-backup-$(date +\%Y\%m\%d).tar.gz data/

恢复数据

# 停止服务
docker-compose down

# 恢复备份
tar -xzf data-backup-20260814.tar.gz

# 启动服务
docker-compose up -d

清理过期数据

# 运行清理脚本(删除过期超过30天的数据)
python3 scripts/clean_expired.py

🔄 更新服务

cd /home/hermes/projects/data-sync-service

# 1. 备份数据
tar -czf data-backup-$(date +%Y%m%d).tar.gz data/

# 2. 更新配置文件
# 编辑 nginx/nginx.conf 或其他文件

# 3. 重启服务
docker-compose restart

# 4. 验证更新
curl http://localhost:5001/health

常见问题

服务无法启动

# 查看日志
docker-compose logs

# 检查端口占用
netstat -tlnp | grep 5001

# 检查数据目录权限
ls -la data/
chmod 777 data/

数据无法保存

# 检查磁盘空间
df -h

# 检查数据目录权限
ls -la data/
chmod 777 data/

# 检查容器内文件
docker exec data-sync-service ls -la /data

过期检测不工作

# 手动运行测试
python3 scripts/check_expiry.py

# 检查 Hermes Cron 状态
hermes cron list

# 查看 Cron 日志
hermes cron logs data-sync-expiry-check

微信通知未收到

# 检查 Hermes 配置
hermes config show

# 测试微信通知
python3 scripts/check_expiry.py

# 查看 Hermes 日志
hermes logs

📝 维护检查清单

每日检查

  • 服务运行状态
  • 过期数据通知
  • 磁盘空间

每周检查

  • 备份数据
  • 查看错误日志
  • 清理过期数据

每月检查

  • 更新依赖镜像
  • 检查安全配置
  • 测试恢复流程

🆘 紧急恢复

如果服务完全不可用:

# 1. 停止所有容器
docker-compose down

# 2. 清理容器和网络
docker system prune -f

# 3. 从备份恢复数据
tar -xzf data-backup-YYYYMMDD.tar.gz

# 4. 重新启动
docker-compose up -d

# 5. 验证服务
curl http://localhost:5001/health
curl http://localhost:5001/api/data

📞 获取支持

  • 查看日志:docker-compose logs -f
  • 运行测试:bash scripts/test_api.sh
  • 检查配置:查看 nginx/nginx.conf
  • 项目文档:README.md