chore: 完成全量功能迭代与部署准备

- 移除冗余依赖包
- 新增账号禁用校验与用户管理能力
- 新增文档下载与管理页面文件展示
- 新增API文档页面与用户管理前端页面
- 重构时区处理与docker-compose部署配置
- 完善测试用例与项目文档
This commit is contained in:
2026-08-01 00:02:42 +08:00
parent f92eff6f65
commit 6c6f690788
19 changed files with 2000 additions and 485 deletions
+27 -2
View File
@@ -1,6 +1,23 @@
# ============================================================
# QMDSearch — 部署 compose(相对路径,可任意目录部署)
# ------------------------------------------------------------
# 数据库数据 / 配置 / 代码 / 前端 全部从本地目录挂载,
# 日常更新(改代码或前端)只需改文件 + `docker compose restart app`
# 无需重新 build 镜像。
#
# 说明:
# - 相对路径相对于本 compose 文件所在目录(即项目根目录)解析,
# 因此直接把整个项目目录放到 NAS(或任意主机)即可部署。
# - app 服务复用已构建的 qmdsearch-app 镜像作为「带依赖的运行时」
# (Python 依赖装在镜像内,代码与前端构建产物走挂载)。
# - 仅当 Python 依赖(pyproject.toml)变化时,才需 `docker build -t qmdsearch-app .` 一次。
# - 数据目录默认 ./data,可通过 .env 的 NAS_DATA_DIR 覆盖到其他磁盘。
# ============================================================
services:
app:
build: .
# 不再 build 项目代码,改用已含依赖的运行时镜像;代码与前端均走下方挂载
image: qmdsearch-app:latest
container_name: qmdsearch-app
restart: unless-stopped
ports:
@@ -13,7 +30,7 @@ services:
# 针对 16 线程 / 61GB 内存的 NAS 调优:放宽入库并发
- INGEST_MAX_CONCURRENCY=${INGEST_MAX_CONCURRENCY:-4}
env_file:
- .env
- ./.env
depends_on:
qdrant:
condition: service_started
@@ -22,6 +39,14 @@ services:
ollama:
condition: service_started
volumes:
# ---- 代码(本地,改后 restart 即生效,免 build----
- ./app:/app/app
- ./scripts:/app/scripts
# ---- 前端构建产物(本地 frontend/dist,改前端后 build 到此目录 + restart----
- ./frontend/dist:/app/app/static/admin
# ---- 配置(显式文件映射,只读)----
- ./.env:/app/.env:ro
# ---- 数据 / 日志(持久化)----
- ${NAS_DATA_DIR:-./data}/logs:/app/logs
- ${NAS_DATA_DIR:-./data}/uploads:/app/uploads
networks: