初始化提交

This commit is contained in:
2025-12-14 15:25:31 +08:00
commit 4fa42f7115
48 changed files with 8718 additions and 0 deletions

156
README.md Normal file
View File

@@ -0,0 +1,156 @@
# 萌芽监控面板
一个简洁高效的 Linux 服务器监控面板,采用前后端分离架构。
## 项目概述
### 功能
- 实时监控 Linux 服务器的 CPU、内存、存储、GPU 使用情况
- 支持同时监控多个服务器
- 卡片式展示,直观清晰
- 详情弹窗查看完整信息
### 技术栈
- **前端**: React 19 + TypeScript + Vite
- **后端**: Go (原生 net/http 库)
- **风格**: 白色柔和风格界面
## 快速开始
### 后端部署
1. 进入后端目录
```bash
cd mengyamonitor-backend
```
2. 编译(在 Linux 服务器上)
```bash
go build -o mengyamonitor-backend
```
3. 运行
```bash
./mengyamonitor-backend
```
默认监听端口: 9292
4. 可选:配置环境变量
```bash
PORT=8080 ./mengyamonitor-backend
```
### 前端开发
1. 进入前端目录
```bash
cd mengyamonitor-frontend
```
2. 安装依赖
```bash
npm install
```
3. 启动开发服务器
```bash
npm run dev
```
默认访问端口: 2929
4. 构建生产版本
```bash
npm run build
```
## 使用说明
### 1. 部署后端到服务器
将编译好的 `mengyamonitor-backend` 二进制文件上传到需要监控的 Linux 服务器并运行。
### 2. 配置前端
在前端界面点击"添加服务器",输入:
- 服务器名称:例如"生产服务器1"
- 服务器地址:例如"http://192.168.1.100:9292"
### 3. 查看监控数据
- 主界面显示所有服务器的基本信息CPU、内存使用率
- 点击"查看详情"可查看完整的系统信息
- 数据每2秒自动刷新
## 项目结构
```
萌芽监控面板/
├── mengyamonitor-backend/ # 后端服务
│ ├── main.go # 主程序和HTTP服务器
│ ├── systeminfo.go # 系统信息采集
│ ├── go.mod # Go模块配置
│ └── README.md # 后端文档
├── mengyamonitor-frontend/ # 前端应用
│ ├── src/
│ │ ├── api/ # API调用层
│ │ ├── components/ # React组件
│ │ ├── hooks/ # 自定义Hooks
│ │ ├── types/ # TypeScript类型
│ │ ├── utils/ # 工具函数
│ │ ├── App.tsx # 主应用
│ │ └── main.tsx # 入口文件
│ ├── package.json
│ ├── vite.config.ts
│ └── README.md # 前端文档
└── 需求.txt # 需求文档
```
## API 接口
### GET /api/health
健康检查
### GET /api/metrics
获取系统监控指标
```json
{
"data": {
"hostname": "server1",
"timestamp": "2025-12-10T10:00:00Z",
"cpu": { "usagePercent": 23.45, ... },
"memory": { "usedPercent": 50.0, ... },
"storage": [...],
"gpu": [...],
"os": { ... },
"uptimeSeconds": 864000.5
}
}
```
## 注意事项
1. **系统支持**: 后端仅支持 Linux 系统
2. **权限要求**: 需要读取 `/proc` 文件系统的权限
3. **GPU 监控**: 需要安装 `nvidia-smi` 工具(可选)
4. **网络访问**: 确保前端可以访问后端的 9292 端口
5. **CORS**: 后端已配置允许跨域访问
## 常见问题
**Q: 前端无法连接后端?**
A: 检查服务器防火墙是否开放 9292 端口,确保后端服务正在运行。
**Q: GPU 信息显示不可用?**
A: 如果服务器没有 NVIDIA GPU 或未安装 nvidia-smiGPU 信息会显示为"不可用",这是正常的。
**Q: 如何将前端打包成桌面应用?**
A: 可以使用 Electron 或 Tauri 框架将前端打包成桌面应用,详见前端 README。
## 开发者
- 前后端分离架构,代码结构清晰
- 符合企业级开发规范
- 易于扩展和维护
## License
MIT