Files
pear-admin-flask/.env.example
T
bwstudio 98edfdaf2d feat(deploy): 个人 NAS 单机 Docker 部署方案
适用:内网 / 家庭 / 小团队(≤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 上部署时跑一遍文档步骤即可。
2026-09-06 18:35:31 +08:00

44 lines
1.5 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.
# =====================================================
# Pear Admin Flask - 生产环境变量模板
# =====================================================
# 使用方式:
# 1. 复制本文件为 .env cp .env.example .env
# 2. 修改 SECRET_KEY 为强随机值(必填)
# 3. 邮件 / 数据库如不需要可保持注释状态
# 4. docker compose 会自动读取同级目录的 .env
# =====================================================
# ---- 运行模式 ----
# 必填:dev / propro 会强制校验 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