64d6812ec3
- requirements.txt: 添加 passlib[bcrypt] 依赖 - deploy-server/nginx.conf: /ws/ 路径添加 access_log off - docs/ADRs/: 新增 4 个 ADR 决策记录 - docs/SOPs/: 新增 4 个 SOP 操作规程
98 lines
2.2 KiB
Markdown
98 lines
2.2 KiB
Markdown
# SOP-002: Gitea 备份恢复标准作业流程
|
|
|
|
**适用**: 数据丢失应急 / 误操作回滚 / 异地迁移
|
|
**耗时**: 5-15 分钟
|
|
**关联**: [[Gitea部署指南]] §6/§7
|
|
|
|
---
|
|
|
|
## 1. 备份策略
|
|
|
|
| 项 | 值 | 备注 |
|
|
|---|---|---|
|
|
| 频率 | 每天 3 点 | cron |
|
|
| 保留 | 7 天 | 默认 |
|
|
| 路径 | `/volume1/backups/gitea/` | NAS 本地 |
|
|
| 异地 | OSS / COS 推 | M-1 风险,待解决 |
|
|
| 工具 | `scripts/backup-gitea.sh` | 已写 |
|
|
|
|
## 2. 手动备份(应急)
|
|
|
|
```bash
|
|
ssh simon@100.85.152.112
|
|
sudo bash /volume1/docker/wecom-it-desk/scripts/backup-gitea.sh
|
|
```
|
|
|
|
输出:
|
|
```
|
|
[INFO] === Gitea 备份开始 ===
|
|
[OK] 备份配置 app.ini
|
|
[OK] SQLite 热备完成
|
|
[OK] 仓库 tar 完成
|
|
[INFO] === 备份完成 ===
|
|
[OK] 最终备份: gitea-backup-20260615-030000.tar.gz
|
|
```
|
|
|
|
## 3. 列出可用备份
|
|
|
|
```bash
|
|
ls -lh /volume1/backups/gitea/
|
|
# gitea-backup-20260614-180000.tar.gz 500M
|
|
# gitea-backup-20260613-180000.tar.gz 495M
|
|
# gitea-backup-20260612-180000.tar.gz 490M
|
|
```
|
|
|
|
## 4. 恢复到 latest
|
|
|
|
```bash
|
|
sudo bash /volume1/docker/wecom-it-desk/scripts/backup-gitea.sh --restore latest
|
|
```
|
|
|
|
**会做**:
|
|
1. 停 Gitea 套件
|
|
2. 解压备份
|
|
3. 覆盖 app.ini / SQLite / repos
|
|
4. 启动 Gitea 套件
|
|
|
|
⚠️ 5 秒倒计时,Ctrl+C 取消
|
|
|
|
## 5. 恢复到指定时间
|
|
|
|
```bash
|
|
# 看时间戳
|
|
ls /volume1/backups/gitea/ | grep gitea-backup
|
|
# gitea-backup-20260614-180000.tar.gz
|
|
|
|
# 恢复
|
|
sudo bash /volume1/docker/wecom-it-desk/scripts/backup-gitea.sh --restore 20260614-180000
|
|
```
|
|
|
|
## 6. 验证恢复
|
|
|
|
1. `http://100.85.152.112:8418/` → 登录 simon
|
|
2. 选仓 → 看 commit 历史
|
|
3. 验证仓裸仓库大小(`du -sh /volume1/@appdata/gitea/gitea/repos/`)
|
|
4. 验证 LFS 数据
|
|
|
|
## 7. 异地推 OSS(待配)
|
|
|
|
```bash
|
|
# NAS 装 rclone
|
|
sudo apt install rclone # 或 synology 套件版
|
|
|
|
# 配 OSS
|
|
rclone config
|
|
# 选 aliyun OSS / 腾讯云 COS
|
|
|
|
# 加 cron
|
|
0 4 * * * rclone copy /volume1/backups/gitea/ remote:gitea-backup/ --include "gitea-backup-*.tar.gz"
|
|
```
|
|
|
|
## 8. 故障排查
|
|
|
|
| 现象 | 原因 | 解决 |
|
|
|---|---|---|
|
|
| 备份文件大小 0 | SQLite .backup 失败 | 改用文件复制模式(脚本已支持) |
|
|
| 恢复后启动失败 | 数据不一致 | 试更早的备份 |
|
|
| LFS 数据丢 | 备份脚本漏 LFS | 升级脚本(已修) |
|