生产环境不要把敏感值写进 wrangler.jsonc。下面 3 个值应通过 Cloudflare Worker secrets 注入:
PASSWORD
CF_API_TOKEN
CF_ACCOUNT_ID
推荐命令:
wrangler secret put PASSWORD
wrangler secret put CF_API_TOKEN
wrangler secret put CF_ACCOUNT_ID如果你通过 GitHub Actions 部署,也应该先在 Cloudflare Worker 上写入这些 secrets,而不是只放在 GitHub Secrets 里。
WORKER_NAME
SLUG_LENGTH
D1_DATABASE_NAME
ANALYTICS_DATASET
D1_DATABASE_ID
THEME_URL 已废弃。生产环境前端静态资源现在直接来自 Worker 绑定的 dist/,不再依赖 GitHub Pages。
Cloudflare 官方 deploy button 支持直接从公开 GitHub 仓库完成构建和部署。
项目地址:
https://github.com/Tokinx/Fig
一键部署链接:
https://deploy.workers.cloudflare.com/?url=https://github.com/Tokinx/Fig
仓库里的 wrangler.jsonc 已声明:
ASSETSSQLITEANALYTICSvars
因此 Cloudflare 会按配置自动创建对应资源并写回新仓库副本。根据官方文档,Deploy to Cloudflare 会读取源仓库中的 Wrangler 配置,并自动 provision D1、Analytics 等资源。
部署工作流 .github/workflows/deploy-workers.yml 仅在 main 分支推送以下变更时触发:
src/web/**src/workers/**public/**index.htmlpackage.jsonvite.config.tswrangler.jsonc
Pull Request 不再直接触发生产部署,只做构建校验。
工作流会自动执行:
bun installbun run build- 使用
wrangler.jsonc - 使用
cloudflare/wrangler-action部署 Worker 与dist/
WORKER_NAME = "fig"
SLUG_LENGTH = "5"
D1_DATABASE_NAME = "slug"
ANALYTICS_DATASET = "fig_url_analytics"
其中:
SLUG_LENGTH、ANALYTICS_DATASET这类非敏感配置保留在wrangler.jsonc的varsPASSWORD、CF_API_TOKEN、CF_ACCOUNT_ID使用 Worker secrets
- 不要把真实 Cloudflare Token、Account ID 或数据库 ID 写入仓库中的
wrangler.jsonc - 不要在
wrangler.jsonc中使用不存在的secret字段,Wrangler 会忽略它 - 本地开发请使用
.dev.vars,并确保该文件不提交到仓库 - 生产部署只应该由
main分支触发
如果部署失败,优先检查:
CF_API_TOKEN是否具备 Workers/D1 所需权限D1_DATABASE_ID是否正确dist/index.html是否在构建阶段成功生成