快速构建
环境变量
基于 .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_*变量会暴露到浏览器,仅放可公开值。- 服务端校验密钥只放在非公开变量中。
相关文档:
计费模块(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"相关文档:
上线前核查
发布前必须确认
不要将任何真实密钥提交到仓库。.env.local.example 只保留模板值。
所有占位值(YOUR_* / xxx)已替换为真实配置。
本地、测试、生产环境变量分离管理,不共用密钥。
新增环境变量时,同步更新 .env.local.example 与本文档。