64d6812ec3
- requirements.txt: 添加 passlib[bcrypt] 依赖 - deploy-server/nginx.conf: /ws/ 路径添加 access_log off - docs/ADRs/: 新增 4 个 ADR 决策记录 - docs/SOPs/: 新增 4 个 SOP 操作规程
2.3 KiB
2.3 KiB
ADR-001: Gitea 自托管 + Tailscale Funnel 暴露
状态: ✅ 已采纳 日期: 2026-06-14 决策者: 宋献 + Claude 评审 关联: Gitea部署指南 / 风险跟踪表 第十二节
1. 背景
项目主仓 D:\资料\03-项目开发\wecom_it_smart_desk\ 需要:
- 跨设备协作(simon's 电脑 + workbuddy 沙箱)
- 推送评审 + 分支保护
- 异地可访问(workbuddy 沙箱无 Tailscale 内网)
2. 评估方案
| 方案 | 优势 | 劣势 | 结论 |
|---|---|---|---|
| A. GitHub 私有仓 | 零运维 + 全球 CDN + 完善 Actions | 代码在境外(企业合规风险)+ 付费 | ❌ 否决 |
| B. GitLab.com 私有仓 | 免费私有 + 完善 CI | 代码在境外 + workbuddy 沙箱访问延迟 | ❌ 否决 |
| C. Gitea 自托管(NAS)+ Tailscale Funnel | 数据本地 + workbuddy 可访问 + 免费 | NAS 单点故障 + Funnel 稳定性依赖 Tailscale | ✅ 采纳 |
| D. Gitea 自托管 + 公网 IP 暴露 | 不依赖 Tailscale | 需配 SSL + DDOS 风险 + 国内带宽限制 | ❌ 否决 |
3. 决策
采纳 C 方案: Gitea 套件(DS923+ NAS)+ Tailscale Funnel 暴露公网。
4. 关键参数
| 项 | 值 | 备注 |
|---|---|---|
| Gitea 版本 | 1.22+ | 套件中心固定 |
| 端口 | 8418 (HTTP) | 避开被占端口 |
| 数据库 | SQLite3 | 单机够用,简化部署 |
| Tailscale 私网 | tail58d872.ts.net |
DSM 已配 |
| Funnel 域名 | https://ds923plus.tail58d872.ts.net |
沙箱访问 |
| 备份 | scripts/backup-gitea.sh cron 3 点 |
见 Gitea部署指南 §6 |
| 异地备份 | OSS / COS 推 | M-1 风险项待解决 |
5. 风险与缓解
| 风险 | 等级 | 缓解 |
|---|---|---|
| NAS 硬盘故障 | 🟠 高 | 异地 OSS 备份(待配) |
| Tailscale Funnel 稳定性 | 🟡 中 | Funnel 故障时降级 LAN(http://100.85.152.112:8418) |
| 卸载误操作数据丢失 | 🟡 中 | 备份脚本 + 卸载前 checklist |
| token 泄露 | 🟠 高 | token 不入文件,走 wincred |
6. 决策影响
- ✅ 团队协作无需 VPN(workbuddy 沙箱直连 Funnel)
- ✅ 推送评审 + 分支保护(PR + 1 reviewer)
- ⚠️ NAS 单点是隐患,需异地备份
- ⚠️ 卸载/迁移需严格按 Gitea部署指南 §8 走
7. 后续评审
- 3 个月后(2026-09-14)评审:Funnel 稳定性 + 备份完整度
- 6 个月后(2026-12-14)评审:是否切到企业 GitLab(如果合规要求)