# 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=FastapiAdmin