src/env.ts——以那个文件为准。本页是它的镜像,按类别组织,方便你一次复制粘贴,搞定 .env.local
(和 prod env)。
约定几条:
- 必填变量缺失或为空时启动报错。
- 可选变量默认为空字符串,对应模块静默 no-op。
NEXT_PUBLIC_*变量会进浏览器。永远别在里面放 secret。- CI build 步骤如果不需要真实值(Vercel preview build、Docker bake 等),设
SKIP_ENV_VALIDATION=true跳过校验。
Core
App 启动的最小集合。OAuth
每个 provider 独立——id + secret 都填启用,留空隐藏。邮件(Mail)
默认 Resend。RESEND_API_KEY 为空时邮件 facade 静默 no-op。
Newsletter — Beehiiv
只在siteConfig.newsletter.provider = 'beehiiv' 时生效。
支付 — Stripe
默认 provider。只有你实际在卖的*_PRICE_* id 才需要填。
支付 — Creem
仅当siteConfig.payment.provider = 'creem' 时生效。
AI providers
设AI_PROVIDER 切换 provider。mock 默认无需 key 也能流式输出假 token,
demo 页面开箱即用。
存储(S3 / R2)
默认是 stub——需要上传或签名下载时再接上。反 bot — Cloudflare Turnstile
两把 key 都填,启用 Turnstile 在 signup、forgot-password、newsletter 表单。客服
每次只挂一个,由siteConfig.customerService.provider 决定。每个 widget 自检 env 变量。
联盟(Affiliate)
siteConfig.affiliate.provider 选哪个,就填哪个对应的变量。internal provider 不需要 env 变量。
分析(Analytics)
每个脚本仅在自己 env 变量有值时挂载。可任意混搭。搜索引擎站长工具验证
每个变量通过 Next.jsmetadata.verification 在 <head> 渲染一个 <meta> 标签,
用来在对应站长后台证明所有权。服务端 env 变量(不带 NEXT_PUBLIC_ 前缀),
留空就不渲染对应标签。
GitHub 邀请分发
买家流程用它把付费用户加进你的源码私有 repo 当只读 collaborator。完整配置见 GitHub 邀请分发。杂项
另见
- Vercel 部署 —— 生产环境去哪粘。
- Cloudflare 部署 —— 每个 secret 用
wrangler secret put。 - 配置 ——
siteConfig开关决定哪个 provider 读哪些 key。