环境变量

所有环境变量统一配置在根目录 .env 文件中,前后端共享。

cp .env.example .env

安全机制

变量按前缀区分访问范围:

前缀可访问范围说明
PUBLIC_前端 + 官网 + 后端会暴露到浏览器,不要放敏感信息
无前缀仅后端不会出现在前端打包产物中

后端变量(仅服务端)

基础配置

变量说明示例
NODE_ENV运行环境development / production
CONFIG_SUFFIX配置文件后缀example
ALLOWED_ORIGINS允许的跨域来源,逗号分隔example.com,app.example.com

数据库 & 缓存

变量说明示例
POSTGRES_CONNECTION_STRINGPostgreSQL 连接串postgresql://admin:admin@localhost:5432/readystart
VALKEY_CONNECTION_STRINGValkey/Redis 连接串redis://localhost:6379
VALKEY_PREFIX缓存 key 前缀prod:

JWT

变量说明示例
JWT_SECRETJWT 签名密钥your-secret-key
JWT_EXPIRES_INToken 过期时间365d

Stripe 支付

变量说明
STRIPE_SECRET_KEYStripe API 密钥
STRIPE_WEBHOOK_SECRET_KEYWebhook 签名密钥

邮件(SMTP)

变量说明示例
MAIL_SEND_ENABLED是否启用邮件发送true / false
MAIL_HOSTSMTP 主机email-smtp.us-east-1.amazonaws.com
MAIL_PORTSMTP 端口587
MAIL_USERSMTP 用户名
MAIL_PASSSMTP 密码
MAIL_FROM_NAME发件人名称Your App Name
MAIL_FROM_ADDRESS发件人邮箱no-reply@example.com
MAIL_SUPPORT_URL支持页面链接https://www.example.com/support
MAIL_UNSUBSCRIBE_URL退订链接https://console.example.com/settings/notifications

Google OAuth

变量说明
GOOGLE_CLIENT_IDGoogle OAuth Client ID

Cloudflare Turnstile

变量说明
TURNSTILE_VERIFY_URL验证接口地址
TURNSTILE_SECRET_KEY服务端密钥

Cloudflare R2 存储

变量说明
R2_ACCOUNT_IDCloudflare Account ID
R2_ACCESS_KEY_IDR2 访问密钥
R2_SECRET_ACCESS_KEYR2 密钥
R2_BUCKET_NAME存储桶名称
R2_PUBLIC_DOMAIN公开访问域名

AWS(可选)

EC2/ECS 设置 IAM Role 则不需要配置。

变量说明
AWS_REGIONAWS 区域
AWS_ACCESS_KEY_ID访问密钥
AWS_SECRET_ACCESS_KEY密钥

前端变量(PUBLIC_ 前缀)

前端(console)和官网(website)共享,会暴露到浏览器。

变量说明示例
PUBLIC_BACK_END后端 API 地址http://localhost:16888
PUBLIC_CONSOLE_URL前端地址(也用于 Stripe 回调)http://localhost:5173
PUBLIC_TITLE应用名称Your App Name
PUBLIC_GOOGLE_CLIENT_IDGoogle OAuth Client ID(前端用)
PUBLIC_TURNSTILETurnstile 前端 Site Key
PUBLIC_SUPPORT_EMAIL联系邮箱(条款页展示)support@example.com
PUBLIC_LEDAL_TERMS服务条款链接/legal/terms
PUBLIC_LEDAL_PRIVACY隐私政策链接/legal/privacy
PUBLIC_CONSOLE_CLARITY_PROJECT_IDConsole Clarity 项目 ID(可选)
PUBLIC_WEBSITE_CLARITY_PROJECT_IDWebsite Clarity 项目 ID(可选)