Files
yi e9bff9beb3
Build and Push Docker Images / Build Backend Image (push) Has been cancelled
Build and Push Docker Images / Build Frontend Image (push) Has been cancelled
Build and Push Docker Images / Notify Build Complete (push) Has been cancelled
Update 2026-06-23 10:40:10
2026-06-23 10:40:10 +08:00

23 KiB
Raw Permalink Blame History

云睿资产管理系统

维护团队:云睿资产开源社区 版本2.1.1 | 更新2026-06-22

面向数据中心(IDC)运维与资产管理场景,提供机房、机柜、设备全生命周期管理,支持 3D 可视化、工单流转、耗材库存、资产盘点与 RBAC 权限控制。

层级 技术选型
后端 Node.js 20 + Express + Sequelize
前端 React 18 + Vite + Ant Design + Three.js
数据库 SQLite(开发默认)/ MySQL 8.0(生产推荐)
部署 Docker Compose / PM2 + Nginx / 本地开发

目录


快速开始

方式一:Docker 全栈部署(推荐)

适用于已安装 Docker 的服务器,一键启动前端、后端与 MySQL。

# 克隆项目
git clone https://code.xinmi.cloud/yunrui_asset.git
cd yunrui_asset

# 配置 JWT 密钥(生产环境必填)
# PowerShell 生成示例:
# node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
set JWT_SECRET=你的强随机密钥

# 启动全部服务(构建镜像)
docker compose -f docker-compose.full.yml up -d --build

# 写入示例数据(可选,含演示账号与机房/设备/工单)
docker exec yunrui_asset-backend node scripts/seed-example-data.js
服务 默认地址 说明
前端 http://localhost:12000 Nginx 托管 SPA,代理 /api
后端 API http://localhost:12001 容器内端口 8000
API 文档 http://localhost:12000/api-docs Swagger 交互文档
健康检查 http://localhost:12001/health 后端存活探测
MySQL localhost:12006 库名 yunrui_management
角色 用户名 密码 获取方式
管理员(演示) admin admin123 执行 seed-example-data.js 后可用
管理员(全新) 自行注册 自行设定 首个注册账号自动成为管理员

生产环境请立即修改默认密码与 MySQL 根密码(MYSQL_ROOT_PASSWORD)。

Docker 预构建镜像docker-compose.prod.yml,从仓库拉取,无需本地 build):

ghcr.io/xinmi/yunrui_asset-backend:latest
ghcr.io/xinmi/yunrui_asset-frontend:latest

方式二:本地开发

git clone https://code.xinmi.cloud/yunrui_asset.git
cd yunrui_asset
npm run install:all
cp backend/.env.example backend/.env
cd backend && node scripts/init-database.js && cd ..
npm start
服务 地址
前端 http://localhost:3000
后端 API http://localhost:8000
API 文档 http://localhost:8000/api-docs

项目结构

yunrui_asset/
├── frontend/          # React 前端(Vite
├── backend/           # Express 后端(models / routes / scripts
├── deploy/            # PM2、Nginx 部署配置
├── docs/              # 补充文档与截图目录
├── docker-compose.full.yml   # 全栈 Docker(推荐)
├── docker-compose.prod.yml   # 预构建镜像生产部署
├── install.js         # 一键安装脚本
└── README.md          # 本操作手册(权威文档)

源码地址https://code.xinmi.cloud/yunrui_asset


操作手册

1. 系统概述

1.1 产品简介

云睿资产管理系统(界面品牌名:云睿资产)用于统一管理多机房、多机柜下的服务器、网络、存储等设备,覆盖设备上架、端口接线、故障工单、耗材出入库、资产盘点、数据备份与操作审计等场景,并通过 3D 机柜视图与机房平面图辅助空间规划。

1.2 核心能力

模块 能力说明
数据看板 设备/机柜/功率统计与趋势图表
机房管理 多机房、平面图编辑、机柜网格布局
机柜管理 机柜 CRUD、批量导入导出、3D 可视化
设备管理 全生命周期、自定义字段、批量导入导出
端口与接线 设备端口、网卡绑定、线缆连接追踪
工单管理 故障报修、分类、统计、全流程状态
耗材管理 库存、SN 追踪、分类、操作日志归档
资产盘点 盘点计划、任务执行、盘盈设备审核
空闲设备 设备转入空闲、重新激活上架
系统管理 用户/角色 RBAC、系统设置、备份、操作日志
API 文档 Swagger 在线调试

1.3 技术架构

┌─────────────┐     /api、/uploads      ┌─────────────┐
│   浏览器     │ ◄──────────────────────► │  Nginx/前端  │
│  React SPA  │                          │  (端口 80)   │
└─────────────┘                          └──────┬──────┘
                                                │ 反向代理
                                         ┌──────▼──────┐
                                         │ Express API │
                                         │  (端口 8000) │
                                         └──────┬──────┘
                                                │
                              ┌─────────────────┼─────────────────┐
                              │                 │                 │
                       ┌──────▼──────┐   ┌──────▼──────┐   ┌──────▼──────┐
                       │   MySQL 8   │   │   SQLite    │   │ uploads/    │
                       │  (生产推荐)  │   │  (开发默认)  │   │ logs/ 备份  │
                       └─────────────┘   └─────────────┘   └─────────────┘

2. 环境要求

要求
操作系统 Windows 10+、macOS 12+、Linux
Node.js ≥ 20.10.0(见 .nvmrc
npm ≥ 6.0.0(推荐 10.x
Docker 20.10+Docker 部署时)
Docker Compose v2+
内存 最低 4 GB,推荐 8 GB+
磁盘 最低 2 GB,推荐 10 GB+

生产环境额外要求

要求
数据库 MySQL 8.0+
Web 服务器 Nginx 1.18+(非 Docker 部署时)
进程管理 PM2 5.x+(非 Docker 部署时)
JWT 密钥 生产环境必须在 .env 或环境变量中设置 JWT_SECRET

3. 安装与启动

3.1 Docker 全栈(docker-compose.full.yml

三个容器:MySQL、Backend、FrontendNginx + 静态资源)。

# 启动
docker compose -f docker-compose.full.yml up -d --build

# 查看状态
docker compose -f docker-compose.full.yml ps

# 查看后端日志
docker logs -f yunrui_asset-backend

# 停止
docker compose -f docker-compose.full.yml down

常用环境变量(可在项目根目录 .env 或命令行覆盖):

变量 默认值 说明
FRONTEND_PORT 12000 前端映射端口
BACKEND_PORT 12001 后端映射端口
MYSQL_PORT 12006 MySQL 映射端口
MYSQL_DATABASE yunrui_management 数据库名
MYSQL_ROOT_PASSWORD xinmi_password MySQL root 密码
JWT_SECRET (无默认) 生产必填

数据持久化:MySQL 数据卷 yunrui_asset-mysql-data;上传文件映射 backend/uploads;日志映射 backend/logs;备份映射 backend/backups

3.2 Docker 预构建镜像(docker-compose.prod.yml

适用于 CI 已构建好的镜像,无需本地编译:

cp .env.example .env
# 编辑 .env 设置 BACKEND_IMAGE、FRONTEND_IMAGE、backend/.env 数据库等
docker compose -f docker-compose.prod.yml up -d

前端默认映射 80 端口;后端通过 Nginx 内部网络访问,不直接暴露。

3.3 Linux 一键安装

git clone https://code.xinmi.cloud/yunrui_asset.git
cd yunrui_asset
./install.sh
# 或远程一键:curl -fsSL https://code.xinmi.cloud/yunrui_asset/raw/branch/main/install.sh | bash

install.sh 自动检测发行版、安装 Node.js 20.x,并调用 install.js 完成依赖安装、数据库初始化与 Nginx/PM2 配置。

3.4 Windows / 手动安装

git clone https://code.xinmi.cloud/yunrui_asset.git
cd yunrui_asset
node install.js
# 或:npm run deploy

手动步骤:

npm run install:all
cp backend/.env.example backend/.env
# 编辑 backend/.envJWT_SECRET、DB_TYPE 等
cd backend && node scripts/init-database.js && cd ..
npm start

3.5 安装脚本常用参数

# 非交互安装,使用 MySQL
node install.js -y --db=mysql

# 指定后端端口
node install.js -y --port=8000

# 跳过前端构建或 Nginx 配置
node install.js -y --skip-build --skip-nginx

更新与卸载:

node update.js          # 拉取代码、备份、迁移、重启
node uninstall.js       # 交互式卸载

4. 登录与账号

4.1 登录方式

  1. 浏览器访问前端地址(Docker 默认 http://localhost:12000,本地开发 http://localhost:3000)。
  2. 使用账号密码登录;未登录时自动跳转 /login
  3. 登录后 JWT Token 保存在浏览器,空闲超时后自动退出(时长可在系统设置中配置)。

image-20260623102522626

4.2 账号与角色

场景 用户名 密码 说明
示例数据 admin admin123 执行种子脚本后可用
全新部署 自行注册 自行设定 第一个注册账号自动获得管理员角色
后续用户 自行注册 自行设定 默认待管理员审核(pending 状态)

预置角色(种子脚本或「用户管理」中初始化):

角色编码 角色名 权限范围
admin 管理员 全部权限(*
operator 运维人员 设备/机柜/机房/耗材读写
viewer 只读用户 设备/机柜/机房/耗材只读

生产环境部署后请立即修改 admin123,并为用户分配最小必要角色。

4.3 写入示例数据

# Docker 环境
docker exec yunrui_asset-backend node scripts/seed-example-data.js

# 本地开发(backend 目录,需配置数据库连接)
cd backend && npm run seed

示例数据包含:2 个机房、4 个机柜、7 台设备、3 个业务、1 个库房、3 种耗材、3 条工单。脚本幂等,重复执行不会重复插入;强制重写可设 SEED_FORCE=1


5. 界面与模块导航

登录后左侧为功能菜单,顶部右侧显示当前用户与退出按钮。

一级菜单 子页面 路由
仪表盘 数据看板 /
机房管理 机房管理 /rooms
机柜管理 /racks
3D 机柜可视化 /visualization-3d
机房平面图 /floor-plan
资产管理 设备管理 /devices
空闲设备 /idle-devices
字段管理 /fields
端口管理 /ports
接线管理 /cables
耗材管理 耗材统计 /consumables-stats
耗材列表 /consumables
分类管理 /consumables-categories
操作日志 /consumables-logs
工单管理 工单列表 /tickets
故障分类 /ticket-categories
统计报表 /ticket-statistics
资产盘点 盘点计划 /inventory
盘盈设备 /pending-devices
系统管理 用户管理 /users
系统设置 /settings
数据备份 /backup
操作日志 /operation-logs
关于系统 /about

image-20260623102535356


6. 业务模块操作指南

6.1 数据看板

路径/

功能概述:汇总机房、机柜、设备数量与状态分布,展示功率与趋势图表。

元素 说明
统计卡片 设备总数、在线/离线、机柜利用率等
图表 按类型、状态、机房的分布与趋势
刷新 进入页面自动加载,可手动刷新

image-20260623102540102

6.2 机房与机柜管理

路径/rooms/racks

功能概述:维护机房基础信息、机柜规格与在机房中的行列位置;支持批量导入导出。

元素 说明
机房 名称、位置、面积、容量、网格行列
机柜 名称、U 高、最大功率、所属机房、行列坐标
平面图 /floor-plan 拖拽编辑机柜布局

image-20260623102549318

6.3 3D 机柜可视化

路径/visualization-3d

功能概述:Three.js 三维展示机柜内设备 U 位占用,支持旋转、缩放与设备详情查看。需浏览器支持 WebGL。

image-20260623102557409

6.4 设备管理

路径/devices

功能概述:设备全生命周期管理,支持上架到机柜或入库到库房,自定义扩展字段。

元素 说明
基本信息 名称、型号、序列号、类型、IP、功耗
位置 机柜 + U 位,或库房
状态 online / offline / maintenance 等
导入导出 Excel/CSV 批量操作
业务关联 可绑定一个或多个业务系统

image-20260623102610309

6.5 端口与接线管理

路径/ports/cables

功能概述:配置设备物理/逻辑端口,记录线缆两端连接关系,便于故障追踪与拓扑分析。

元素 说明
端口 端口号、类型、速率、绑定网卡
线缆 源/目标设备与端口、线缆类型与长度

6.6 工单管理

路径/tickets

功能概述:故障报修与维护工单从创建到关闭的全流程管理。

元素 说明
状态 pending → in_progress → completed / closed
优先级 critical / high / medium / low
故障分类 系统/硬件/网络等(可在故障分类页维护)
关联设备 可选绑定具体设备

image-20260623102620982

6.7 耗材管理

路径/consumables/consumables-stats

功能概述:耗材分类、库存数量、SN 序列号追踪、出入库日志与归档。

元素 说明
库存预警 当前库存低于最小库存时提示
操作日志 记录每次入库/出库/调整
分类 线缆、光模块、硬盘等自定义分类

6.8 资产盘点

路径/inventory/pending-devices

功能概述:创建全面/局部/抽样盘点计划,执行盘点任务,审核盘盈设备。

元素 说明
盘点计划 设定范围、负责人、截止时间
任务执行 /inventory/execution 逐项核对
盘盈设备 待审核通过后纳入资产

6.9 空闲设备

路径/idle-devices

功能概述:将机柜中不再使用的设备标记为空闲并释放 U 位,或从空闲状态重新激活上架。


7. 典型业务流程

7.1 新设备上架

采购入库(库房) → 设备管理创建/导入 → 分配到机柜 U 位 → 配置端口与线缆 → 绑定业务
  1. 在「设备管理」中新增设备,sourceType 为库房或直接在机柜创建。
  2. 选择目标机柜与起始 U 位,系统自动校验 U 位冲突。
  3. 在「端口管理」「接线管理」中完善网络连接。
  4. 在设备详情中关联业务系统。

7.2 故障工单处理

发现故障 → 创建工单(选设备/分类/优先级) → 指派处理人 → 处理并填写方案 → 完成/关闭
  1. 「工单列表」点击新建,填写标题、故障分类与描述。
  2. 管理员或运维将状态改为「处理中」并指派处理人。
  3. 处理完成后填写解决方案,状态改为「已完成」。

7.3 资产盘点

创建盘点计划 → 生成盘点任务 → 现场逐项核对 → 提交结果 → 审核盘盈设备
  1. 「盘点计划」新建计划,选择机房/机柜范围。
  2. 执行人进入任务执行页,扫描或勾选设备实际状态。
  3. 发现未登记设备时进入「盘盈设备」等待审核入库。

8. 系统管理

8.1 用户与角色

路径/users

  • 审核 pending 状态的新注册用户。
  • 为用户分配 admin / operator / viewer 角色。
  • 支持锁定、重置密码等操作。

8.2 系统设置

路径/settings

分类 可配置项
全局 站点名称、Logo、时区、会话超时、维护模式
外观 主题色、紧凑模式、侧边栏折叠
关于 版本号、公司信息、联系方式

维护模式开启后,仅管理员可登录。

8.3 数据备份

路径/backup

  • 支持手动创建本地备份。
  • 可配置自动定时备份(/auto-backup-settings)与远程备份(FTP/SFTP/WebDAV 等,/remote-backup-settings)。
  • 备份文件存储在 backend/backups/Docker 下已映射到宿主机)。

image-20260623102633865

命令行备份:

cd backend && node scripts/backup.js
cd backend && node scripts/restore.js <backup-file>

8.4 操作日志

路径/operation-logs

记录用户关键操作(增删改、登录等),支持按模块、操作人、时间筛选,用于安全审计。


9. 日常运维

9.1 健康检查

# 后端健康(Docker 映射端口示例)
curl http://localhost:12001/health

# 通过前端 Nginx 代理
curl http://localhost:12000/health

返回 status: ok 表示服务正常;warning / error 时查看 backend/logs/

9.2 日志查看

环境 命令
Docker docker logs -f yunrui_asset-backend
PM2 pm2 logs yunrui_asset-backend
文件 tail -f backend/logs/*.log

日志级别通过 backend/.envLOG_LEVEL 控制(error / warn / info / debug)。

9.3 服务重启

# Docker
docker compose -f docker-compose.full.yml restart backend frontend

# PM2
pm2 restart yunrui_asset-backend
sudo nginx -s reload

9.4 版本更新

node update.js
# 支持 --skip-git --skip-backup --skip-build 等跳过选项

9.5 数据库维护

# 初始化表结构(首次部署)
cd backend && node scripts/init-database.js

# 写入示例数据
cd backend && npm run seed

10. 常见问题与排查

10.1 访问与登录

现象 可能原因 处理
前端打不开 端口被占用或服务未启动 docker compose ps 或检查 12000/3000 端口
登录 401 账号密码错误或 Token 过期 重新登录;检查 JWT_SECRET 是否变更
登录后立刻退出 空闲超时 系统设置中调整 idle_timeout
维护模式无法登录 非管理员账号 使用管理员登录,或在数据库关闭 maintenance_mode

10.2 Docker 部署

现象 可能原因 处理
backend 启动失败 MySQL 未就绪或 JWT_SECRET 未设 等待 MySQL;设置 JWT_SECRET 后重启
502 / API 无响应 后端容器异常 docker logs yunrui_asset-backend
中文乱码 MySQL 字符集 确保库为 utf8mb4

10.3 本地开发

现象 可能原因 处理
端口 8000/3000 冲突 其他进程占用 修改 backend/.envPORTFRONTEND_PORT
前端 API 失败 代理未生效 确认 Vite 将 /api 代理到 http://localhost:8000
数据库连接失败 MySQL 未启动或密码错误 检查 DB_TYPE 与 MySQL 连接参数

10.4 业务功能

现象 可能原因 处理
U 位冲突 同一机柜 U 位已被占用 调整设备起始 U 位或高度
3D 页面空白 浏览器不支持 WebGL 更换浏览器或更新显卡驱动
上传失败 文件超过大小限制 默认最大 30 MBMAX_FILE_SIZE_MB
无示例数据 未执行种子脚本 docker exec yunrui_asset-backend node scripts/seed-example-data.js

11. 附录

11.1 环境变量速查(后端 backend/.env

变量 默认值 说明
PORT 8000 后端监听端口
NODE_ENV development 运行环境
DB_TYPE sqlite sqlitemysql
DB_PATH ./yunrui_management.db SQLite 文件路径
MYSQL_HOST localhost MySQL 主机(Docker 内为 mysql
MYSQL_PORT 3306 MySQL 端口
MYSQL_DATABASE yunrui_management 数据库名
MYSQL_USERNAME root 数据库用户
MYSQL_PASSWORD (空) 数据库密码
JWT_SECRET 开发自动生成 生产必填
TOKEN_EXPIRY 24h Token 有效期
LOG_LEVEL debug 日志级别
MAX_FILE_SIZE_MB 30 上传大小上限
FRONTEND_PORT 3000 本地前端端口提示

完整列表见 backend/.env.example

11.2 服务端口对照

场景 前端 后端 MySQL
Docker 全栈(docker-compose.full.yml 12000 12001 12006
Docker 生产镜像(docker-compose.prod.yml 80 内部网络 可选
本地开发 3000 8000 3306

11.3 相关链接

资源 地址
API 详细文档 docs/api/README.md
Docker 部署补充 docs/docker-deployment-guide.md
用户指南(历史) docs/USER_GUIDE.md
问题反馈 https://code.xinmi.cloud/yunrui_asset/issues

贡献指南

欢迎提交 Issue 或 Pull Request。

git checkout -b feature/your-feature
git commit -m 'feat: 添加新功能'
git push origin feature/your-feature
提交类型 说明
feat 新功能
fix Bug 修复
docs 文档更新
refactor 重构
chore 构建/工具

开发规范:后端 CommonJS + Sequelize;前端 ESM + React Hooks;提交前运行 npm run lintbackend / frontend)。


许可证

本项目基于 MIT 许可证 开源。


云睿资产开源社区
文档版本:2.1.1 | 2026-06-22