Files
DjangoAdmin_FastAPI_NaiveVue/.env
T
2026-09-12 22:51:55 +08:00

192 lines
6.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# +======================================================================
# | 模块: 环境配置文件模板
# | 说明: 提供完整的 .env 配置示例,包含应用、数据库、缓存、JWT、验证码等
# +======================================================================
# ============================================================
# 基础配置
# ============================================================
# 应用名称 - 用于界面显示和系统标识
FASTAPI_NAME=FastAPI+NaiveVue旗舰版
# 应用版本 - 当前版本号
FASTAPI_VERSION=v3.0.0
# 应用运行地址 - 服务绑定的IP地址,127.0.0.1表示仅本地访问
FASTAPI_HOST=127.0.0.1
# 应用运行端口 - 服务监听的端口号
FASTAPI_PORT=8031
# 应用启动文件 - 项目入口Python文件
FASTAPI_APP=main.py
# 应用环境变量 - 运行环境:development/production/testing
FASTAPI_ENV=development
# 是否DEBUG模式 - True:开启调试(详细错误日志),False:关闭
FASTAPI_DEBUG=True
# 是否DEMO模式 - True:演示模式(限制写操作),False:正常模式
FASTAPI_DEMO=False
# 应用文件上传路径 - 用户上传文件的物理存储目录
# 默认取项目根目录下的 uploads
# FASTAPI_UPLOAD_DIR=/data/apps/uploads
# 文件访问域名 - 文件资源的CDN/访问域名
FASTAPI_FILE_URL='http://images.fastapi.naivevue.djangoadmin.cn'
# 允许上传的文件扩展名 - 逗号分隔,带点号
# 生产环境务必配置,防止上传.py、.exe、.sh等危险文件
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
# 示例:
# MySQL: DB_DRIVER=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_USERNAME=root DB_PASSWORD=***
# PostgreSQL: DB_DRIVER=postgresql DB_HOST=127.0.0.1 DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=***
# SQL Server: DB_DRIVER=mssql DB_HOST=127.0.0.1 DB_PORT=1433 DB_USERNAME=sa DB_PASSWORD=***
# Oracle: DB_DRIVER=oracle DB_HOST=127.0.0.1 DB_PORT=1521 DB_USERNAME=<schema用户> DB_PASSWORD=***
# (DB_DATABASE 即服务名 service_name,schema 是连接用户)
# SQLite: DB_DRIVER=sqlite DB_DATABASE=dev.db(DB_DATABASE 即数据库文件完整路径)
DB_DRIVER='mysql'
# 数据库地址 - 数据库服务器IP或域名(sqlite 时忽略)
DB_HOST='127.0.0.1'
# 数据库端口 - MySQL:3306 / PostgreSQL:5432 / SQL Server:1433 / Oracle:1521
DB_PORT=3306
# 数据库名称 - 要连接的数据库名;Oracle 时即服务名 service_name;SQLite 时作为数据库文件路径
DB_DATABASE='djangoadmin.fastapi.naivevue'
# 数据库账号 - 连接数据库的用户名(sqlite 时忽略)
DB_USERNAME='root'
# 数据库密码 - 连接数据库的密码(sqlite 时忽略)
DB_PASSWORD='root'
# 数据表前缀 - 所有数据表统一前缀
DB_PREFIX='fastapi_'
# 是否开启调试模式 - True:输出SQL执行日志,False:不输出
DB_DEBUG=True
# ============================================================
# 缓存配置
# ============================================================
# 缓存服务地址 - Redis服务器IP或域名
REDIS_HOST='127.0.0.1'
# 缓存服务端口 - Redis默认端口6379
REDIS_PORT=6379
# 缓存服务密码 - Redis认证密码(REDIS_AUTH为True时生效)
REDIS_PASSWORD="123456"
# 缓存库索引 - Redis数据库编号(0-15)
REDIS_INDEX=0
# 是否启用用户认证 - True:需要密码验证,False:无需验证
REDIS_AUTH=True
# 是否自动解码响应 - True:返回字符串,False:返回字节数据
REDIS_DECODE_RESPONSES=True
# ============================================================
# JWT令牌配置
# ============================================================
# JWT密钥 - 用于令牌签名和验证,至少32字节,务必使用强随机密钥
# 生成方式:python -c "import secrets; print(secrets.token_urlsafe(48))"
JWT_SALT='VHMlRyV000Tx8xbGtV7k0JG7RhRPE90_oPmUU3c2IzG_3B1ApWIJt1LGLWe83vOG'
# JWT令牌过期时间(分钟)- 默认20分钟
JWT_EXPIRE_MINUTES=20
# 登录失败次数上限 - 同一IP+用户名连续失败超过此次数后锁定
LOGIN_FAIL_MAX=5
# 登录锁定时间(秒)- 锁定期间禁止该IP+用户名登录
LOGIN_LOCK_SECONDS=300
# ============================================================
# 验证码配置
# ============================================================
# 验证码字符长度(4-6位)
CAPTCHA_LENGTH=6
# 验证码过期时间(秒),默认5分钟
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 与代理配置
# ============================================================
# CORS允许的源 - 逗号分隔
CORS_ALLOWED_ORIGINS=http://localhost:8001
# 可信代理层数 - 0=不信任X-Forwarded-For,>=1 表示在反向代理后
TRUSTED_PROXY_COUNT=0
# ============================================================
# 邮件配置
# ============================================================
# 邮件传输代理
MAIL_MAILER='smtp'
# 邮件服务地址
MAIL_SERVER='smtp.163.com'
# 邮件服务端口
MAIL_PORT=465
# 是否启用SSL加密
MAIL_USE_SSL=True
# 授权邮箱用户名
MAIL_USERNAME=''
# 授权邮箱授权码
MAIL_PASSWORD=''
# 邮件加密串
MAIL_ENCRYPTION=''
# 邮件发件人名称
MAIL_FROM_NAME=''
# 邮件发件人地址
MAIL_FROM_ADDRESS=''
# ============================================================
# 短信配置
# ============================================================
# 短信服务地址
SMS_URL=''
# 短信服务API密钥
SMS_API_KEY=''
# 短信签名
SMS_SIGN=''
# 短信模板ID
SMS_TEMPLATE_ID=''
# ============================================================
# 请求限流(可选,默认关闭)
# ============================================================
# 是否启用请求级 IP 限流中间件
# RATE_LIMIT_ENABLED=False
# 单窗口内每个 IP 最大请求数
# RATE_LIMIT_LIMIT=100
# 统计窗口时长(秒)
# RATE_LIMIT_WINDOW_SECONDS=60
# Redis 计数 key 前缀
# RATE_LIMIT_KEY_PREFIX=rl: