GitHub + Vercel 部署文档站
这个仓库的文档站放在 website/,源码仍由 GitHub 托管,线上部署交给 Vercel Git Integration。这样可以避免手写 GitHub Actions 部署脚本,也避免和 Vercel 的预览部署机制重复。
本地开发
cd website
npm install
npm run start
生产构建验证:
npm run typecheck
npm run build
Vercel 项目设置
在 Vercel 导入 GitHub 仓库后,使用以下设置:
| 配置 | 值 |
|---|---|
| GitHub Repository | niaopian/iac-gitops-hybrid-k8s-ha |
| Vercel Project | iac-gitops-hybrid-k8s-ha |
| Root Directory | website |
| Framework Preset | Docusaurus (v2+) |
| Install Command | npm install |
| Build Command | npm run build |
| Output Directory | build |
| Production Branch | main |
| Production Domain | zen1th.tech |
当前项目实际依赖 Docusaurus 3.10.1。Vercel Dashboard 中的 Docusaurus (v2+) 是平台预设名称,适用于当前 Docusaurus v3 静态站点;website/vercel.json 也保留了同样的构建意图,便于 Vercel 识别静态输出目录。
自定义域名 DNS
在 Vercel 项目中添加 zen1th.tech 后,到域名 DNS 服务商处添加或确认:
| 主机记录 | 类型 | 值 |
|---|---|---|
@ | A | 216.198.79.1 |
Vercel 旧的 apex A 记录 76.76.21.21 仍可继续工作,但当前 Dashboard 推荐使用 216.198.79.1。
如果后续也需要 www.zen1th.tech,再添加:
| 主机记录 | 类型 | 值 |
|---|---|---|
www | CNAME | cname.vercel-dns-0.com |
DNS 生效后,Vercel 会自动签发 HTTPS 证书。
自动部署行为
- 推送到
main:触发 Production Deployment。 - Pull Request 或功能分支:触发 Preview Deployment。
- Preview 验证通过后再合并,生产站点会自动更新。
发布前检查
cd website
npm run typecheck
npm run build
发布前还要确认构建产物不包含运行产物或敏感信息:
find build -type f -name '*tfvars*' -o -name '*tfstate*' -o -name '*kubeconfig*'
如果命令输出为空,说明没有按这些文件名发布敏感运行产物。
为什么不用 GitHub Actions
Vercel Git Integration 已经提供:
- 每个分支独立预览 URL。
- PR 级别的 Preview Deployment。
main分支自动发布生产环境。- 构建日志和回滚入口。
手写 GitHub Actions 反而会引入额外 token、重复部署链路和维护成本。