1.4 KiB
1.4 KiB
仓库为 monorepo 根目录,按职责拆分为三个顶层子工程:
backend/:Express + Sequelize 后端,入口src/app.js,按领域分层组织——config/加载数据库、Redis、日志等运行时配置;models/定义 Sequelize 模型并通过index.js统一导出;routes/暴露 REST 接口;services/封装外部依赖(Curve 客户端、S3/OSS 存储、Meilisearch、OTA 存储、用户初始化);middleware/提供鉴权与请求体大小限制;validators/使用 zod 校验入参;utils/集中 JWT 与密码工具。frontend/:基于 Vite + Vue3 + Naive UI 的管理后台,包含packages/下的内部 pnpm workspace 子包(alova、axios、hooks、materials、scripts、uno-preset、utils),业务路由与页面位于src/views/,状态由 Pinia store 管理,API 调用集中在src/service/api。autoeq/:存放历史测量数据 CSV/TXT 与生成脚本,作为离线参考数据集。
部署层由根级 docker-compose.yml 编排两个服务:backend 基于 backend/Dockerfile 构建 Node 镜像,frontend 直接使用 nginx:alpine 挂载 frontend/dist 静态资源,两者共享 audio-network 网络并通过 /api 反向代理通信;宿主机卷 /data/projects/source 用于 X9 OTA 升级包持久化。本地开发可通过 pnpm --dir frontend build && ./scripts/upload.sh all 一键构建并上传至服务器。