MuseMVP 文档
快速构建

环境变量

基于 .env.local.example 的模块化配置指南(按步骤完成)。

本页与 .env.local.example 保持一致,按模块一步一步配置。每一步都附带对应站内文档跳转,便于你在需要时深入查看细节。

配置顺序建议

建议按本页顺序执行:先完成基础连接与认证,再接入邮件、支付、存储、AI,最后处理部署策略。

.env.local.example

模块配置流程

站点与数据库模块

NEXT_PUBLIC_SITE_URL="http://localhost:3000"
DATABASE_CONNECTION_STRATEGY="database_url_first"
DATABASE_URL="postgres://..."

相关文档:

认证与 OAuth 模块

BETTER_AUTH_SECRET="replace-with-strong-random-secret"
GITHUB_CLIENT_ID="..."
GITHUB_CLIENT_SECRET="..."
GOOGLE_CLIENT_ID="..."
GOOGLE_CLIENT_SECRET="..."
NEXT_PUBLIC_GOOGLE_ONE_TAP_CLIENT_ID="..."

提示

BETTER_AUTH_SECRET 必须替换为高强度随机值;不要复用 .env.local.example 中的示例值。

better-auth 官方提供了在线生成以及本地 bash 脚本生成两种方式:

openssl rand -base64 32

相关文档:

人机校验模块(Turnstile / CAPTCHA)

NEXT_PUBLIC_TURNSTILE_SITE_KEY="..."
CAPTCHA_SECRET_KEY="..."

说明:

  • NEXT_PUBLIC_* 变量会暴露到浏览器,仅放可公开值。
  • 服务端校验密钥只放在非公开变量中。

相关文档:

邮件模块(Resend)

RESEND_API_KEY="re_xxx"

校验点:

  • 注册/验证邮件可发送
  • 发件域名已验证

相关文档:

计费模块(Creem / Stripe)

MUSE_BILLING_DEFAULT_GATEWAY="muse_creem"
MUSE_CREEM_GATEWAY_API_KEY="creem_xxx"
MUSE_CREEM_GATEWAY_WEBHOOK_SECRET="whsec_xxx"
MUSE_CREEM_GATEWAY_ENV="sandbox"
NEXT_PUBLIC_MUSE_CREEM_PRICE_PRO_MONTHLY_ID="prod_xxx"
NEXT_PUBLIC_MUSE_CREEM_PRICE_PRO_YEARLY_ID="prod_xxx"
NEXT_PUBLIC_MUSE_CREEM_PRICE_LIFETIME_ID="prod_xxx"

相关文档:

存储模块(S3 / R2)

S3_ACCESS_KEY_ID="..."
S3_SECRET_ACCESS_KEY="..."
S3_ENDPOINT="https://xxx.r2.cloudflarestorage.com"

可选变量:

NEXT_PUBLIC_AVATARS_BUCKET_NAME="musemvp-com"
NEXT_PUBLIC_AVATARS_PROXY_URL="https://static.example.com"

相关文档:

AI 模块

GOOGLE_GENERATIVE_AI_API_KEY="AIxxxxxxxxxxxxxxxxxxx"

校验点:

  • AI 页面请求模型成功
  • 服务端无缺少 Key 的错误日志

相关文档:


上线前核查

发布前必须确认

不要将任何真实密钥提交到仓库。.env.local.example 只保留模板值。

所有占位值(YOUR_* / xxx)已替换为真实配置。

本地、测试、生产环境变量分离管理,不共用密钥。

新增环境变量时,同步更新 .env.local.example 与本文档。