配置说明

配置说明

项目通过环境变量配置。建议先填必填项,让项目跑起来,再按业务需要逐步打开外部服务。

最小必填项

变量作用
DATABASE_URLDrizzle 和 Better Auth 使用的 PostgreSQL 连接串
BETTER_AUTH_SECRET用于签名认证/session 数据
BETTER_AUTH_URLBetter Auth callback 和 cookie 使用的站点地址

示例:

DATABASE_URL="postgresql://postgres:password@localhost:5432/nextdevtpl"
BETTER_AUTH_SECRET="replace-with-a-random-secret"
BETTER_AUTH_URL="http://localhost:3000"

开发阶段推荐配置

服务变量说明
GitHub OAuthGITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET回调地址:/api/auth/callback/github
Google OAuthGOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET回调地址:/api/auth/callback/google
ResendRESEND_API_KEY, EMAIL_FROM开启真实邮件验证和重置密码邮件

如果没有配置邮件,先测试不依赖邮件投递的认证流程。

可选产品服务

服务变量用途
CreemCREEM_API_KEY, CREEM_WEBHOOK_SECRET订阅 checkout、积分购买、webhook
S3/R2STORAGE_ENDPOINT, STORAGE_REGION, STORAGE_BUCKET, STORAGE_ACCESS_KEY_ID, STORAGE_SECRET_ACCESS_KEY文件上传和代理访问
Upstash RedisUPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKENAPI 和匿名访问限流
AxiomAXIOM_TOKEN, AXIOM_DATASET云端结构化日志
SentryNEXT_PUBLIC_SENTRY_DSN, SENTRY_AUTH_TOKEN错误监控和 release 上传
AI ProviderOPENAI_API_KEY 以及供应商相关配置src/lib/ai 抽象层
InngestINNGEST_EVENT_KEY, INNGEST_SIGNING_KEY生产后台任务

降级策略

可选服务不应该阻断基础启动。预期行为如下:

缺少服务预期行为
Redis限流降级,不让应用启动失败
Axiom日志输出到本地
Sentry监控 no-op 或 console-only
Storage上传功能不可用,但应用外壳可运行
Creem支付流程不可用,非支付页面可运行
Inngest keys本地开发不强依赖生产签名密钥

常改配置入口

路径修改内容
src/config/site.ts站点名、URL、metadata、社交链接
src/config/nav.tsHeader、Footer、Dashboard、Admin 导航
src/config/payment.ts支付产品和 checkout 配置
src/config/subscription-plan.ts套餐限制和价格展示
messages/*.jsonUI 文案
.env.local本地密钥和服务凭证

本页目录