# SOP-001: Gitea 部署标准作业流程

**适用**: 新机器 / NAS 迁移 / Gitea 重建
**耗时**: 30-45 分钟
**关联**: [[Gitea部署指南]] / [[ADR-001]]

---

## 1. 前置检查

```bash
# 1.1 NAS 可达
ping 100.85.152.112

# 1.2 SSH 通
ssh simon@100.85.152.112

# 1.3 Tailscale 状态
sudo tailscale status

# 1.4 端口 8418 未占
sudo lsof -i :8418
```

## 2. 装 Gitea 套件

1. DSM → 套件中心
2. 搜 `Gitea` → 安装
3. 装好跳 `http://100.85.152.112:8418/`

## 3. 初始化

1. 创管理员:
   - 用户名: `simon`
   - 邮箱: 你的
   - 密码: 强密码(≥16 位)
2. 数据库: 选 **SQLite3**
3. 站点名: `企微 IT 智能服务台 Git`
4. 立即登录

## 4. 创仓 + token

1. 创仓 `wecom_it_smart_desk`(不勾 README 初始化)
2. 创 simon access token(`simon-admin`)
3. 创 workbuddy-claude user + token(`claude-push`)

## 5. 配 Tailscale Funnel

```bash
sudo tailscale funnel --bg 8418
# 验证
curl -I https://ds923plus.tail58d872.ts.net/
```

## 6. 配分支保护

见 [[ADR-001]] §5 + `scripts/branch-protection.sh`(待写)

## 7. 部署备份

```bash
# 推备份脚本
scp scripts/backup-gitea.sh simon@100.85.152.112:/volume1/docker/wecom-it-desk/scripts/

# 配 cron
ssh simon@100.85.152.112
sudo crontab -e
# 加: 0 3 * * * /volume1/docker/wecom-it-desk/scripts/backup-gitea.sh
```

## 8. 本地仓接入

```bash
cd D:\资料\03-项目开发\wecom_it_smart_desk
git remote add origin https://simon@ds923plus.tail58d872.ts.net/simon/wecom_it_smart_desk.git
git push -u origin main  # 弹窗输 token
```

## 9. 验证清单

- [ ] Gitea Web UI 正常
- [ ] Funnel 域名正常
- [ ] 创仓 + token 完成
- [ ] 分支保护已配
- [ ] 备份 cron 已配
- [ ] 本地 push 成功
- [ ] workbuddy-claude user 已创 + token 已配

## 10. 出错回滚

| 现象 | 解决 |
|---|---|
| 8418 端口冲突 | Docker 版用 3000 端口 |
| SQLite 写失败 | 检查 `/volume1/@appdata/gitea` 权限 |
| Funnel 域名不通 | `sudo tailscale funnel --bg 8418` 重试 |
| 推 Gitea 401 | 清 wincred,重输 token |
