feat(ops): 环境变量化配置 + 健康检查 + 启动脚本 + 部署/安全文档
主要变更: 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。
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
@echo off
|
||||
REM ============================================================
|
||||
REM Pear Admin Flask 一键启动脚本(Windows / cmd)
|
||||
REM
|
||||
REM 用法:
|
||||
REM start.bat 开发模式启动(默认)
|
||||
REM start.bat pro 生产模式启动(要求 .env 已设 SECRET_KEY)
|
||||
REM start.bat init 仅初始化数据库 + 导入 admin 数据
|
||||
REM start.bat migrate 仅做 db migrate / upgrade
|
||||
REM ============================================================
|
||||
setlocal
|
||||
|
||||
set "VENV_PY=venv\Scripts\python.exe"
|
||||
set "APP=app.py"
|
||||
set "MODE=%~1"
|
||||
|
||||
if "%MODE%"=="" set "MODE=dev"
|
||||
|
||||
echo [start.bat] 模式=%MODE%
|
||||
|
||||
REM 1) 准备虚拟环境(首次)
|
||||
if not exist "%VENV_PY%" (
|
||||
echo [start.bat] 创建虚拟环境 venv ...
|
||||
python -m venv venv
|
||||
if errorlevel 1 (
|
||||
echo [start.bat][错误] 创建 venv 失败,请确认系统已安装 Python 3.8+
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM 2) 安装依赖
|
||||
echo [start.bat] 安装依赖 ...
|
||||
"%VENV_PY%" -m pip install --upgrade pip >nul
|
||||
"%VENV_PY%" -m pip install -r requirements.txt
|
||||
if errorlevel 1 (
|
||||
echo [start.bat][错误] 安装依赖失败
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 3) 数据库迁移 + admin 初始化(仅首次或有变更时执行)
|
||||
if /I "%MODE%"=="init" goto do_init
|
||||
if /I "%MODE%"=="migrate" goto do_migrate
|
||||
|
||||
:do_init
|
||||
echo [start.bat] 初始化数据库(migrate + upgrade) ...
|
||||
"%VENV_PY%" -m flask db migrate
|
||||
"%VENV_PY%" -m flask db upgrade
|
||||
echo [start.bat] 导入 admin 基础数据 ...
|
||||
"%VENV_PY%" -m flask admin init
|
||||
echo [start.bat] 初始化完成。可以执行 start.bat 启动服务。
|
||||
exit /b 0
|
||||
|
||||
:do_migrate
|
||||
"%VENV_PY%" -m flask db migrate
|
||||
"%VENV_PY%" -m flask db upgrade
|
||||
exit /b 0
|
||||
|
||||
REM 4) 启动
|
||||
echo [start.bat] 启动 Flask(PEAR_ENV=%MODE%)...
|
||||
set "PEAR_ENV=%MODE%"
|
||||
"%VENV_PY%" "%APP%"
|
||||
|
||||
endlocal
|
||||
Reference in New Issue
Block a user