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