适用:内网 / 家庭 / 小团队(≤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 上部署时跑一遍文档步骤即可。
22 lines
796 B
Python
22 lines
796 B
Python
"""
|
|
前台公开蓝图:导航聚合页 / 分类详情页 / 关于本站
|
|
|
|
URL 前缀:/site(避免与后台 / 路由冲突)
|
|
鉴权要求:无(任何用户都可访问,含未登录匿名用户)
|
|
|
|
注意:不要给这些视图加 @authorize 装饰器,否则会强制登录_required。
|
|
"""
|
|
from applications.view.public.nav import bp as nav_bp
|
|
from applications.view.public.about import bp as about_bp
|
|
from applications.view.public.friend import bp as friend_bp
|
|
|
|
|
|
# 把 nav 蓝图作为 public 包的对外入口
|
|
bp = nav_bp
|
|
|
|
|
|
def register_public_bp(app):
|
|
"""注册 public 子蓝图"""
|
|
app.register_blueprint(about_bp)
|
|
app.register_blueprint(friend_bp)
|
|
# /healthz 已在 applications/view/health.py 注册(位于 applications/view/__init__.py),不在这里重复 |