MuseMVP
MuseMVP 文档
配置

环境变量

区分本地绑定、根目录生产变量与部署目标,配置 OAuth、邮件、支付和密钥。

先区分三个位置

Flare 的本地开发与远程部署有不同的配置入口。不要把官网 Next.js 应用的环境变量原样复制过来。

位置使用者用途
apps/web/.dev.varsVite / Wrangler 本地运行时本地 APP_URL、认证密钥、可选服务密钥
根目录 .envmuse CLI部署账户、生产地址、生产认证及集成密钥
packages/cli/src/target-resources.ts部署资源规划Worker、D1、R2、队列与死信队列名称

根目录 .env 由 CLI 加载,包括 init 入口;它不会自动成为 Vite 的本地运行时变量,也不会让 init 部署到远程。init 创建或保留本地认证密钥,并执行本地数据库初始化。

首次准备生产配置

在仓库根目录复制示例:

cp .env.example .env

填写自己的值,下面只展示变量的形状:

CLOUDFLARE_ACCOUNT_ID=your-account-id
CLOUDFLARE_API_TOKEN=your-deployment-token
APP_URL=https://app.your-domain.com
AUTH_SECRET=replace-with-a-random-secret-at-least-32-characters
MAIL_FROM=Your Product <[email protected]>
ADMIN_EMAIL=[email protected]

CLOUDFLARE_API_TOKEN 仅供管理资源和发布使用,不是应用 API Key。不要加入前端变量、源码片段或浏览器包。AUTH_SECRET 至少 32 个字符;已有生产环境迁移时应保留原值,否则旧会话可能失效。

APP_URL 使用单一 HTTPS origin,不包含路径、查询、片段、账号或端口。未提供时 CLI 可推导 Workers 子域名;自定义域部署应显式填写最终地址,避免认证回调或 Origin 校验使用错误域名。ADMIN_EMAIL 只有在相同邮箱的账号注册并验证后才用于提升管理员,不会自动创建生产账号。

配置按什么顺序生效

CLI 保留进程中已有的变量,因此优先级为:终端或 CI 环境变量、根目录 .env、.muse/<target>.secrets.json 提供的默认值。排查“修改 .env 没有效果”时,先检查终端是否导出了同名变量,不要打印整个环境。

.env、.dev.vars、部署状态及目标生成配置属于本机文件,不能提交。换电脑时通过安全渠道迁移必要的生产输入;仅拉取 Git 不会恢复密钥。

按功能启用服务

功能变量同时需要完成
Google 登录GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET控制台授权回调 /api/auth/callback/google
GitHub 登录GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRETOAuth App 回调 /api/auth/callback/github
TurnstileTURNSTILE_SITE_KEY / TURNSTILE_SECRET域名白名单;站点 Key 可公开,Secret 仅服务端
StripeSTRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET产品价格映射、签名 Webhook
CreemCREEM_API_KEY / CREEM_WEBHOOK_SECRET产品映射与 Webhook
DodoDODO_API_KEY / DODO_WEBHOOK_SECRET环境一致的产品 ID 与 Webhook
WaffoWAFFO_MERCHANT_ID / WAFFO_PRIVATE_KEY单行私钥,换行写成 \n;签名与产品配置

支付还必须在 packages/config 中启用网关并补齐产品映射,仅填写密钥不会让结账可用。邮件、AI、D1、R2 与 Queues 还依赖 Worker binding,不能用一个 API Key 替代 binding。

检查与排障

pnpm muse:doctor --target production --json
pnpm muse:deploy --target production --plan --json

先解决 doctor 的阻断项,再审查 plan 中的目标名称、账户、迁移及创建动作。--plan 不创建资源。

  • OAuth 按钮不出现:核对同一 provider 的两个变量是否都设置,并检查 /api/public/auth 的公开配置。
  • 本地正常、生产登录失败:核对 APP_URL、域名、生产 AUTH_SECRET 和回调 URL。
  • 变量似乎没更新:检查进程优先级,并重新启动本地开发服务。
  • Workers Builds 找不到变量:在构建环境设置加密变量;远程构建不会读取你电脑上的根目录 .env。

下一步阅读 部署流程 与 支付配置。

本页目录