更新 wiki
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
schema_version: 1
|
||||
module_path: ""
|
||||
title: Audio Dashboard 全栈项目根(前后端 + 部署编排)
|
||||
scope: []
|
||||
source_files: []
|
||||
depends_on: []
|
||||
related_to: []
|
||||
@@ -0,0 +1 @@
|
||||
Node.js 22 (Alpine) + Express + Sequelize + Redis + Meilisearch + AWS S3;前端 Vite + Vue3 + Naive UI + UnoCSS + Alova;容器编排使用 Docker Compose,Nginx 托管静态资源。
|
||||
@@ -0,0 +1,6 @@
|
||||
仓库为 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` 一键构建并上传至服务器。
|
||||
@@ -0,0 +1 @@
|
||||
音频设备曲线与 OTA 升级管理后台,采用 Node.js 后端 + Vue3 前端双包结构,通过 Docker Compose 编排 Nginx 与 API 服务。
|
||||
@@ -0,0 +1 @@
|
||||
首次部署需在服务器 `/data/project/dashboard/` 创建 `.env`(参考 `.env.example`),然后执行 `./scripts/upload.sh all` 上传前端 dist、后端源码与 compose 文件,再在服务器上运行 `docker compose build --no-cache backend && docker compose up -d`。本地非 Docker 开发时,根目录 `.env` 中设置 `PORT=8083`,分别启动 `cd backend && pnpm start` 与 `cd frontend && pnpm dev`。
|
||||
@@ -0,0 +1,5 @@
|
||||
- 后端按领域分层:每个实体对应独立的 `models/<Entity>.js`、`routes/<entity>.js`、`validators/<entity>.js`,并在 `models/index.js` 中统一注册关联。
|
||||
- 环境变量通过 `backend/src/config/loadEnv.js` 集中加载,所有模块从该配置对象读取而非直接访问 `process.env`。
|
||||
- 对外响应统一经 `backend/src/utils/response.js` 包装,保持 `{ code, message, data }` 一致结构。
|
||||
- 前端 API 调用集中在 `frontend/src/service/api/*.ts`,通过统一的 `frontend/src/service/request/` 封装的 alova 实例发起请求。
|
||||
- Docker 部署时容器内端口固定为 8000,宿主机映射到 8083,Nginx 将 `/api` 反向代理到 `http://backend:8000`。
|
||||
Reference in New Issue
Block a user