1.5 KiB
1.5 KiB
仓库采用前后端分离、Docker Compose 编排的单体部署形态:
backend/src为 Express 应用,入口app.js通过routes/index.js聚合各业务路由(auth、brands、models、ota、blacklist、users 等),按 MVC 分层组织:models/使用 Sequelize 定义数据模型并统一由models/index.js初始化连接;services/封装外部依赖(S3、Redis EQ 缓存、Meilisearch、squiglink 曲线服务、OTA 存储);middleware/注入认证与请求体大小限制;validators/用 zod 校验入参。frontend/为 Vue 3 + Element Plus SPA,Vite 构建产物dist/由 Nginx 容器静态托管,并通过/api反向代理到后端 8000 端口;src/api/按领域拆分 API 调用,views/对应功能页面,components/存放通用组件(TabsView、ChangePasswordDialog 等)。frontend_v2/是基于 Soybean Admin 模板的重构分支,采用 pnpm workspace 多包结构(@soybeanjs/axios、hooks、scripts 等),尚未替换主前端。autoeq/存放第三方测量 CSV/TXT 数据及日期归档,供 OTA 推送时读取频响曲线。- 根级
docker-compose.yml编排 backend(Node 22 Alpine 镜像)与 frontend(nginx:alpine)两个服务,共享audio-network网络,宿主机卷挂载/data/projects/source用于 X9 OTA 包本地存储。 - 部署脚本
scripts/upload.sh负责将 dist、后端源码、compose 文件上传至服务器/data/project/dashboard/,环境变量集中维护在根.env。