vdi/web-fe/serve/README.md

219 lines
4.8 KiB
Markdown
Raw Normal View History

2025-08-05 01:57:49 +00:00
# 紫光汇智 VDI 管理平台前端服务
## 项目简介
本项目是紫光汇智 VDI虚拟桌面基础设施管理平台的前端服务负责为企业级桌面云环境提供高效、可靠的 Web 管理界面。系统支持多种操作系统镜像的管理、用户权限控制、桌面分配与监控等功能,助力企业实现桌面云的集中化、自动化运维。
## 主要功能
- 镜像管理:支持多种操作系统镜像的上传、下载、删除、版本管理
- 用户与权限管理:多角色权限分级,安全可靠
- 桌面分配与监控:支持桌面分配、状态监控、资源统计
- 登录认证:支持多种登录方式,安全便捷
- 响应式设计:适配 PC 和移动端
## 技术栈
- 前端框架React + UmiJS + Ant Design
- 服务端Node.js + Express
- 进程管理PM2
- 容器化Docker 支持
## 部署方式
### 1. 使用 Docker 部署
- 支持一键构建和运行 Docker 容器,适合云服务器、生产环境
- 详见下方 Docker 相关命令
### 2. 使用 PM2 部署
- 适合传统物理机或虚拟机环境,支持进程守护、日志管理
---
# VDI 管理平台 - 服务器部署
## 📋 概述
这是 VDI 管理平台的前端服务器,使用 Express.js 提供静态文件服务,并通过 PM2 进行进程管理。
## 🚀 快速开始
### 1. 安装依赖
```bash
npm install
```
### 2. 启动服务
#### 方式一:使用启动脚本(推荐)
```bash
chmod +x start.sh
./start.sh
```
#### 方式二:手动启动
```bash
# 安装 PM2如果未安装
npm install -g pm2
# 启动应用
pm2 start ecosystem.config.js
```
### 3. 访问应用
打开浏览器访问http://localhost:3000
## 📊 PM2 管理命令
### 查看应用状态
```bash
pm2 status
```
### 查看日志
```bash
# 查看所有日志
pm2 logs vdi-web
# 实时查看日志
pm2 logs vdi-web --lines 100 -f
```
### 重启应用
```bash
pm2 restart vdi-web
```
### 停止应用
```bash
pm2 stop vdi-web
```
### 删除应用
```bash
pm2 delete vdi-web
```
### 监控应用
```bash
pm2 monit
```
## 🔧 开发模式
### 使用 nodemon 开发
```bash
npm run dev
```
### 直接启动
```bash
npm start
```
## 📁 目录结构
```
serve/
├── dist/ # 前端构建文件
├── logs/ # 日志文件
├── index.js # Express 服务器
├── package.json # 依赖配置
├── ecosystem.config.js # PM2 配置
├── start.sh # 启动脚本
├── stop.sh # 停止脚本
└── README.md # 说明文档
```
## ⚙️ 配置说明
### 环境变量
- `PORT`: 服务器端口默认3000
- `NODE_ENV`: 运行环境development/production
### PM2 配置
- **实例数**: 1个实例
- **内存限制**: 1GB
- **自动重启**: 启用
- **日志轮转**: 启用
## 🔒 安全特性
- 使用 Helmet 增强安全性
- 启用 gzip 压缩
- 静态文件缓存
- 错误处理中间件
## 📝 日志
日志文件位于 `logs/` 目录:
- `combined.log`: 合并日志
- `out.log`: 标准输出日志
- `error.log`: 错误日志
## 🚨 故障排除
### 端口被占用
```bash
# 查看端口占用
lsof -i :3000
# 杀死进程
kill -9 <PID>
```
### PM2 进程异常
```bash
# 重置 PM2
pm2 kill
pm2 start ecosystem.config.js
```
### 权限问题
```bash
# 给脚本执行权限
chmod +x start.sh stop.sh
```
## 📞 技术支持
如有问题,请联系紫光汇智技术支持团队。
## 项目结构
```text
web-fe/
├── mock/ # 模拟接口数据
├── package.json # 前端依赖配置
├── pnpm-lock.yaml # pnpm锁定文件
├── README.md # 前端说明文档
├── serve/ # 服务端Express+PM2+Docker
│ ├── dist/ # 前端构建产物(静态文件)
│ ├── logs/ # 日志目录
│ ├── node_modules/ # 服务端依赖
│ ├── Dockerfile # Docker 构建文件
│ ├── ecosystem.config.js# PM2 配置
│ ├── index.js # Express 启动入口
│ ├── package.json # 服务端依赖配置
│ ├── start.sh # 启动脚本
│ ├── stop.sh # 停止脚本
│ ├── README.md # 服务端说明文档
│ └── ...
├── src/ # 前端源码
│ ├── access.ts
│ ├── app.ts
│ ├── assets/
│ ├── components/
│ ├── constants/
│ ├── models/
│ ├── pages/ # 页面目录
│ ├── services/ # 接口服务
│ ├── utils/ # 工具函数
│ └── ...
├── tsconfig.json # TypeScript 配置
└── typings.d.ts # 全局类型声明
```
---