Skip to content

Commit 62807ae

Browse files
committed
fix(env): 补全 .env.example 缺失变量并转发 prod compose 环境变量
1 parent 829c858 commit 62807ae

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

‎.env.example‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ SUPABASE_JWT_SECRET=
4747
# Supabase 项目 URL(用于后端验证 JWT issuer)
4848
SUPABASE_URL=https://your-project-id.supabase.co
4949

50+
# Supabase 服务端密钥(Service Role Key,仅供服务端调用,禁止暴露给前端)
51+
SUPABASE_SERVICE_KEY=your-service-role-key
52+
53+
# Supabase JWT 签名算法(HS256/RS256/ES256)
54+
# SUPABASE_JWT_ALGORITHM=RS256
55+
5056
# 开发者白名单(AI 网关):逗号分隔的 Supabase user_id 或邮箱,
5157
# 命中的账号完全豁免平台配额(不限流/不限费用)并赋予 lifetime 最高身份,
5258
# 仅供开发者自测,切勿在生产环境加入普通用户。
@@ -56,6 +62,25 @@ SUPABASE_URL=https://your-project-id.supabase.co
5662
SYNC_SERVICE_PORT=8080
5763
AI_GATEWAY_PORT=8000
5864

65+
# AI 网关预算控制(每日 token/费用上限,0=不限制)
66+
# BUDGET_DAILY_TOKEN_LIMIT=100000
67+
# BUDGET_DAILY_COST_LIMIT=10
68+
69+
# AI 网关开发降级模式(生产环境缺密钥时拒绝启动;仅开发环境可显式开启)
70+
# GATEWAY_ALLOW_DEV_AUTH=false
71+
72+
# OpenTelemetry 导出端点(可选,配置后网关上报 trace 到 OTLP Collector)
73+
# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
74+
75+
# 付费系统(面包多,可选——未配置时付费功能禁用)
76+
# PAYMENT_PROVIDER=mianbaoduo
77+
# PAYMENT_API_KEY=your-mianbaoduo-api-key
78+
# PAYMENT_API_SECRET=your-mianbaoduo-api-secret
79+
# PAYMENT_WEBHOOK_SECRET=your-webhook-secret
80+
# PAYMENT_API_BASE_URL=https://api.mianbaoduo.com
81+
# PAYMENT_TIMEOUT_MS=5000
82+
# PAYMENT_RETRY_COUNT=3
83+
5984
# --- 生产部署配置 ---
6085

6186
# CORS 允许的前端域名(多个用逗号分隔)

‎server/docker-compose.prod.yml‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,26 @@ services:
114114
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
115115
REDIS_URL: redis://:${REDIS_PASSWORD:-entropy-decrease_redis_prod}@redis:6379/1
116116
SYNC_SERVICE_URL: http://sync-service:8080
117+
# JWT 验证密钥:网关校验请求方身份(与 sync-service 同一套签发/验证密钥)
118+
JWT_SECRET: ${JWT_SECRET}
117119
SUPABASE_JWT_SECRET: ${SUPABASE_JWT_SECRET:-}
118120
SUPABASE_URL: ${SUPABASE_URL:-}
121+
SUPABASE_SERVICE_KEY: ${SUPABASE_SERVICE_KEY:-}
122+
# 预算控制(每日 token/费用上限,0=不限制)
123+
BUDGET_DAILY_TOKEN_LIMIT: ${BUDGET_DAILY_TOKEN_LIMIT:-0}
124+
BUDGET_DAILY_COST_LIMIT: ${BUDGET_DAILY_COST_LIMIT:-0}
125+
# 付费系统(面包多,可选)
126+
PAYMENT_PROVIDER: ${PAYMENT_PROVIDER:-}
127+
PAYMENT_API_KEY: ${PAYMENT_API_KEY:-}
128+
PAYMENT_API_SECRET: ${PAYMENT_API_SECRET:-}
129+
PAYMENT_WEBHOOK_SECRET: ${PAYMENT_WEBHOOK_SECRET:-}
130+
PAYMENT_API_BASE_URL: ${PAYMENT_API_BASE_URL:-}
131+
PAYMENT_TIMEOUT_MS: ${PAYMENT_TIMEOUT_MS:-5000}
132+
PAYMENT_RETRY_COUNT: ${PAYMENT_RETRY_COUNT:-3}
133+
# 生产环境禁止开发降级模式(缺密钥时必须拒绝启动而非放行)
134+
GATEWAY_ALLOW_DEV_AUTH: "false"
135+
# OpenTelemetry 导出(可选)
136+
OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT:-}
119137
CORS_ORIGINS: ${CORS_ORIGINS:-*}
120138
depends_on:
121139
redis:

0 commit comments

Comments
 (0)