Update 2026-06-23 10:40:10
This commit is contained in:
+4
-5
@@ -1,4 +1,4 @@
|
||||
# IDC设备资产系统 - 用户使用指南
|
||||
# 云睿资产系统 - 用户使用指南
|
||||
|
||||
## 目录
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
### 系统简介
|
||||
|
||||
IDC设备资产系统是一款现代化的数据中心(IDC)设备管理平台,提供机房、机柜、设备的全生命周期管理,具备3D可视化展示功能。系统采用前后端分离架构,前端基于React + Ant Design构建,后端使用Node.js + Express开发。
|
||||
云睿资产系统是一款现代化的数据中心(IDC)设备管理平台,提供机房、机柜、设备的全生命周期管理,具备3D可视化展示功能。系统采用前后端分离架构,前端基于React + Ant Design构建,后端使用Node.js + Express开发。
|
||||
|
||||
### 核心功能
|
||||
|
||||
@@ -929,9 +929,8 @@ A: 已关闭的工单无法重新打开,如有新问题请新建工单。
|
||||
- **功能建议**:提交 Issue 并标注 `feature-request`
|
||||
|
||||
**代码仓库:**
|
||||
- Gitee: https://gitee.com/zhang96110/idc_assest
|
||||
- GitHub: https://github.com/gituib/idc_assest
|
||||
|
||||
- 源码仓库: https://code.xinmi.cloud/yunruyunrui_asset
|
||||
yunrui_asset
|
||||
---
|
||||
|
||||
**文档版本**:v2.0.0
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
# API接口文档
|
||||
|
||||
本文档描述IDC设备管理系统的后端API接口,遵循RESTful设计规范。
|
||||
本文档描述云睿资产管理系统的后端API接口,遵循RESTful设计规范。
|
||||
|
||||
---
|
||||
|
||||
@@ -1861,10 +1861,10 @@ GET /api/system-settings
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"siteName": "IDC设备管理系统",
|
||||
"siteName": "云睿资产管理系统",
|
||||
"siteLogo": "/uploads/logo.png",
|
||||
"siteDescription": "专业的数据中心设备管理平台",
|
||||
"copyright": "© 2024 IDC Management",
|
||||
"copyright": "© 2024 YunRui Asset Management",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"message": "操作成功"
|
||||
@@ -2150,7 +2150,7 @@ GET /health
|
||||
```json
|
||||
{
|
||||
"status": "ok",
|
||||
"message": "IDC设备管理系统后端服务正常运行"
|
||||
"message": "云睿资产管理系统后端服务正常运行"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# IDC 设备管理系统 - Docker 部署教程
|
||||
# 云睿资产管理系统 - Docker 部署教程
|
||||
|
||||
> 适用场景:新服务器上首次部署
|
||||
>
|
||||
@@ -84,17 +84,17 @@ docker compose version
|
||||
|
||||
```bash
|
||||
# 创建部署根目录和所有持久化目录
|
||||
mkdir -p /opt/idc_assest/backend/{uploads,logs,backups,temp}
|
||||
cd /opt/idc_assest
|
||||
mkdir -p /opt/yunrui_assetet/backend/{uploads,logs,backups,temp}
|
||||
cd /opt/yunrui_assetet
|
||||
|
||||
# 查看目录结构
|
||||
tree /opt/idc_assest -L 2
|
||||
tree /opt/yunrui_assetet -L 2
|
||||
```
|
||||
|
||||
预期输出:
|
||||
|
||||
```
|
||||
/opt/idc_assest
|
||||
/opt/yunrui_assetet
|
||||
└── backend
|
||||
├── uploads/
|
||||
├── logs/
|
||||
@@ -105,9 +105,9 @@ tree /opt/idc_assest -L 2
|
||||
### 3.2 创建 docker-compose.yml
|
||||
|
||||
```bash
|
||||
cat > /opt/idc_assest/docker-compose.yml << 'YAMLEOF'
|
||||
cat > /opt/yunrui_assetet/docker-compose.yml << 'YAMLEOF'
|
||||
# ============================================
|
||||
# IDC 设备管理系统 - 生产环境配置
|
||||
# 云睿资产管理系统 - 生产环境配置
|
||||
# 从镜像仓库拉取预构建镜像,无 build 指令
|
||||
# 默认从 ghcr.io 拉取,可通过 BACKEND/FRONTEND_IMAGE 环境变量切换
|
||||
# ============================================
|
||||
@@ -115,8 +115,8 @@ cat > /opt/idc_assest/docker-compose.yml << 'YAMLEOF'
|
||||
services:
|
||||
# ---------- 后端服务 ----------
|
||||
backend:
|
||||
image: ${BACKEND_IMAGE:-ghcr.io/gituib/idc-backend:latest}
|
||||
container_name: idc-backend
|
||||
image: ${BACKEND_IMAGE:-ghcr.io/xinmi/yunrui_asset-backend:latest}
|
||||
container_name: yunrui_asset-backend
|
||||
volumes:
|
||||
- ./backend/.env:/app/.env
|
||||
- ./backend/uploads:/app/uploads
|
||||
@@ -128,7 +128,7 @@ services:
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
networks:
|
||||
- idc-network
|
||||
- yunrui_asset-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8000/health"]
|
||||
@@ -139,13 +139,13 @@ services:
|
||||
|
||||
# ---------- 前端(Nginx)服务 ----------
|
||||
frontend:
|
||||
image: ${FRONTEND_IMAGE:-ghcr.io/gituib/idc-frontend:latest}
|
||||
image: ${FRONTEND_IMAGE:-ghcr.io/xinmi/yunrui_asset-frontend:latest}
|
||||
pull_policy: always
|
||||
container_name: idc-frontend
|
||||
container_name: yunrui_asset-frontend
|
||||
ports:
|
||||
- "80:80"
|
||||
networks:
|
||||
- idc-network
|
||||
- yunrui_asset-network
|
||||
depends_on:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
@@ -153,16 +153,16 @@ services:
|
||||
# ---------- MySQL 数据库 ----------
|
||||
mysql:
|
||||
image: mysql:8.0
|
||||
container_name: idc-mysql
|
||||
container_name: yunrui_asset-mysql
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE:-idc_management}
|
||||
MYSQL_USER: ${MYSQL_USER:-idc_user}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE:-yunrui_management}
|
||||
MYSQL_USER: ${MYSQL_USER:-yunrui_user}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
networks:
|
||||
- idc-network
|
||||
- yunrui_asset-network
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||
@@ -171,7 +171,7 @@ services:
|
||||
retries: 5
|
||||
|
||||
networks:
|
||||
idc-network:
|
||||
yunrui_asset-network:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
@@ -186,12 +186,12 @@ YAMLEOF
|
||||
> 这个文件是给 Docker Compose 读取的,用于配置 MySQL 容器本身的账号密码。
|
||||
|
||||
```bash
|
||||
cd /opt/idc_assest
|
||||
cd /opt/yunrui_assetet
|
||||
cat > .env << 'EOF'
|
||||
MYSQL_ROOT_PASSWORD=这里填MySQL root密码
|
||||
MYSQL_USER=idc_user
|
||||
MYSQL_USER=yunrui_user
|
||||
MYSQL_PASSWORD=这里填MySQL用户密码(与 backend/.env 中 MYSQL_PASSWORD 一致)
|
||||
MYSQL_DATABASE=idc_management
|
||||
MYSQL_DATABASE=yunrui_management
|
||||
EOF
|
||||
```
|
||||
|
||||
@@ -200,7 +200,7 @@ EOF
|
||||
> **重要**:这个文件是后端 Node.js 应用读取的,配置数据库连接、JWT 等业务参数。不要与项目根目录的 `.env` 混淆。
|
||||
|
||||
```bash
|
||||
cd /opt/idc_assest/backend
|
||||
cd /opt/yunrui_assetet/backend
|
||||
|
||||
# 先生成 JWT 密钥(确保已执行 4.1 节的命令)
|
||||
# JWT_SECRET=$(openssl rand -base64 64)
|
||||
@@ -220,9 +220,9 @@ NODE_ENV=production
|
||||
DB_TYPE=mysql
|
||||
MYSQL_HOST=mysql # Docker 服务名,不是 localhost
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_USERNAME=idc_user
|
||||
MYSQL_USERNAME=yunrui_user
|
||||
MYSQL_PASSWORD=这里改成MySQL用户密码
|
||||
MYSQL_DATABASE=idc_management
|
||||
MYSQL_DATABASE=yunrui_management
|
||||
|
||||
# 方式二:使用远程 MySQL(已有数据库的情况)
|
||||
# DB_TYPE=mysql
|
||||
@@ -267,7 +267,7 @@ EOF
|
||||
创建完成后,部署目录的文件结构应为:
|
||||
|
||||
```
|
||||
/opt/idc_assest/
|
||||
/opt/yunrui_assetet/
|
||||
├── docker-compose.yml # Docker Compose 配置
|
||||
├── .env # Docker Compose 环境变量(MySQL 账号密码)
|
||||
└── backend/
|
||||
@@ -302,28 +302,28 @@ JWT_SECRET=$(openssl rand -base64 64)
|
||||
|
||||
| 配置项 | 文件位置 | 说明 |
|
||||
| ------------------------- | ------------------------------ | ----------------- |
|
||||
| `MYSQL_USER=idc_user` | `/opt/idc_assest/.env` | 指定 MySQL 容器创建的用户名 |
|
||||
| `MYSQL_USERNAME=idc_user` | `/opt/idc_assest/backend/.env` | 后端连接数据库用的用户名 |
|
||||
| `MYSQL_USER=yunrui_user` | `/oyunrui_assetasset/.env` | 指定 MySQL 容器创建的用户名 |
|
||||
| `MYSQL_USERNAME=yunrui_user` | `/oyunrui_assetasset/backend/.env` | 后端连接数据库用的用户名 |
|
||||
| `MYSQL_PASSWORD=xxx` | 两个文件各有一处 | 密码必须相同 |
|
||||
|
||||
可以用以下命令快速对比两个文件中的用户和密码是否一致:
|
||||
|
||||
```bash
|
||||
cd /opt/idc_assest
|
||||
cd /opt/yunrui_assetet
|
||||
echo "=== 根目录 .env ===" && grep -E "MYSQL_USER|MYSQL_PASSWORD" .env
|
||||
echo ""
|
||||
echo "=== backend/.env ===" && grep -E "MYSQL_USERNAME|MYSQL_PASSWORD" backend/.env
|
||||
```
|
||||
|
||||
预期输出(用户名为 `idc_user`,密码两处相同即表示一致):
|
||||
预期输出(用户名为 `yunrui_user`,密码两处相同即表示一致):
|
||||
|
||||
```
|
||||
=== 根目录 .env ===
|
||||
MYSQL_USER=idc_user
|
||||
MYSQL_USER=yunrui_user
|
||||
MYSQL_PASSWORD=MyPassw0rd!
|
||||
|
||||
=== backend/.env ===
|
||||
MYSQL_USERNAME=idc_user
|
||||
MYSQL_USERNAME=yunrui_user
|
||||
MYSQL_PASSWORD=MyPassw0rd!
|
||||
```
|
||||
|
||||
@@ -331,14 +331,14 @@ MYSQL_PASSWORD=MyPassw0rd!
|
||||
|
||||
> 如果已有远程 MySQL 实例,不想在 Docker 中运行 MySQL 容器,请执行以下操作:
|
||||
|
||||
**步骤 1**:编辑 `/opt/idc_assest/docker-compose.yml`,注释掉 `mysql` 服务部分:
|
||||
**步骤 1**:编辑 `/opt/yunrui_assetet/docker-compose.yml`,注释掉 `mysql` 服务部分:
|
||||
|
||||
```bash
|
||||
# 用 sed 注释 mysql 服务(从 services: 末尾到文件末尾)
|
||||
# 或者手动编辑,将 mysql: 到文件末尾的内容用 # 注释掉
|
||||
```
|
||||
|
||||
**步骤 2**:修改 `/opt/idc_assest/backend/.env`,配置远程数据库地址:
|
||||
**步骤 2**:修改 `/opt/yunrui_assetet/backend/.env`,配置远程数据库地址:
|
||||
|
||||
```ini
|
||||
DB_TYPE=mysql
|
||||
@@ -356,7 +356,7 @@ MYSQL_DATABASE=数据库名
|
||||
### 5.1 首次拉取镜像
|
||||
|
||||
```bash
|
||||
cd /opt/idc_assest
|
||||
cd /opt/yunrui_assetet
|
||||
docker compose -f docker-compose.yml pull
|
||||
```
|
||||
|
||||
@@ -376,9 +376,9 @@ docker compose -f docker-compose.yml ps
|
||||
docker compose -f docker-compose.yml logs -f
|
||||
|
||||
# 单独查看某个容器的日志
|
||||
docker logs idc-backend
|
||||
docker logs idc-frontend
|
||||
docker logs idc-mysql
|
||||
docker logs yunrui_asset-backend
|
||||
docker logs yunrui_asset-frontend
|
||||
docker logs yunrui_asset-mysql
|
||||
```
|
||||
|
||||
### 5.4 等待初始化完成
|
||||
@@ -392,7 +392,7 @@ docker logs idc-mysql
|
||||
可以通过日志查看初始化进度:
|
||||
|
||||
```bash
|
||||
docker logs -f idc-backend
|
||||
docker logs -f yunrui_asset-backend
|
||||
```
|
||||
|
||||
当日志出现以下内容时,说明启动完成:
|
||||
@@ -416,9 +416,9 @@ docker compose -f docker-compose.yml ps
|
||||
|
||||
```
|
||||
NAME IMAGE STATUS PORTS
|
||||
idc-frontend ghcr.io/.../idc-frontend:latest Up :80->80/tcp
|
||||
idc-backend ghcr.io/.../idc-backend:latest Up (healthy) 8000/tcp
|
||||
idc-mysql mysql:8.0 Up 3306/tcp
|
||||
yunrui_asset-frontend ghcr.io/.../yunrui_asset-frontend:latest Up :80->80/tcp
|
||||
yunrui_asset-backend ghcr.io/.../yunrui_asset-backend:latest Up (healthy) 8000/tcp
|
||||
yunrui_asset-mysql mysql:8.0 Up 3306/tcp
|
||||
```
|
||||
|
||||
### 6.2 访问系统
|
||||
@@ -472,7 +472,7 @@ docker compose -f docker-compose.yml down -v
|
||||
|
||||
```bash
|
||||
# MySQL 本地容器方式
|
||||
docker exec idc-mysql mysqldump -u root -p idc_management > backup_$(date +%Y%m%d).sql
|
||||
docker exec yunrui_asset-mysql mysqldump -u root -p yunrui_management > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# 如果开启了自动备份,后端自身也会定期备份到 backend/backups/ 目录
|
||||
```
|
||||
@@ -480,7 +480,7 @@ docker exec idc-mysql mysqldump -u root -p idc_management > backup_$(date +%Y%m%
|
||||
### 7.3 查看容器资源占用
|
||||
|
||||
```bash
|
||||
docker stats idc-backend idc-frontend idc-mysql
|
||||
docker stats yunrui_asset-backend yunrui_asset-frontend yunrui_asset-mysql
|
||||
```
|
||||
|
||||
### 7.4 更新服务配置
|
||||
@@ -522,7 +522,7 @@ docker image prune -a
|
||||
|
||||
```bash
|
||||
# 查看退出容器的日志
|
||||
docker logs idc-backend
|
||||
docker logs yunrui_asset-backend
|
||||
|
||||
# 常见错误:
|
||||
# - JWT_SECRET 未配置 → 在 backend/.env 中设置 JWT_SECRET
|
||||
@@ -560,8 +560,8 @@ ping ghcr.io
|
||||
检查 `backend/uploads/` 目录是否存在且权限正确:
|
||||
|
||||
```bash
|
||||
ls -la /opt/idc_assest/backend/uploads/
|
||||
chmod 755 /opt/idc_assest/backend/uploads/
|
||||
ls -la /opt/yunrui_assetet/backend/uploads/
|
||||
chmod 755 /opt/yunrui_assetet/backend/uploads/
|
||||
```
|
||||
|
||||
### 9.6 后端连不上 MySQL 容器
|
||||
@@ -570,10 +570,10 @@ chmod 755 /opt/idc_assest/backend/uploads/
|
||||
|
||||
```bash
|
||||
# 1. 检查 MySQL 容器状态
|
||||
docker ps | grep idc-mysql
|
||||
docker ps | grep yunrui_asset-mysql
|
||||
|
||||
# 2. 检查 backend/.env 中 MYSQL_HOST 是否是 mysql(服务名),不是 localhost
|
||||
grep MYSQL_HOST /opt/idc_assest/backend/.env
|
||||
grep MYSQL_HOST /opt/yunrui_assetet/backend/.env
|
||||
|
||||
# 3. 验证 MySQL 用户密码是否一致
|
||||
# backend/.env 中 MYSQL_USERNAME / MYSQL_PASSWORD
|
||||
@@ -581,7 +581,7 @@ grep MYSQL_HOST /opt/idc_assest/backend/.env
|
||||
# 两者必须匹配
|
||||
|
||||
# 4. 进入 MySQL 容器验证
|
||||
docker exec -it idc-mysql mysql -u idc_user -p
|
||||
docker exec -it yunrui_asset-mysql mysql -u yunrui_user -p
|
||||
```
|
||||
|
||||
### 9.7 如何在已有部署基础上添加新配置
|
||||
@@ -590,7 +590,7 @@ docker exec -it idc-mysql mysql -u idc_user -p
|
||||
|
||||
```bash
|
||||
# 1. 编辑 backend/.env 补充配置
|
||||
vim /opt/idc_assest/backend/.env
|
||||
vim /opt/yunrui_assetet/backend/.env
|
||||
|
||||
# 2. 重启后端容器
|
||||
docker compose -f docker-compose.yml restart backend
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
▼
|
||||
GitHub Actions
|
||||
│
|
||||
├── 构建 idc-backend:latest 镜像
|
||||
├── 构建 idc-frontend:latest 镜像(Nginx + 前端静态文件)
|
||||
├── 构建 yunrui_asset-backend:latest 镜像
|
||||
├── 构建 yunrui_asset-frontend:latest 镜像(Nginx + 前端静态文件)
|
||||
├── 推送到镜像仓库(Docker Hub / 阿里云 / GitHub Container Registry)
|
||||
│
|
||||
▼
|
||||
@@ -74,11 +74,11 @@
|
||||
```yaml
|
||||
services:
|
||||
backend:
|
||||
image: yourname/idc-backend:latest
|
||||
image: yourname/yunrui_asset-backend:latest
|
||||
# 没有 build 指令,直接从仓库拉取
|
||||
|
||||
frontend:
|
||||
image: yourname/idc-frontend:latest
|
||||
image: yourname/yunrui_asset-frontend:latest
|
||||
# 同上,服务器不需要装 Node.js
|
||||
|
||||
mysql:
|
||||
@@ -134,8 +134,8 @@ BACKEND_VERSION=v1.2.0 FRONTEND_VERSION=v1.2.0 docker compose up -d
|
||||
### 5.1 镜像仓库:阿里云容器镜像服务
|
||||
|
||||
阿里云控制台开通容器镜像服务后:
|
||||
1. 创建命名空间(如 `idc-assest`)
|
||||
2. 创建镜像仓库:`idc-backend`、`idc-frontend`
|
||||
1. 创建命名空间(如 `yunrui-asset`)
|
||||
2. 创建镜像仓库:`yunrui_asset-backend`、`yunrui_asset-frontend`
|
||||
3. 设置访问凭证(用户名 + 密码)
|
||||
|
||||
### 5.2 GitHub Secrets 配置
|
||||
@@ -171,7 +171,7 @@ BACKEND_VERSION=v1.2.0 FRONTEND_VERSION=v1.2.0 docker compose up -d
|
||||
↓
|
||||
管理员 SSH 到生产服务器
|
||||
↓
|
||||
cd /opt/idc_assest
|
||||
cd /opt/yunrui_assetet
|
||||
docker compose -f docker-compose.prod.yml pull
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user