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

331 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 部署指南
## 🚀 快速部署
### 1. 环境要求
- Docker & Docker Compose
- Python 3.7+
- 开放端口:5001
### 2. 部署步骤
```bash
# 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
```
### 3. 从 cookie-receiver 迁移
如果你之前使用 cookie-receiver,可以迁移现有数据:
```bash
# 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(推荐)
```bash
# 添加定时任务(每天上午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
```bash
# 编辑 crontab
crontab -e
# 添加以下行(每天上午9点)
0 9 * * * cd /home/hermes/projects/data-sync-service && python3 scripts/check_expiry.py
```
## 📱 微信通知配置
脚本的 `print()` 输出会自动通过 Hermes 发送到微信。确保 Hermes 已配置微信通知:
```bash
# 检查 Hermes 配置
hermes config show
# 如需配置微信通知,参考 Hermes 文档
```
## 🌐 外网访问配置
如果需要从外网访问服务,建议使用 Nginx 反向代理:
```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
```nginx
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` 为新密码:
```bash
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.conf``server` 块中添加:
```nginx
# 只允许特定 IP 访问
allow 192.168.1.0/24;
allow 10.0.0.0/8;
deny all;
```
### 3. 防火墙配置
```bash
# 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
```
## 📊 监控和维护
### 查看服务状态
```bash
cd /home/hermes/projects/data-sync-service
# 查看容器状态
docker-compose ps
# 查看实时日志
docker-compose logs -f
# 查看资源占用
docker stats data-sync-service
```
### 备份数据
```bash
# 手动备份
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/
```
### 恢复数据
```bash
# 停止服务
docker-compose down
# 恢复备份
tar -xzf data-backup-20260814.tar.gz
# 启动服务
docker-compose up -d
```
### 清理过期数据
```bash
# 运行清理脚本(删除过期超过30天的数据)
python3 scripts/clean_expired.py
```
## 🔄 更新服务
```bash
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
```
## ❓ 常见问题
### 服务无法启动
```bash
# 查看日志
docker-compose logs
# 检查端口占用
netstat -tlnp | grep 5001
# 检查数据目录权限
ls -la data/
chmod 777 data/
```
### 数据无法保存
```bash
# 检查磁盘空间
df -h
# 检查数据目录权限
ls -la data/
chmod 777 data/
# 检查容器内文件
docker exec data-sync-service ls -la /data
```
### 过期检测不工作
```bash
# 手动运行测试
python3 scripts/check_expiry.py
# 检查 Hermes Cron 状态
hermes cron list
# 查看 Cron 日志
hermes cron logs data-sync-expiry-check
```
### 微信通知未收到
```bash
# 检查 Hermes 配置
hermes config show
# 测试微信通知
python3 scripts/check_expiry.py
# 查看 Hermes 日志
hermes logs
```
## 📝 维护检查清单
### 每日检查
- [ ] 服务运行状态
- [ ] 过期数据通知
- [ ] 磁盘空间
### 每周检查
- [ ] 备份数据
- [ ] 查看错误日志
- [ ] 清理过期数据
### 每月检查
- [ ] 更新依赖镜像
- [ ] 检查安全配置
- [ ] 测试恢复流程
## 🆘 紧急恢复
如果服务完全不可用:
```bash
# 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`