主要变更: config - 引入 python-dotenv,从 .env 加载 SECRET_KEY / MAIL_* / SQLALCHEMY_DATABASE_URI - 拆分 BaseConfig / DevConfig / ProConfig,PEAR_ENV 控制切换 - ProConfig 在 init_app() 校验 SECRET_KEY,禁止使用默认值 ops - 新增 /healthz 端点:DB 探活 + 环境名 + 时间戳,失败返回 503 - 新增 start.bat (Windows) / Makefile (跨平台) 一键启动 / 初始化 - 新增 .env.example 模板;.gitignore 排除 .env / logs / vscode 等 - 新增 docs/DEPLOY.md(部署指南)和 docs/SECURITY.md(安全清单) - app.py 不再硬编码 debug=False,交给配置类决定 本提交不包含上一次会话的其它工作树修改(模板/导航相关),后续单独 PR。
41 lines
1.3 KiB
Bash
41 lines
1.3 KiB
Bash
# ============================================================
|
||
# Pear Admin Flask - 环境变量示例
|
||
# ============================================================
|
||
# 用法:
|
||
# 1) 复制本文件:cp .env.example .env
|
||
# 2) 按需修改 .env 中的值(不要提交 .env 到 git)
|
||
# 3) 应用启动时由 applications/__init__.py 自动 load_dotenv 读取
|
||
#
|
||
# 加载优先级:系统环境变量 > .env > 代码默认值
|
||
# ============================================================
|
||
|
||
# ---- 运行模式 ----
|
||
# dev: 开发模式(DEBUG=True,自动生成 SECRET_KEY,无需外部传入)
|
||
# production: 生产模式(DEBUG=False,强制要求 SECRET_KEY)
|
||
PEAR_ENV=dev
|
||
|
||
# ---- 安全 ----
|
||
# 生产模式必填。可用以下命令生成:
|
||
# python -c "import secrets; print(secrets.token_urlsafe(48))"
|
||
SECRET_KEY=
|
||
|
||
# ---- 数据库 ----
|
||
# 默认是项目根目录下的 SQLite pear.db;生产推荐 MySQL。
|
||
# MySQL 示例:
|
||
# SQLALCHEMY_DATABASE_URI=mysql+pymysql://user:pass@127.0.0.1:3306/pear?charset=utf8mb4
|
||
# SQLALCHEMY_DATABASE_URI=
|
||
|
||
# ---- 邮件(Flask-Mail)----
|
||
# QQ 邮箱示例
|
||
MAIL_SERVER=smtp.qq.com
|
||
MAIL_USE_TLS=false
|
||
MAIL_USE_SSL=true
|
||
MAIL_PORT=465
|
||
MAIL_USERNAME=your_account@qq.com
|
||
MAIL_PASSWORD=your_authorization_code_here
|
||
MAIL_DEFAULT_SENDER=your_account@qq.com
|
||
|
||
# ---- Flask ----
|
||
# FLASK_APP=app.py
|
||
# FLASK_DEBUG=1
|