Files
pear-admin-flask/start.bat
T
bwstudio 1214bfdf4a 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。
2026-09-05 20:46:12 +08:00

64 lines
1.8 KiB
Batchfile
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.
@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] 启动 FlaskPEAR_ENV=%MODE%...
set "PEAR_ENV=%MODE%"
"%VENV_PY%" "%APP%"
endlocal