# ---- 应用 ---- # 运行环境: development | production # production 启动时会强制校验:SECRET_KEY 非空且非弱值、鉴权已配置、DB 弱密码阻断。 APP_ENV=development LOG_LEVEL=INFO API_PORT=8000 FRONTEND_PORT=3000 # ---- 生产环境启动必填(缺少则拒绝启动) ---- # 1. SECRET_KEY: 加密主密钥与会话签名根密钥。 # 生成: openssl rand -base64 32 # 严禁使用 changeme/secret/123456 等弱值;变更后已加密配置无法解密。 SECRET_KEY= # 2. 管理鉴权(至少一项): # - ADMIN_PASSWORD: 后台登录初始密码(启动后自动 scrypt 哈希入库,之后在「系统配置」页修改) # - ADMIN_API_KEY: 脚本直连接口用的密钥(请求头 X-API-Key) # 两者都留空 = 不启用鉴权(仅本地开发)。 ADMIN_PASSWORD= ADMIN_API_KEY= # ---- 数据库 ---- POSTGRES_USER=football POSTGRES_PASSWORD=football POSTGRES_DB=football POSTGRES_PORT=5433 # 本地开发用 localhost;Docker Compose 内会被 environment 覆盖为 postgres 服务名 DATABASE_URL=postgresql+asyncpg://football:football@localhost:5432/football # ---- LLM (OpenAI-compatible,必填一个) ---- LLM_PROVIDER=openai LLM_API_KEY=sk-xxxx LLM_BASE_URL=https://api.openai.com/v1 LLM_MODEL=gpt-4o # 多 Agent 分档模型(留空则回落 LLM_MODEL) LLM_SPECIALIST_MODEL= LLM_AGGREGATOR_MODEL= # 单次 LLM 调用超时(秒) LLM_TIMEOUT=60 # ---- 数据源 ---- BZZOIRO_KEY= # ---- CORS ---- CORS_ORIGINS=http://localhost:5173,http://localhost:3000 # ---- 加密主密钥 ---- # 敏感配置(数据源/LLM API Key)入库加密与会话签名均由它派生。 # 只存部署机 .env,切勿入库或提交;生成: openssl rand -base64 32 # 变更后已加密配置无法解密,需在后台重新保存。 SECRET_KEY= # ---- 管理接口鉴权 ---- # 管理后台登录密码(/admin 页面与采集/回测/回填等管理接口)。 # 此处为初始值:启动时自动迁移为 scrypt 哈希入库,迁移后本行可删除。 # 之后请在后台「系统配置」页修改密码。留空 = 不启用密码登录(本地开发默认)。 ADMIN_PASSWORD= # 管理接口会话有效期(小时),默认 7 天 ADMIN_SESSION_TTL_HOURS=168 # 备选: 机器/脚本直接调接口用的密钥(请求头 X-API-Key),与密码二选一即可 ADMIN_API_KEY=