适用:内网 / 家庭 / 小团队(≤50 并发),无 K8s 需求。
特性:单容器 + SQLite + 端口暴露,最小维护成本。
新增:
- deploy/nas/Dockerfile: python:3.11-slim 基础镜像 + 非 root + HEALTHCHECK
- deploy/nas/start.sh: flask db upgrade 幂等迁移 + gunicorn (2 workers × 4 threads)
- deploy/nas/docker-compose.yaml: 单服务 + 4 个命名卷 (db/logs/session/upload) + 资源限制
- docs/deployment-nas.md: 完整部署/备份/升级/排障指南
完善:
- .env.example: 改为生产环境导向 (PEAR_ENV=pro,SECRET_KEY 必填)
- .dockerignore: 排除 deploy/dev (开发用容器配置)、tests/截图、一次性脚本
- applications/view/public/__init__.py: 注释说明 /healthz 已在 applications/view/health.py 注册
复用现有:
- /healthz 接口 (applications/view/health.py) 含 DB 探活,DB 不可达返回 503
→ 容器 HEALTHCHECK 直接用 /healthz 即可
⚠️ 本机无 docker,未执行 docker build 验证;已静态校验 YAML/bash 语法、
文件路径、.env 字段消费、ProConfig 严格性、/healthz 端点可用性。
首次 NAS 上部署时跑一遍文档步骤即可。
44 lines
1.5 KiB
Bash
44 lines
1.5 KiB
Bash
# =====================================================
|
||
# Pear Admin Flask - 生产环境变量模板
|
||
# =====================================================
|
||
# 使用方式:
|
||
# 1. 复制本文件为 .env: cp .env.example .env
|
||
# 2. 修改 SECRET_KEY 为强随机值(必填)
|
||
# 3. 邮件 / 数据库如不需要可保持注释状态
|
||
# 4. docker compose 会自动读取同级目录的 .env
|
||
# =====================================================
|
||
|
||
# ---- 运行模式 ----
|
||
# 必填:dev / pro(pro 会强制校验 SECRET_KEY)
|
||
PEAR_ENV=pro
|
||
|
||
# ---- Flask 应用入口 ----
|
||
FLASK_APP=app.py
|
||
|
||
# ---- 安全密钥(生产必填,强随机)----
|
||
# 生成命令:python -c "import secrets; print(secrets.token_urlsafe(48))"
|
||
SECRET_KEY=PLEASE_REPLACE_WITH_RANDOM_STRING
|
||
|
||
# ---- 数据库 ----
|
||
# 默认 SQLite,存到容器内 /app/pear.db(已挂载为命名卷 pear_db,重启不丢)
|
||
# 如需切换 MySQL:
|
||
# SQLALCHEMY_DATABASE_URI=mysql+pymysql://user:pass@db:3306/pear?charset=utf8mb4
|
||
# SQLALCHEMY_DATABASE_URI=sqlite:///../pear.db
|
||
|
||
# ---- 时区 ----
|
||
TZ=Asia/Shanghai
|
||
|
||
# ---- 邮件(可选,未启用找回密码等功能可不填)----
|
||
# MAIL_SERVER=smtp.qq.com
|
||
# MAIL_PORT=465
|
||
# MAIL_USE_SSL=true
|
||
# MAIL_USERNAME=yourname@qq.com
|
||
# MAIL_PASSWORD=authorization_code_here
|
||
# MAIL_DEFAULT_SENDER=yourname@qq.com
|
||
|
||
# ---- 监听端口(容器内部)----
|
||
# 仅在 docker-compose.yaml 的 ports 段同步修改时使用;默认 5000
|
||
APP_PORT=5000
|
||
|
||
# ---- Gunicorn worker 数量(NAS 单容器推荐 2-4)----
|
||
# GUNICORN_WORKERS=2 |