迁移执行清单
这份清单用于配合 MIGRATION_PLAN.md 执行实际迁移。
如果你准备开始动手,建议按本文顺序逐步完成,不要跳步。
使用方式
每完成一项,就手动勾选一项。
如果某一步失败,不要继续后面的步骤,先处理当前问题。
阶段 1:基线备份与准备
1.1 记录当前线上信息
- [ ] 记录当前正式域名:
www.bbgs.xyz - [ ] 记录当前正式域名:
bbgs.xyz - [ ] 记录当前 Vercel 统计 API 地址
- [ ] 记录当前 GitHub Pages 地址
- [ ] 记录当前 GitHub 仓库地址
1.2 记录当前统计数据
- [ ] 打开 GitHub PV 对应的 Issue
- [ ] 记录当前 Issue 标题中的 PV 数值
- [ ] 记录当前 Upstash UV 总数 key
- [ ] 记录当前 Upstash 已访问访客集合 key
- [ ] 记录当前 Redis key 前缀
1.3 备份平台配置
- [ ] 备份 Vercel 环境变量
- [ ] 备份 Cloudflare DNS 记录
- [ ] 备份 Upstash 凭据
- [ ] 备份 GitHub Actions 工作流配置
- [ ] 备份当前 themeConfig.mjs
1.4 本地构建验证
- [ ] 执行依赖安装
- [ ] 执行站点构建
- [ ] 确认
.vitepress/dist正常生成
阶段 2:Vercel 接管前端部署
2.1 导入项目
- [ ] 在 Vercel 中导入当前 GitHub 仓库
- [ ] Production Branch 设置为
main - [ ] Root Directory 保持仓库根目录
2.2 设置构建参数
- [ ] Framework Preset 选择 VitePress 或 Other
- [ ] Install Command 设置为
pnpm install --frozen-lockfile - [ ] Build Command 设置为
pnpm run build - [ ] Output Directory 设置为
.vitepress/dist - [ ] Node.js 版本确认不低于 20
2.3 配置环境变量
- [ ] 配置
UPSTASH_REDIS_REST_URL - [ ] 配置
UPSTASH_REDIS_REST_TOKEN - [ ] 配置
UV_KEY_PREFIX - [ ] 配置
ALLOWED_ORIGIN - [ ] 暂时保留
GITHUB_PAT - [ ] 暂时保留
PV_OWNER - [ ] 暂时保留
PV_REPO - [ ] 暂时保留
PV_ISSUE_NUMBER
2.4 首次部署验证
- [ ] Vercel 首次构建成功
- [ ] 预览域名首页可访问
- [ ] 文章页可访问
- [ ] portal 页面可访问
- [ ] 静态资源正常加载
阶段 3:Cloudflare 绑定 Vercel
3.1 在 Vercel 中添加自定义域名
- [ ] 添加
www.bbgs.xyz - [ ] 添加
bbgs.xyz
3.2 在 Cloudflare 中调整 DNS
- [ ] 为
www配置指向 Vercel 的 CNAME 记录 - [ ] 为根域名按 Vercel 提示配置记录
- [ ] TTL 使用自动或较低值
- [ ] 保留现有记录截图或导出备份
3.3 域名验证
- [ ] Vercel 域名验证通过
- [ ] HTTPS 证书签发成功
- [ ] 正式域名首页可访问
- [ ] 正式域名文章页可访问
阶段 4:统计链路改造
4.1 确定新存储方案
- [ ] 确认 PV 继续迁入 Upstash Redis
- [ ] 约定 PV key,例如
bbgs:stats:pv:total - [ ] 保留 UV key 不变或记录新 key
- [ ] 将旧 PV 数值作为新 PV 初始值写入 Redis
4.2 修改服务端统计逻辑
- [ ] api/pv-dispatch.js 改为直接维护 PV 和 UV
- [ ] 移除 GitHub
repository_dispatch依赖 - [ ] API 响应中统一返回最新 PV 和 UV
4.3 修改前端读取逻辑
- [ ]
SiteData.vue不再读取 GitHub Issue - [ ] 页面加载后只请求统计 API
- [ ] 前端从 API 响应读取 PV 和 UV
4.4 预览验证
- [ ] 预览环境中 PV 正常增长
- [ ] 同浏览器重复访问时 UV 不重复增长
- [ ] 页面 Network 中不再访问 GitHub Issue API
- [ ] 页面 Network 中不再访问 GitHub dispatch API
阶段 5:前端配置切换
5.1 调整主题配置
- [ ] 将 themeConfig.mjs 中的
dispatchProxy改为/api/pv-dispatch - [ ] 停止使用
pageViewsIssueId - [ ] 停止使用
clientToken - [ ] 评估是否保留
owner和repo
5.2 生产验证
- [ ] 生产环境统计正常
- [ ] 页面刷新后 PV 正常变化
- [ ] 新访客访问后 UV 正常变化
- [ ] 搜索功能仍正常
阶段 6:下线旧 GitHub 方案
6.1 停用旧工作流
- [ ] 停用或删除 .github/workflows/update-pv.yml
- [ ] 停用或删除 .github/workflows/deploy-pages.yml
6.2 清理旧环境变量
- [ ] 停用
GITHUB_PAT - [ ] 停用
PV_OWNER - [ ] 停用
PV_REPO - [ ] 停用
PV_ISSUE_NUMBER
6.3 仓库私有化
- [ ] 将 GitHub 仓库切为私有
- [ ] 私有后再次验证 Vercel 自动部署
- [ ] 私有后再次验证站点访问
- [ ] 私有后再次验证统计
- [ ] 私有后再次验证搜索
阶段 7:文档同步
- [ ] 更新 PV_SETUP.md
- [ ] 复核 SEARCH_SETUP.md
- [ ] 在 MIGRATION_PLAN.md 标注阶段完成情况
最终完成标准
全部完成后,应满足以下条件:
- [ ] 源码仓库已是私有
- [ ] 正式域名由 Vercel 提供站点
- [ ] Cloudflare 继续管理域名和 DNS
- [ ] PV 和 UV 都已脱离 GitHub Issue / GitHub Actions
- [ ] 搜索正常
- [ ] 旧 GitHub Pages 部署已不再承载生产流量

