# +====================================================================== # | 模块: 环境变量示例文件 # | 说明: .env.example 模板,复制为 .env 后填写真实值 # +====================================================================== # ============================================================ # 环境变量示例文件(.env.example) # ------------------------------------------------------------ # 用法:复制为 .env 后填写真实值 # cp .env.example .env (Windows: copy .env.example .env) # 重要: # 1. 本文件提交进仓库,只允许占位值,禁止填写任何真实密钥! # 2. 真实 .env 已被 .gitignore 忽略,不会进入版本控制。 # 3. 构建/分发镜像时 .env 被 .dockerignore 排除, # 环境变量由运行时注入(docker compose env_file / docker run --env-file)。 # ============================================================ # ============================================================ # 基础配置 # ============================================================ # 应用名称 - 用于界面显示和系统标识 FASTAPI_NAME=FastAPI+AntdVue旗舰版 # 应用版本 - 当前版本号 FASTAPI_VERSION=v3.0.0 # 应用运行地址 - 127.0.0.1仅本地访问;容器/生产建议 0.0.0.0 FASTAPI_HOST=0.0.0.0 # 应用运行端口 - 服务监听的端口号 FASTAPI_PORT=8031 # 应用启动文件 - 项目入口Python文件 FASTAPI_APP=main.py # 应用环境变量 - development/production/testing FASTAPI_ENV=production # 是否DEBUG模式 - 生产务必 False(详细错误日志会泄漏内部信息) FASTAPI_DEBUG=False # 是否DEMO模式 - True:演示模式(限制写操作),False:正常模式 FASTAPI_DEMO=False # 文件访问域名 - 文件资源的CDN/访问域名(生产请配置真实域名) FASTAPI_FILE_URL=http://file.fastapi.antdvue # 允许上传的文件扩展名 - 逗号分隔,带点号;生产务必收紧,防止上传危险文件 UPLOAD_ALLOWED_EXTS=.jpg,.jpeg,.png,.gif,.bmp,.ico,.txt,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.mp3,.mp4,.zip,.rar,.7z # 上传文件大小上限(MB) UPLOAD_MAX_SIZE_MB=10 # ============================================================ # 数据库配置 # ============================================================ # 数据库驱动 - 可选 mysql/postgresql/mssql/oracle/sqlite # (别名:postgres=postgresql、sqlserver=mssql、sqlite3=sqlite) DB_DRIVER=mysql # 数据库地址(sqlite 时忽略) DB_HOST=127.0.0.1 # 数据库端口(sqlite 时忽略) DB_PORT=3306 # 数据库名称/库名;DB_DRIVER=sqlite 时作为数据库文件完整路径 DB_DATABASE=djangoadmin.fastapi.antdvue # 数据库账号(sqlite 时忽略) DB_USERNAME=root # 数据库密码 - 必填(sqlite 除外),替换为真实密码 DB_PASSWORD=CHANGE_ME_DB_PASSWORD # 数据表前缀 DB_PREFIX=fastapi_ # 是否开启SQL调试日志 - 生产务必 False DB_DEBUG=False # ============================================================ # 缓存配置(Redis) # ============================================================ # 缓存服务地址 REDIS_HOST=127.0.0.1 # 缓存服务端口 REDIS_PORT=6379 # 缓存服务密码 - REDIS_AUTH=True 时必填 REDIS_PASSWORD=CHANGE_ME_REDIS_PASSWORD # 缓存库索引(0-15) REDIS_INDEX=0 # 是否启用Redis认证 REDIS_AUTH=True # 是否自动解码响应 REDIS_DECODE_RESPONSES=True # ============================================================ # JWT令牌配置 # ============================================================ # JWT签名密钥 - 必填,至少32字节强随机值;留空应用会拒绝启动(fail-close) # 生成方式:python -c "import secrets; print(secrets.token_urlsafe(48))" JWT_SALT= # JWT令牌过期时间(分钟) JWT_EXPIRE_MINUTES=20 # 登录失败次数上限(防暴力破解) LOGIN_FAIL_MAX=5 # 登录锁定时间(秒) LOGIN_LOCK_SECONDS=300 # ============================================================ # 验证码配置 # ============================================================ # 验证码字符长度(4-6位) CAPTCHA_LENGTH=6 # 验证码过期时间(秒) CAPTCHA_EXPIRE=300 # 验证码防刷窗口期(秒) CAPTCHA_RATE_WINDOW=60 # 验证码防刷上限(窗口期内最大获取次数) CAPTCHA_RATE_LIMIT=10 # 验证码字符集(去除易混淆字符) CAPTCHA_CHARS=ABCDEFGHJKLMNPQRSTUVWXYZ2346789 # 验证码字体路径 CAPTCHA_FONT_PATH=static/fonts/Vera.ttf # 验证码图片宽度(像素) CAPTCHA_IMAGE_WIDTH=160 # 验证码图片高度(像素) CAPTCHA_IMAGE_HEIGHT=50 # 验证码字体大小 CAPTCHA_FONT_SIZE=28 # 干扰线数量 CAPTCHA_NOISE_LINES=6 # 噪点数量 CAPTCHA_NOISE_DOTS=30 # ============================================================ # 跨域 & 反向代理 # ============================================================ # CORS允许的源 - 逗号分隔,如 http://localhost:8001,https://admin.example.com CORS_ALLOWED_ORIGINS=http://localhost:8001 # 可信代理层数 - 0=不信任X-Forwarded-For;仅部署在Nginx等反代后才设>=1 TRUSTED_PROXY_COUNT=0 # 可信代理IP白名单(逗号分隔) TRUSTED_PROXY_IPS= # ============================================================ # 邮件配置 # ============================================================ # 邮件传输代理 MAIL_MAILER=smtp # 邮件服务地址 MAIL_SERVER=smtp.163.com # 邮件服务端口 MAIL_PORT=465 # 是否启用SSL加密 MAIL_USE_SSL=True # 授权邮箱用户名 MAIL_USERNAME=CHANGE_ME_MAIL_USERNAME # 授权邮箱授权码 MAIL_PASSWORD=CHANGE_ME_MAIL_PASSWORD # 邮件加密串(可选) MAIL_ENCRYPTION= # 邮件发件人名称 MAIL_FROM_NAME= # 邮件发件人地址 MAIL_FROM_ADDRESS= # ============================================================ # 短信配置(阿里云短信服务) # ============================================================ # 短信服务地址 SMS_URL= # 短信服务API密钥 SMS_API_KEY= # 短信签名 SMS_SIGN= # 短信模板ID SMS_TEMPLATE_ID= # ============================================================ # 请求限流(可选,默认关闭) # ============================================================ # RATE_LIMIT_ENABLED=False # RATE_LIMIT_LIMIT=100 # RATE_LIMIT_WINDOW_SECONDS=60 # RATE_LIMIT_KEY_PREFIX=rl: