- A1 业务层统一 async:gencode 表内省改 run_sync 异步(不再阻塞事件循环)、 check_db 改 async_engine、dict_util 启动预热异步载入;psycopg 降为 APScheduler SQLAlchemyJobStore 专用同步孤岛(注释标注) - A2 测试真 PG 化:conftest 弃 SQLite + mock Redis,改连真实 PG16(dpb_test)+ Redis(number_gen advisory lock 路径真被测);新增 docker/test-compose.yaml 测试依赖栈(postgres:16:5433 + redis:7:6380);run_ci 前置探测 + 容器兜底, pytest -m pg 10 套正式 tc 全过(真实 PG16 + Redis) - B1 Redis 启动不强依赖:redis_connect 失败降级启动,缓存类回源 DB、存储类 (会话/AI 配置/调度)经 require_redis 守卫返回 503;真机 3 阶段降级测试 PASS=11 FAIL=0(独立 Redis 6390 + 后端 8091,不动共享 dev 服务) - C 扶正 DPB:后端横幅/日志(dpb.log)/README/pyproject/ai_factory agent 名、 前端 package.json/署名注释/链接文案/deploy.sh/docker 注释全部去 fastapiadmin; grep backend/app + frontend/web/src 零残留 - 验证:全量回归 pass=72 fail=0
58 lines
1.7 KiB
Bash
58 lines
1.7 KiB
Bash
# Docker 部署环境变量(案例)
|
||
# 生产配置已全部收敛到本文件,由 docker-compose 注入后端(镜像不再包含 backend/env)
|
||
|
||
# ── 数据库配置(PostgreSQL 16)──
|
||
DATABASE_TYPE=postgres
|
||
DATABASE_HOST=postgres
|
||
DATABASE_PORT=5432
|
||
DATABASE_USER=dpb
|
||
DATABASE_PASSWORD=your_database_password
|
||
DATABASE_NAME=dpb
|
||
|
||
# ── Redis 配置 ──
|
||
REDIS_PASSWORD=your_redis_password
|
||
REDIS_PORT=6379
|
||
|
||
# ── JWT 签名密钥(生产必须为独立随机值,如:openssl rand -hex 32;禁止默认值)──
|
||
SECRET_KEY=your_random_secret_key_at_least_32_chars
|
||
|
||
# ── 应用层配置 ──
|
||
# CORS 域名白名单(逗号分隔的具体域名;为空时后端 prod 校验将拒绝启动)
|
||
PROD_CORS_ORIGINS=https://admin.example.com,https://www.example.com
|
||
# Host 头白名单(nginx 反代时后端据此校验 Host,必须包含真实域名)
|
||
ALLOWED_HOSTS=["admin.example.com","*.example.com"]
|
||
# 是否信任 nginx 透传的客户端 IP 头(经可信代理时必须 true)
|
||
IP_TRUST_PROXY_HEADERS=true
|
||
# 登录暴力破解防护
|
||
LOGIN_MAX_FAILURES=5
|
||
LOGIN_FAILURE_WINDOW_SECONDS=900
|
||
LOGIN_LOCKOUT_SECONDS=900
|
||
# 登录验证码 / 演示模式 / 开发默认密码(生产必须保持为空!)
|
||
CAPTCHA_ENABLE=true
|
||
DEMO_ENABLE=false
|
||
DEV_DEFAULT_PASSWORD=
|
||
|
||
# ── SMTP 邮件(按需)──
|
||
SMTP_HOST=
|
||
SMTP_PORT=465
|
||
SMTP_USER=
|
||
SMTP_PASSWORD=
|
||
SMTP_FROM=
|
||
SMTP_FROM_NAME=客户服务
|
||
SMTP_TLS=true
|
||
EMAIL_CODE_EXPIRE_SECONDS=300
|
||
|
||
# ── 大模型(按需)──
|
||
OPENAI_BASE_URL=https://api.deepseek.com
|
||
OPENAI_API_KEY=
|
||
OPENAI_MODEL=deepseek-chat
|
||
|
||
# ── 服务端口 ──
|
||
BACKEND_PORT=8001
|
||
HTTP_PORT=80
|
||
HTTPS_PORT=443
|
||
|
||
# ── 部署 ──
|
||
DEPLOY_ENV=prod
|
||
PROJECT_NAME=dpb
|