# AnanBanana · 生产环境变量模板 # 用法: cp deploy/.env.example deploy/.env && 编辑真实值 # docker compose --env-file deploy/.env up -d --build # 注意: .env 含机密,勿提交版本库(已在 .gitignore 忽略)。 # ---- 对外访问 ---- WEB_PORT=80 # nginx 对外端口(TLS 建议由外层 LB 终止或另配 443) # ---- 控制面鉴权(B1/H3:所有管理写操作需 Authorization: Bearer 此 token)---- # 生产必填(留空则生产模式下管理端点一律 503);控制台在浏览器 localStorage.ananbanana_admin_token 存同值。 ANANBANANA_ADMIN_TOKEN=change-me-strong-admin-token # CORS 白名单(H4:逗号分隔的可信控制台源;同源 nginx 反代可留空)。 ANANBANANA_CORS_ORIGINS= # ---- 数据库 / 缓存口令 ---- POSTGRES_PASSWORD=change-me-strong-pg-pass GRAFANA_USER=admin GRAFANA_PASSWORD=change-me-strong-grafana-pass # ---- 真实算力面(GPUStack 管理 API,BFF 用)---- # 缺省会让控制面返回 503 而不是假集群(生产模式)。 GPUSTACK_URL=http://:30080 GPUSTACK_KEY= GPUSTACK_API_VERSION=v2 # ---- 真实推理网关(LiteLLM gateway 用)---- LITELLM_MASTER_KEY=sk-change-me-litellm-master GPUSTACK_STRONG_API_BASE=http://:30080/v1-openai # 强模型 OpenAI 兼容出口 GPUSTACK_WEAK_API_BASE=http://:30080/v1-openai # 弱模型出口(可同上) GPUSTACK_API_KEY= STRONG_MODEL=ananbanana-strong WEAK_MODEL=ananbanana-weak VKEY_TENANT_PRO=sk-tenant-pro-change-me # 预置租户虚拟 key(示例;真实签发走密钥管理) VKEY_TENANT_BASIC=sk-tenant-basic-change-me # ---- Token 治理增强:限流 / 缓存 / 并发(M6.1/M18)---- # Redis 承载语义缓存 + 限流计数 + 并发闸。生产多副本务必配,否则限流回退进程内(跨副本不精确)。 REDIS_URL=redis://redis:6379/0 REDIS_PASSWORD=change-me-strong-redis-pass # 同步 docker-compose 的 --requirepass(M18) RATE_LIMIT_BACKEND=auto # auto(有 Redis 用 Redis,否则进程内)/ redis / memory RATE_LIMIT_ENABLED=1 # 置 0 整体关闭限流 CONCURRENCY_WAIT_MS=0 # 并发超限:0=直接 429;设 1000~2000ms 开"有界短排队" REQUEST_MAX_SECONDS=300 # 并发槽安全 TTL(持有者崩溃后自愈上限,秒) # ---- 调用日志 / 应用日志 / 审计保留(M9.x / H10 / M3)---- LOG_LEVEL=INFO # 结构化应用日志级别(bff/gateway) REQUEST_LOG_ENABLED=0 # 是否采集请求内容(默认关:审计只留元数据,隐私优先) REQUEST_LOG_LEVEL=meta # meta(仅元数据)| prompt(含提示词)| full(提示词+响应) REQUEST_LOG_SAMPLE=1.0 # 采集采样率 0..1 REQUEST_LOG_REDACT=1 # 脱敏(邮箱/长数字/sk- 密钥打码) REQUEST_LOG_RETENTION_DAYS=30 # 审计/日志保留天数(POST /api/logs/purge 或 cron 清理) IDEMPOTENCY_TTL_SECONDS=86400 # Idempotency-Key 幂等缓存 TTL(秒,默认 24h;M22)