Files
DjangoAdmin_Flask_EleVue/.env.example
T
2026-09-12 20:12:36 +08:00

137 lines
5.4 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.
# ============================================================
# DjangoAdmin Flask 环境变量模板
# ============================================================
# 使用方法:
# 1. 复制为 .env:cp .env.example .env
# 2. 填写 <占位符> 标记的敏感值(严禁将真实 .env 提交到版本库)
# 说明:.env 已被 .gitignore 忽略
# ============================================================
# ============================================================
# 应用基础配置(config/app.py)
# ============================================================
FLASK_NAME=Flask+EleVue旗舰版
FLASK_VERSION=v3.0.0
FLASK_APP=app.py
FLASK_ENV=development # development / production
FLASK_DEBUG=True # 生产环境必须为 False
FLASK_USE_RELOADER=False
FLASK_HOST=127.0.0.1
FLASK_PORT=8021
FLASK_SECRET_KEY=<必填,长度至少16字符,如生成随机串>
FLASK_DEMO=False # True=演示模式,拦截写操作
# 站点域名(定时任务等内部 HTTP 调用使用)
# FLASK_SITE_DOMAIN=http://127.0.0.1:8021
# 跨域白名单(多个用英文逗号分隔;配置后 CORS 允许携带凭证)
CORS_ALLOWED_ORIGINS=http://localhost:8001
# 上传配置
FLASK_UPLOAD_DIR=./uploads
FLASK_FILE_URL=http://file.flask.elevue
UPLOAD_ALLOWED_EXTS=.jpg,.jpeg,.png,.gif,.bmp,.webp,.svg,.ico,.txt,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.mp3,.mp4,.zip,.rar,.7z
UPLOAD_MAX_SIZE_MB=10
# 反向代理层数(0=无代理;1=前面有 1 层 Nginx)
PROXY_NUM=0
# ============================================================
# 数据库配置(config/database.py)
# ============================================================
# 数据库驱动 - 可选 mysql/postgresql/mssql/sqlite/oracle
# (别名:postgres=postgresql、sqlserver=mssql、sqlite3=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=***
# SQLite: DB_DRIVER=sqlite DB_DATABASE=dev.db(此时 DB_DATABASE 即数据库文件完整路径,
# 可填相对/绝对路径如 C:/apps/dev.db,忽略 host/port/user/password)
# Oracle: DB_DRIVER=oracle DB_HOST=127.0.0.1 DB_PORT=1521 DB_USERNAME=system DB_PASSWORD=***
# (DB_DATABASE 填 SERVICE_NAME,如 XEPDB1)
DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=djangoadmin.flask.elevue
DB_USERNAME=root
DB_PASSWORD=<必填>
DB_PREFIX=flask_
DB_DEBUG=True
DB_SSL=False
# 若开启 DB_SSL=True,配置以下证书路径
# DB_SSL_CA=
# DB_SSL_CERT=
# DB_SSL_KEY=
# ============================================================
# Redis 缓存(config/redis.py)
# ============================================================
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=<如有则填写,否则留空>
REDIS_INDEX=0
REDIS_AUTH=True # 是否启用密码认证
REDIS_DECODE_RESPONSES=True
# ============================================================
# JWT / 权限 / 白名单(config/auth.py)
# ============================================================
JWT_SALT=<必填,JWT 签名密钥,建议随机长串>
JWT_EXPIRE_MINUTES=20 # 滑动会话空闲超时(分钟),无请求则过期,活跃自动续期
JWT_ABSOLUTE_TIMEOUT_MINUTES=1440 # 令牌绝对有效期(分钟),防止无限续期,须≥JWT_EXPIRE_MINUTES
LOGIN_FAIL_MAX=5
LOGIN_LOCK_SECONDS=300
PERMISSION_ENABLED=True # 权限校验总开关(开发可关)
# 内部调用密钥(定时任务等无用户场景,通过 X-Scheduler-Key / X-Internal-API-Key 传递)
INTERNAL_API_KEY=<必填>
INTERNAL_ALLOWED_IPS=127.0.0.1
# 登录白名单(以下路径跳过登录校验)
LOGIN_WHITELIST_EXACT=/api/v1/login,/api/v1/captcha,/favicon.ico,/health
LOGIN_WHITELIST_PREFIX=/api/v1/job/sendSms,/public,/static,/api/webhook
LOGIN_WHITELIST_WILDCARD=/api/v1/job/*/send*,/api/v1/*/public*
LOGIN_WHITELIST_DEBUG=True
LOGIN_WHITELIST_LOG_ACCESS=True
# 验证码万能码(仅 FLASK_DEMO=True 时生效)
CAPTCHA_BYPASS_CODE=
# ============================================================
# 邮件(config/mail.py)
# ============================================================
MAIL_MAILER=smtp
MAIL_SERVER=smtp.163.com
MAIL_PORT=465
MAIL_USE_SSL=True
MAIL_ENCRYPTION=
MAIL_USERNAME=<必填>
MAIL_PASSWORD=<必填>
MAIL_FROM_NAME=
MAIL_FROM_ADDRESS=
# ============================================================
# 短信(config/sms.py,阿里云短信)
# ============================================================
SMS_PROVIDER=aliyun
SMS_ALIYUN_ACCESS_KEY_ID=<必填>
SMS_ALIYUN_ACCESS_KEY_SECRET=<必填>
SMS_ALIYUN_SIGN_NAME=<必填>
SMS_ALIYUN_ENDPOINT=dysmsapi.aliyuncs.com
SMS_ALIYUN_CONNECT_TIMEOUT=10000
SMS_ALIYUN_READ_TIMEOUT=10000
# ============================================================
# 验证码图片(config/captcha.py)
# ============================================================
CAPTCHA_LENGTH=6
CAPTCHA_EXPIRE=300
CAPTCHA_RATE_LIMIT=10
CAPTCHA_RATE_WINDOW=60
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