Tanplate Docs

环境配置

按 Capability Profile 配置公开变量、Worker secret 与 Cloudflare binding。

Tanplate 只要求当前 Capability Profile 实际使用的环境项。关闭某项能力后,对应变量、secret 和 binding 不应继续留在部署清单中。

配置分层

类型配置位置是否可提交示例
项目意图project.manifest.json品牌、应用、功能、Provider、locale
公开变量apps/*/wrangler.jsoncvarsWEB_ORIGINTURNSTILE_SITE_KEY
资源 bindingapps/*/wrangler.jsoncDB、R2、Queue、AI、Rate Limiter
本地 secretapps/web/.dev.varsapps/admin/.dev.varsBETTER_AUTH_SECRET
远程 secret对应 Cloudflare Worker secretOAuth、Resend、Turnstile secret
部署身份获得授权的部署环境CLOUDFLARE_API_TOKEN

不要把 secret 写入 Wrangler vars

OAuth secret、BETTER_AUTH_SECRET、Resend key 和部署 token 只能进入本地 .dev.vars 或远程 Worker secret。仓库的构建门禁会扫描 Git tracked 文件与构建产物。

项目配置

先在 project.manifest.json 选择要部署的应用和功能:

project.manifest.json
{
  "apps": {
    "admin": { "deploy": true },
    "docs": { "deploy": true },
    "web": { "deploy": true }
  },
  "features": {
    "authentication": { "emailAndPassword": false, "enabled": true },
    "projects": { "enabled": true },
    "userAssets": { "enabled": true }
  }
}

修改 Manifest 后运行:

pnpm init:template
pnpm check:template

初始化器会生成公共配置快照,并按 Profile 管理受控的 Worker 名称、公开变量和 binding。它不会创建远程资源,也不会覆盖未知的 Wrangler 配置。

公开变量

条件应用名称用途
AuthenticationWebBETTER_AUTH_URLBetter Auth 对外 origin
Authentication 或 NewsletterWebWEB_ORIGIN可信站点与确认链接 origin
事务邮件WebAUTH_DELIVERY_ENVIRONMENTlocal / preview / production
Production AuthenticationWebTURNSTILE_SITE_KEY浏览器 Turnstile site key
NewsletterWebRESEND_FROM_EMAIL确认邮件发件地址
AnalyticsWebUMAMI_SCRIPT_URLUMAMI_WEBSITE_IDUmami 浏览器适配
AdminAdminADMIN_EMAILS管理员 bootstrap 身份白名单

公开变量不是 secret,但 Preview 与 Production 仍应使用各自的 origin、发件身份和 Provider 标识。

Worker secrets

条件应用名称
Authentication 或 NewsletterWebBETTER_AUTH_SECRET
AdminAdminBETTER_AUTH_SECRET
Google Social AuthWebGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
GitHub Social AuthWebGITHUB_CLIENT_IDGITHUB_CLIENT_SECRET
Production 事务邮件或 NewsletterWebRESEND_API_KEY
Production AuthenticationWebTURNSTILE_SECRET_KEY
NewsletterWebRESEND_WEBHOOK_SECRET
远程部署部署环境CLOUDFLARE_API_TOKEN

Web 与 Admin 同时部署且启用 Authentication 时,两个 Worker 必须使用相同的高强度 BETTER_AUTH_SECRET。Social Auth 凭据只配置在 Web,不复制到 Admin。

Cloudflare bindings

能力Binding
需要关系数据的 Web 功能 / AdminDB
ProjectsPROJECT_ASSETS_BUCKET
User AssetsUSER_ASSETS_BUCKET
CacheCACHE
JobsJOBS_QUEUEJOBS_DLQ
Product AIAI
Production Auth 防滥用AUTH_RATE_LIMITER

Web 与 Admin 同时消费同一模块时,共享目标环境中的 D1 或对应 R2 bucket;Preview 使用隔离资源。Docs Worker 不绑定业务 D1/R2。

本地环境

pnpm init:template 会为当前 Profile 准备受管的本地配置。只在 .dev.vars 中填写需要的 secret,不要提交该文件:

apps/web/.dev.vars
BETTER_AUTH_SECRET=replace-with-a-local-secret

本地 Auth protection 和邮件投递使用确定性 adapter,不会调用远程 Turnstile 或发送真实邮件。

验证环境

验证 Local inventory:

pnpm check:environment

验证 Local 部署清单:

pnpm plan:deployment -- --target local

Preview 或 Production 的 name-only dry-run 还必须声明 Git ref、部署变量和当前 Profile 所需的 secret 名称。完整可执行示例与授权边界见 部署网站,各模块的专用要求见 Cloudflare

On this page