Fanzy 产品工作台

配置获取指南

工作台一共只需要两份配置:GitHub 只读 key(用来拉代码)和 Cloudflare 账号 ID + API Token(用来发布)。下面每一项都写了“去哪里、点什么、复制什么、填到哪里、怎么验证”。

配置项谁来做填到哪里大约耗时
① GitHub 只读 key有仓库管理权限的研发负责人git/keys/github_readonly5 分钟
② GitHub 仓库地址、默认分支一般不用改git/github.json1 分钟
③ Cloudflare 账号Cloudflare 管理员(没有就自己注册)—3 分钟
④ Cloudflare 账号 ID同上deploy/cloudflare.json 的 accountId1 分钟
⑤ Cloudflare API Token同上deploy/cloudflare.json 的 apiToken3 分钟
⑥ 项目名、站点地址一般不用改deploy/cloudflare.json 的 projectName / siteUrl1 分钟
⑦(建议)访问保护Cloudflare 管理员Cloudflare 后台5 分钟
⑧ 自检你(对 AI 说一句话)—1 分钟
key 文件、github.json、cloudflare.json 都是密钥:不要发到群里、不要截图、不要提交到任何地方。工作台发布时会自动排除它们,并扫描一遍防止误发。
Cloudflare 和 GitHub 的后台偶尔会改版,按钮位置可能略有变化。找不到时,可以直接打开每一步给出的直达链接,或者把截图发给 AI 让它帮你认。

① GitHub 只读 key

这把 key 只能读 fanzy-web 仓库,不能写。即使泄露,别人也改不了代码。需要一位对仓库 novusbase/ifanzy-web 有 Admin 权限的研发负责人完成第 1、2 步。

第 1 步:生成 key(研发负责人,在自己的 Mac 上)

  1. 打开「终端」:按 ⌘ 空格,输入「终端」,回车
  2. 粘贴下面这行并回车(会在「桌面」生成两个文件):
    cd ~/Desktop && ssh-keygen -t ed25519 -C "fanzy-product-readonly" -f github_readonly -N ""
  3. 桌面上出现两个文件:
    • github_readonly:私钥,第 3 步交给产品
    • github_readonly.pub:公钥,第 2 步加到 GitHub
  4. 复制公钥内容:
    pbcopy < ~/Desktop/github_readonly.pub
    执行后公钥已在剪贴板里(一行,以 ssh-ed25519 开头)

第 2 步:把公钥加到仓库的 Deploy keys(研发负责人)

直达链接:https://github.com/novusbase/ifanzy-web/settings/keys

  1. 浏览器登录 GitHub,打开仓库 novusbase/ifanzy-web
  2. 点仓库顶部标签栏最右边的 Settings(看不到 Settings 说明没有 Admin 权限,找有权限的人)
  3. 左侧菜单「Security」分组里点 Deploy keys
  4. 右上角点 Add deploy key
  5. Title 填 fanzy-product-readonly
  6. Key 里粘贴第 1 步复制的公钥(⌘ V)
  7. 不要勾选 「Allow write access」,保持只读
  8. 点 Add key,GitHub 可能要求再输一次密码或验证码
  9. 列表里出现 fanzy-product-readonly,标注 Read-only,就完成了

第 3 步:把私钥放进工作台(产品)

  1. 研发负责人通过私聊或 U 盘把 github_readonly(没有 .pub 的那个)发给你,不要发群
  2. 在访达里打开工作台文件夹 → git → keys
  3. 把 github_readonly 拖进去。文件名必须完全一致,没有扩展名(如果系统自动加了 .txt,要删掉)
  4. 研发负责人可以删掉自己桌面上的两个 key 文件(公钥已存到 GitHub,私钥已交给你)
文件权限不用管:自检时 AI 会自动把它改成只有你能读(chmod 600)。

GitHub 常见问题

现象原因处理
仓库页面没有 Settings账号不是仓库 Admin找有 Admin 权限的研发负责人操作第 2 步
Add key 时提示 Key is already in use同一把公钥已经加在别的仓库或账号上重新执行第 1 步生成一把新 key
自检提示 Permission denied (publickey)公钥没加上,或私钥和公钥不是同一对核对第 2 步列表里有没有这把 key;不确定就整套重新生成
自检提示「找不到 GitHub 只读 key」文件位置或文件名不对确认路径是 git/keys/github_readonly,没有扩展名
Could not resolve hostname github.com网络问题检查网络或代理后重试

② GitHub 仓库地址、默认分支

git/github.json 已经写好,一般不用改:

{
  "repo": "git@github.com:novusbase/ifanzy-web.git",
  "defaultBranch": "master",
  "sshKeyPath": "git/keys/github_readonly"
}
字段含义需要改时去哪里找
repo仓库地址(SSH 格式)仓库首页 → 绿色 Code 按钮 → SSH 标签 → 复制,以 git@github.com: 开头
defaultBranch开新需求时不选分支就用它仓库首页左上角分支下拉框默认显示的分支;或 Settings → General → Default branch
sshKeyPath私钥位置保持 git/keys/github_readonly;留空表示用电脑自带的 ssh(只适合研发电脑)

如果工作台里没有 git/github.json,复制一份 git/github.example.json 改名即可,或者对 AI 说「帮我生成 github.json」。

③ Cloudflare 账号

先问管理员公司有没有 Cloudflare 账号。有:请管理员把你加为成员(Manage Account → Members → Invite,角色至少给 Cloudflare Pages 的管理权限),或者让管理员直接完成 ④⑤ 两步,把结果私聊发给你。没有:自己注册一个免费账号:

  1. 打开 https://dash.cloudflare.com/sign-up
  2. 填邮箱和密码 → 去邮箱点验证链接
  3. 登录后看到「Account home」页面就完成了,不需要添加域名,也不需要绑卡,免费版就够用

④ Cloudflare 账号 ID(accountId)

账号 ID 是一串 32 位的字母加数字,例如 3f2a9c…(共 32 位)。有两种找法,任选一种:

方法 A:从浏览器地址栏复制(最快)

  1. 登录 https://dash.cloudflare.com,点进你的账号
  2. 看浏览器地址栏,形如 https://dash.cloudflare.com/3f2a9c……/home
  3. dash.cloudflare.com/ 后面、下一个 / 前面那 32 位就是账号 ID

方法 B:从页面上复制

  1. 左侧菜单点 Workers & Pages(新版后台可能在 Compute 分组下)
  2. 页面右侧栏「Account details」里有 Account ID,点旁边的复制图标

填到 deploy/cloudflare.json 的 accountId。

⑤ Cloudflare API Token(apiToken)

直达链接:https://dash.cloudflare.com/profile/api-tokens

  1. 右上角头像 → My Profile(我的个人资料) → 左侧 API Tokens(API 令牌)
  2. 点 Create Token(创建令牌)
  3. 页面最下方「Custom token(自定义令牌)」点 Get started(开始使用)。不要选上面的现成模板
  4. Token name 填 fanzy-product-publish
  5. Permissions(权限)只加一行,三个下拉框依次选:
    第 1 个第 2 个第 3 个
    Account(帐户)Cloudflare PagesEdit(编辑)
  6. Account Resources(帐户资源):Include → 选你的账号
  7. Client IP Address Filtering:留空
  8. TTL(有效期):建议设 1 年,到期前重新创建一次即可
  9. 点 Continue to summary,确认摘要里只有一行「你的账号 - Cloudflare Pages:Edit」
  10. 点 Create Token,页面显示一串 Token,点 Copy。它只显示这一次,关掉页面就看不到了,丢了只能重新创建
  11. 填到 deploy/cloudflare.json 的 apiToken
权限只给「Cloudflare Pages · Edit」:这个 Token 只能管理 Pages 项目,碰不到域名、DNS、账单等其他东西。工作台用它创建项目、上传部署、查询线上版本,全部走 API,不需要你再打开后台上传。

创建完成页面上会有一段 curl 测试命令,可以不用管,自检时 AI 会帮你验证。

⑥ 项目名、站点地址

{
  "accountId": "④ 的 32 位账号 ID",
  "apiToken": "⑤ 复制的 Token",
  "projectName": "fanzy-product",
  "siteUrl": ""
}
字段含义怎么填
projectNameCloudflare Pages 项目名,所有发布都只进这一个项目保持 fanzy-product 即可。不用先去后台建,第一次发布时会自动创建。规则:小写字母、数字、连字符;不能以 ifanzy 开头(那是研发环境)。如果提示名字已被占用,换一个,例如 fanzy-product-pm
siteUrl工作台首页地址留空 = 自动使用 https://<项目名>.pages.dev。以后绑定了自定义域名再填,例如 https://pm.example.com

发布后的地址:

工作台首页   https://fanzy-product.pages.dev/
每个版本     https://v20261030-login-welcome.fanzy-product.pages.dev/   (由版本号自动生成)

如果工作台里没有 deploy/cloudflare.json,复制一份 deploy/cloudflare.example.json 改名即可,或者对 AI 说「帮我生成 cloudflare.json」,然后把两个值私下填进去。不要把 Token 发在 AI 对话里,直接用文本编辑器填进文件更安全。

⑦(建议)访问保护

站点里有未上线功能的截图和 demo,默认任何拿到链接的人都能打开。建议开启邮箱验证,只让公司邮箱访问。项目第一次发布后(后台能看到 fanzy-product)再做:

保护各版本链接(一键)

  1. Workers & Pages → 点项目 fanzy-product → Settings → General
  2. 找到 Access policy,点 Enable access policy
  3. 这会保护所有 *.fanzy-product.pages.dev 的版本链接,默认只允许你账号的邮箱。要让同事访问,点进生成的策略把规则改成「Emails ending in @公司域名」

保护工作台首页

  1. 左侧 Zero Trust → Access → Applications → Add an application → Self-hosted
  2. Application domain 填 fanzy-product.pages.dev
  3. Policy:Action 选 Allow,Include 选「Emails ending in」→ 填 @公司域名
  4. 保存。之后打开链接需要输入公司邮箱收验证码

Zero Trust 首次进入会让你选套餐,选 Free(50 人以内免费),可能需要绑卡但不扣费。不开保护也能正常使用。

⑧ 自检

你帮我自检一下工作台
AI准备检查全部通过 ✔ · GitHub 只读 key 已就位,仓库可以访问 · Cloudflare Token 有效(项目 fanzy-product 尚未创建,首次发布时自动创建) 可以开始需求了。
自检提示回到哪一步
缺少 git/github.json / 找不到 GitHub 只读 key / GitHub 仓库无法访问① ②,以及 GitHub 常见问题
缺少 deploy/cloudflare.json / accountId 未填写④
apiToken 未填写 / Token 无效或权限不足⑤:确认权限是 Account · Cloudflare Pages · Edit、账号选对了、没有过期
projectName 不能是研发环境项目⑥:换一个不以 ifanzy 开头的名字
无法连接 Cloudflare网络问题,稍后重试

全部通过后,按 最小例子 完整走一遍。