Files
wecom_it_smart_desk/docs/ADRs/ADR-001-Gitea自托管-Funnel暴露.md
T
Simon 64d6812ec3 fix: P0遗留修复 + ADR/SOP文档
- requirements.txt: 添加 passlib[bcrypt] 依赖
- deploy-server/nginx.conf: /ws/ 路径添加 access_log off
- docs/ADRs/: 新增 4 个 ADR 决策记录
- docs/SOPs/: 新增 4 个 SOP 操作规程
2026-06-15 00:03:11 +08:00

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(如果合规要求)