环境变量
所有环境变量统一配置在根目录 .env 文件中,前后端共享。
cp .env.example .env
安全机制
变量按前缀区分访问范围:
| 前缀 | 可访问范围 | 说明 |
|---|
PUBLIC_ | 前端 + 官网 + 后端 | 会暴露到浏览器,不要放敏感信息 |
| 无前缀 | 仅后端 | 不会出现在前端打包产物中 |
后端变量(仅服务端)
基础配置
| 变量 | 说明 | 示例 |
|---|
NODE_ENV | 运行环境 | development / production |
CONFIG_SUFFIX | 配置文件后缀 | example |
ALLOWED_ORIGINS | 允许的跨域来源,逗号分隔 | example.com,app.example.com |
数据库 & 缓存
| 变量 | 说明 | 示例 |
|---|
POSTGRES_CONNECTION_STRING | PostgreSQL 连接串 | postgresql://admin:admin@localhost:5432/readystart |
VALKEY_CONNECTION_STRING | Valkey/Redis 连接串 | redis://localhost:6379 |
VALKEY_PREFIX | 缓存 key 前缀 | prod: |
JWT
| 变量 | 说明 | 示例 |
|---|
JWT_SECRET | JWT 签名密钥 | your-secret-key |
JWT_EXPIRES_IN | Token 过期时间 | 365d |
Stripe 支付
| 变量 | 说明 |
|---|
STRIPE_SECRET_KEY | Stripe API 密钥 |
STRIPE_WEBHOOK_SECRET_KEY | Webhook 签名密钥 |
邮件(SMTP)
| 变量 | 说明 | 示例 |
|---|
MAIL_SEND_ENABLED | 是否启用邮件发送 | true / false |
MAIL_HOST | SMTP 主机 | email-smtp.us-east-1.amazonaws.com |
MAIL_PORT | SMTP 端口 | 587 |
MAIL_USER | SMTP 用户名 | — |
MAIL_PASS | SMTP 密码 | — |
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_ID | Google OAuth Client ID |
Cloudflare Turnstile
| 变量 | 说明 |
|---|
TURNSTILE_VERIFY_URL | 验证接口地址 |
TURNSTILE_SECRET_KEY | 服务端密钥 |
Cloudflare R2 存储
| 变量 | 说明 |
|---|
R2_ACCOUNT_ID | Cloudflare Account ID |
R2_ACCESS_KEY_ID | R2 访问密钥 |
R2_SECRET_ACCESS_KEY | R2 密钥 |
R2_BUCKET_NAME | 存储桶名称 |
R2_PUBLIC_DOMAIN | 公开访问域名 |
AWS(可选)
EC2/ECS 设置 IAM Role 则不需要配置。
| 变量 | 说明 |
|---|
AWS_REGION | AWS 区域 |
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_ID | Google OAuth Client ID(前端用) | — |
PUBLIC_TURNSTILE | Turnstile 前端 Site Key | — |
PUBLIC_SUPPORT_EMAIL | 联系邮箱(条款页展示) | support@example.com |
PUBLIC_LEDAL_TERMS | 服务条款链接 | /legal/terms |
PUBLIC_LEDAL_PRIVACY | 隐私政策链接 | /legal/privacy |
PUBLIC_CONSOLE_CLARITY_PROJECT_ID | Console Clarity 项目 ID(可选) | — |
PUBLIC_WEBSITE_CLARITY_PROJECT_ID | Website Clarity 项目 ID(可选) | — |