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