部署指南
本项目采用混合部署方案,同时部署到多个平台以优化不同地区的访问速度。
部署平台
1. Vercel(主要 - 国际访问)
状态:✅ 已配置并部署
访问地址:https://website-lilac-seven-17.vercel.app
部署方式:
- 自动部署:每次 push 到
master分支自动触发 - 手动部署:
cd website && npx vercel --prod
配置文件:
website/vercel.json- Vercel 配置website/.vercel/- 项目链接信息(已加入 .gitignore)
优势:
- 零配置自动部署
- 全球 CDN 加速
- 免费额度充足
- 构建速度快
2. GitHub Pages(备用 - 开源访问)
状态:⚠️ 需要手动启用
预期地址:https://cygmris.github.io/snooker-guide/
部署方式:
- 自动部署:GitHub Actions 在每次 push 时自动构建并部署
- 工作流文件:
.github/workflows/deploy.yml
首次启用步骤(必须执行):
-
启用 GitHub Pages:
- 访问:https://github.com/cygmris/snooker-guide/settings/pages
- 在 "Build and deployment" 部分:
- Source: 选择 "GitHub Actions"(不是 Deploy from a branch)
- 点击 Save
-
触发首次部署:
- 方式 1:推送任意代码变更
- 方式 2:手动触发 workflow
gh workflow run deploy.yml --repo cygmris/snooker-guide - 方式 3:在 GitHub 网页上手动触发
- 访问:https://github.com/cygmris/snooker-guide/actions/workflows/deploy.yml
- 点击 "Run workflow" 按钮
-
等待部署完成:
- 查看进度:https://github.com/cygmris/snooker-guide/actions
- 首次部署约需 2-3 分钟
-
验证部署:
- 访问:https://cygmris.github.io/snooker-guide/
- 如果显示 404,等待 1-2 分钟后刷新
配置说明:
- 使用 Node.js 20
- 自动缓存 npm 依赖
- 构建产物上传到 GitHub Pages
- 支持手动触发(workflow_dispatch)
优势:
- 完全免费
- 与代码仓库集成
- 适合开源项目
注意事项:
- 首次启用需要在仓库设置中开启 GitHub Pages
- 如果使用自定义域名,需要配置
website/static/CNAME文件 - 国内访问速度可能较慢
3. Claw Cloud(推荐 - 日本节点)
状态:⏳ 待配置
平台:基于 Sealos 的 Kubernetes 云平台
访问地址:https://jp-members-1.run.claw.cloud
部署方式 A:APP Launchpad(推荐 - 最简单)
-
登录 Claw Cloud:
- 访问 https://jp-members-1.run.claw.cloud
- 使用你的账号登录
-
打开 APP Launchpad:
- 在控制台找到 "APP Launchpad" 或 "应用管理"
- 点击 "新建应用" 或 "Deploy New App"
-
配置应用:
- 应用名称:
snooker-guide - 镜像:
ghcr.io/cygmris/snooker-guide:latest - 端口:
80 - CPU: 50m - 200m
- 内存: 64Mi - 256Mi
- 副本数: 1
- 应用名称:
-
启用公网访问:
- 勾选 "启用公网访问"
- 系统自动生成访问域名
- 可选:配置自定义域名
-
部署:
- 点击 "部署"
- 等待 1-2 分钟启动
- 访问生成的 URL
部署方式 B:使用 YAML 配置
- 在 APP Launchpad 中选择 "从 YAML 导入"
- 粘贴
sealos/deployment.yaml内容 - 修改域名配置(如需自定义域名)
- 点击部署
部署方式 C:GitHub Actions 自动部署(推荐 - 完全自动化)
配置一次后,每次 push 代码自动部署到 Claw Cloud,无需手动操作。
配置步骤:
-
获取 Claw Cloud Kubeconfig:
- 登录 Claw Cloud:https://jp-members-1.run.claw.cloud
- 打开 Terminal 应用
- 运行命令获取 kubeconfig:
cat ~/.kube/config | base64 - 复制输出的 base64 编码内容
-
在 GitHub 仓库添加 Secret:
- 访问:https://github.com/cygmris/snooker-guide/settings/secrets/actions
- 点击 "New repository secret"
- Name:
CLAW_KUBECONFIG - Value: 粘贴刚才复制的 base64 内容
- 点击 "Add secret"
-
触发部署:
- 方式 1:推送代码到 master 分支(自动触发)
- 方式 2:手动触发
gh workflow run deploy-claw.yml - 方式 3:在 GitHub Actions 页面手动触发
-
查看部署进度:
- 访问:https://github.com/cygmris/snooker-guide/actions
- 点击最新的 "Deploy to Claw Cloud" workflow
- 查看实时日志
自动化流程:
代码 Push → GitHub Actions 触发
↓
构建 Docker 镜像 → 推送到 GHCR
↓
kubectl apply 部署到 Claw Cloud
↓
等待 Pod 就绪 → 验证部署成功
部署方式 D:使用 Sealos CLI
# 安装 Sealos CLI
curl -sfL https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | sh -s v5.0.0
# 登录
sealos login jp-members-1.run.claw.cloud
# 部署
kubectl apply -f sealos/deployment.yaml
配置文件:
Dockerfile- Docker 镜像构建sealos/deployment.yaml- Kubernetes 部署配置.github/workflows/docker-build.yml- 自动构建镜像
自动部署流程:
- 推送代码到 GitHub
- GitHub Actions 自动构建 Docker 镜像
- 推送到 GitHub Container Registry
- 在 Claw Cloud 中重启应用拉取新镜像
优势:
- 日本节点,亚洲访问速度快
- 基于 Kubernetes,稳定可靠
- 按需计费,成本低(约 ¥3.6/月)
- 自动 HTTPS 证书
- 支持自动扩缩容
详细指南:参见 CLAW_DEPLOYMENT.md
4. Zeabur(备选 - 国内访问优化)
状态:⏳ 待配置
部署方式:
- 访问 https://zeabur.com
- 使用 GitHub 账号登录
- 创建新项目,选择
cygmris/snooker-guide仓库 - Zeabur 会自动检测
zeabur.json配置 - 确认配置后部署
配置文件:
zeabur.json- Zeabur 配置
优势:
- 国内访问速度快
- 自动部署
- 界面友好
注意事项:
- 免费额度有限(每月 5GB 流量)
- 需要手动在 Zeabur 平台创建项目
部署架构
GitHub Repository (master 分支)
|
| (git push)
|
+------------------+------------------+------------------+
| | | |
v v v v
Docker 镜像构建 Vercel 自动部署 GitHub Actions Zeabur 自动部署
(GitHub Actions) (构建 + 部署)
| | | |
v | v v
GitHub Container v GitHub Pages 国内优化访问
Registry 全球 CDN 访问
|
v
Claw Cloud 拉取镜像
(日本节点 K8s)
访问地址汇总
| 平台 | 地址 | 状态 | 适用地区 | 优先级 |
|---|---|---|---|---|
| Claw Cloud | 待配置 | ⏳ 待配置 | 亚洲(日本节点) | ⭐⭐⭐ 推荐 |
| Vercel | https://website-lilac-seven-17.vercel.app | ✅ 运行中 | 全球(国际优先) | ⭐⭐ |
| GitHub Pages | https://cygmris.github.io/snooker-guide/ | ⚠️ 需启用 | 全球(备用) | ⭐ |
| Zeabur | 待配置 | ⏳ 待配置 | 中国大陆 | ⭐ |
本地开发
cd website
npm install
npm start
本地构建测试
cd website
npm run build
npm run serve
更新部署
所有平台都配置了自动部署,只需:
git add .
git commit -m "更新内容"
git push
所有平台会自动触发构建和部署。
故障排查
Vercel 部署失败
- 检查
website/vercel.json配置 - 查看 Vercel 控制台日志:https://vercel.com/chris-rens-projects/website
- 确认
npm run build在本地能成功执行
GitHub Actions 失败
- 查看 Actions 日志:https://github.com/cygmris/snooker-guide/actions
- 确认 GitHub Pages 已在仓库设置中启用
- 检查
.github/workflows/deploy.yml配置
Zeabur 部署失败
- 检查
zeabur.json配置 - 查看 Zeabur 控制台日志
- 确认构建命令和输出目录正确
自定义域名(可选)
如需配置自定义域名:
Vercel
- 在 Vercel 项目设置中添加域名
- 按提示配置 DNS 记录
GitHub Pages
- 创建
website/static/CNAME文件,内容为域名 - 在域名 DNS 设置中添加 CNAME 记录指向
cygmris.github.io
Zeabur
- 在 Zeabur 项目设置中添加域名
- 按提示配置 DNS 记录
监控与分析
- Vercel Analytics:自动启用
- GitHub Pages:可集成 Google Analytics
- Zeabur:查看控制台流量统计
GitHub Actions 免费额度
公开仓库(本项目适用)
| 项目 | 额度 |
|---|---|
| Actions 运行分钟数 | 无限制 |
| 并发任务数 | 无限制 |
| Packages 存储(公开镜像) | 无限制 |
公开仓库的 GitHub Actions 完全免费,没有任何限制。
私有仓库(仅供参考)
| 账户类型 | 每月免费分钟数 | Packages 存储 |
|---|---|---|
| Free | 2,000 分钟 | 500 MB |
| Pro | 3,000 分钟 | 1 GB |
| Team | 3,000 分钟 | 2 GB |
| Enterprise | 50,000 分钟 | 50 GB |
分钟数倍率(仅私有仓库计费):
- Linux runner: 1x
- Windows runner: 2x
- macOS runner: 10x
本项目预估消耗
每次部署约 3-4 分钟(Linux runner),即使是私有仓库:
- 每月 2,000 分钟 ÷ 4 分钟 ≈ 500 次部署
- 每天可部署 16 次以上