Files
dashboard/.qoder/repowiki/knowledge/zh/Audio Dashboard 全栈项目根(前后端 + 部署编排)/架构设计.md
T
2026-07-17 17:17:22 +08:00

1.4 KiB
Raw Blame History

仓库为 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 一键构建并上传至服务器。