本文档说明如何将 PureGit 部署到 Cloudflare Workers,含一键脚本与手动步骤两种方式。 一键脚本
scripts/deploy.sh(Linux/macOS)与scripts/deploy.ps1(Windows)会自动完成 环境检测 → 登录 → 创建 KV → 部署的全流程。
| 依赖 | 版本 | 说明 |
|---|---|---|
| Node.js | ≥ 20 | 运行时 |
| pnpm | 任意(项目锁定 pnpm workspace) | 依赖安装 + workspace 构建 |
| wrangler | ≥ 4 | Cloudflare Workers CLI(随 pnpm install 装入 node_modules/.bin,也支持全局安装) |
| Cloudflare 账号 | — | 部署目标 |
# 首次部署
./scripts/deploy.sh
# 更新:pull 本仓库到最新后重新部署
./scripts/deploy.sh --update# 首次部署
.\scripts\deploy.ps1
# 更新:pull 本仓库到最新后重新部署
.\scripts\deploy.ps1 --update脚本会依次执行:
- (
--update时)git pull --ff-only拉取最新代码 - 环境检测:Node / pnpm / wrangler(本地
node_modules/.bin优先,其次全局) pnpm install(首次无node_modules时)- 登录检测:
wrangler whoami未登录则自动wrangler login(浏览器授权) - 生成配置:
worker/wrangler.jsonc不存在时从wrangler.jsonc.example复制 - 创建 KV:若
kv_namespaces[0].id仍为占位符,运行wrangler kv namespace create SESSIONS并回填 id - 配置 Secret:若尚未配置
GITHUB_CLIENT_SECRET,交互式wrangler secret put(隐藏输入) - 部署:
pnpm --filter web build(前端构建)→wrangler deploy(创建/更新 Worker)
首次运行前请先编辑
worker/wrangler.jsonc,填入你自己的GITHUB_CLIENT_ID与域名 (脚本生成配置后会提示,也可提前手动生成)。
等价于脚本做的事,逐条执行:
# 1. 安装依赖
pnpm install
# 2. 基于示例模板生成部署配置(从 wrangler.jsonc.example 复制)
cp worker/wrangler.jsonc.example worker/wrangler.jsonc
# 3. 登录 Cloudflare
cd worker && npx wrangler login
# 4. 创建 KV namespace,把输出的 id 填入 wrangler.jsonc 的 kv_namespaces[0].id
npx wrangler kv namespace create SESSIONS
# 5. 配置生产密钥(仅 Worker 端持有,前端零密钥)
npx wrangler secret put GITHUB_CLIENT_SECRET
# 6. 构建前端 + 部署 Worker(根目录 pnpm deploy 已串联两步)
cd .. && pnpm deploy部署前必须修改以下内容(完整模板见 worker/wrangler.jsonc.example):
| 配置 | 说明 |
|---|---|
GITHUB_CLIENT_ID |
GitHub OAuth App 的 Client ID(https://github.com/settings/developers) |
GITHUB_OAUTH_CALLBACK |
OAuth 回调地址,须与 OAuth App 的 Authorization callback URL 精确一致 |
FRONTEND_URL |
前端生产域名(登录后跳转 + CORS 允许源) |
GITHUB_CLIENT_SECRET |
不写入文件,用 wrangler secret put 注入 |
kv_namespaces[0].id |
会话 KV 的 namespace id(wrangler kv namespace create 输出) |
routes |
自定义域名;不用自定义域名则删除整个 routes 块(默认 *.workers.dev) |
同时把 GitHub OAuth App 的 Authorization callback URL 改为
https://<你的域名>/$auth/callback。 前端 git 镜像 clone 命令会自动取当前访问域名(window.location.host),无需额外配置。
功能更新后重新部署:
# 方式一:脚本(pull + 重部署)
./scripts/deploy.sh --update # Windows: .\scripts\deploy.ps1 --update
# 方式二:手动
git pull && pnpm install && pnpm deploy
--update等价于git pull --ff-only后重新走完整部署流程(KV 已存在则跳过创建、已登录则跳过登录)。