- 🚀 极简设计 - 简洁美观的 Web 界面
- 📊 实时监控 - 实时显示服务器状态信息
- 🌐 多平台支持 - 支持 Linux、Windows、macOS、FreeBSD
- 📱 响应式设计 - 完美适配桌面和移动设备
- 🔒 安全可靠 - WebSocket 加密传输,支持认证
- 🐳 容器化部署 - 支持 Docker 一键部署
- 📦 轻量级 - 单文件部署,资源占用极低
- 🔧 易于配置 - YAML 配置文件,简单易懂
- 系统信息 - 操作系统、架构、内核版本
- CPU 使用率 - 实时 CPU 占用情况
- 内存使用 - 内存使用率和详细信息
- 磁盘空间 - 磁盘使用情况和 I/O 统计
- 网络流量 - 网络接口流量统计
- 系统负载 - 系统平均负载
- 运行时间 - 系统运行时间
- 进程数量 - 系统进程统计
# 1. 下载配置文件
wget https://raw.githubusercontent.com/ruanun/simple-server-status/main/configs/sss-dashboard.yaml.example -O sss-dashboard.yaml
# 2. 编辑配置(设置服务器ID和密钥)
nano sss-dashboard.yaml
# 3. 启动 Dashboard
docker run --name sssd --restart=unless-stopped -d \
-v ./sss-dashboard.yaml:/app/sss-dashboard.yaml \
-p 8900:8900 \
ruanun/sssd
# 4. 访问 http://your-server-ip:8900Linux/macOS/FreeBSD:
# 一键安装
curl -fsSL https://raw.githubusercontent.com/ruanun/simple-server-status/main/scripts/install-agent.sh | sudo bash
# 编辑配置
sudo nano /etc/sssa/sss-agent.yaml
# 修改 serverAddr, serverId, authSecret
# 启动服务
sudo systemctl start sssa
sudo systemctl enable sssaWindows (PowerShell 管理员模式):
# 一键安装
iwr -useb https://raw.githubusercontent.com/ruanun/simple-server-status/main/scripts/install-agent.ps1 | iex
# 配置文件位置: C:\Program Files\SSSA\sss-agent.yaml
# 配置后启动 SSSA 服务- 访问 Dashboard:
http://your-server-ip:8900 - 检查服务器是否显示为在线状态
- 查看实时数据更新
遇到问题? 参考 故障排除指南
- 📥 完整部署指南 - 从零开始的详细部署步骤
- 🛠️ 脚本使用说明 - 安装脚本和构建脚本详解
- 📦 Release 下载 - 预编译二进制文件
- 🐳 Docker 部署 - Docker 和 Docker Compose 完整指南
- ⚙️ systemd 部署 - Linux systemd 服务配置
- 🔧 手动安装 - 不使用脚本的手动安装步骤
- 🌐 反向代理配置 - Nginx/Caddy/Apache HTTPS 配置
- 🏗️ 架构概览 - 系统整体架构和技术栈
- 🔌 WebSocket 通信设计 - 双通道 WebSocket 实现详解
- 🔄 数据流向 - 完整数据流转过程
- 💻 开发环境搭建 - 本地开发环境配置
- 🤝 贡献指南 - 如何贡献代码
- 🌐 REST API - HTTP API 接口说明
- 💬 WebSocket API - WebSocket 消息格式和协议
Q1: 如何监控多台服务器?
在 Dashboard 配置中添加多个服务器:
servers:
- id: "server-01"
name: "生产服务器-1"
secret: "your-secret-1"
- id: "server-02"
name: "生产服务器-2"
secret: "your-secret-2"在每台服务器上安装 Agent 并配置对应的 ID 和密钥。详见 完整部署指南
Q2: 如何配置 HTTPS?
使用反向代理(Nginx 或 Caddy)配置 HTTPS:
# Caddy(推荐,自动 HTTPS)
status.example.com {
reverse_proxy localhost:8900
}Agent 配置改为:serverAddr: wss://status.example.com/ws-report
详细配置参考 反向代理指南
Q3: 支持哪些操作系统?
完全支持:
- Linux(x86_64, ARM64, ARMv7)
- Windows(x86_64, ARM64)
- macOS(x86_64, ARM64/Apple Silicon)
- FreeBSD(x86_64)
已测试的 Linux 发行版:
- Ubuntu 18.04+, Debian 10+, CentOS 7+, Rocky Linux 8+, Arch Linux, Alpine Linux
Q4: 资源占用情况如何?
Agent(单个实例):
- 内存:约 8-15 MB
- CPU:< 0.5%(采集间隔 2s)
- 磁盘:约 5 MB
Dashboard(监控 10 台服务器):
- 内存:约 30-50 MB
- CPU:< 2%
- 磁盘:约 20 MB
✅ 非常轻量,适合资源受限的环境
更多问题? 查看 故障排除指南
本项目采用 Monorepo 单仓库架构,前后端分离设计:
- Agent - 轻量级监控客户端,部署在被监控服务器上
- Dashboard - 监控面板服务端,提供 Web 界面和数据收集
- Web - 前端界面,基于 Vue 3 开发
- pkg/model - 共享数据模型,Agent 和 Dashboard 共用
- internal/shared - 共享基础设施(日志、配置、错误处理)
- Go 1.23+ - 高性能编译型语言,跨平台支持
- Gin - 轻量级 HTTP Web 框架,高性能路由
- Melody - 优雅的 WebSocket 服务端库
- Gorilla WebSocket - 成熟的 WebSocket 客户端实现
- Viper - 灵活的配置管理,支持热加载
- Zap - 高性能结构化日志库
- gopsutil - 跨平台系统信息采集库
- Vue 3 - 渐进式 JavaScript 框架(Composition API)
- TypeScript - 类型安全的 JavaScript 超集
- Ant Design Vue - 企业级 UI 组件库
- Vite - 下一代前端构建工具,开发体验极佳
- Axios - Promise 基于的 HTTP 客户端
- Monorepo - 单仓库多模块管理,统一依赖
- 标准 Go 项目布局 - cmd/、internal/、pkg/ 清晰分离
- 依赖注入 - 松耦合设计,易于测试和扩展
- WebSocket 双通道 - 实时双向通信,低延迟
- 内存: 最低 10MB
- CPU: 最低 0.1%
- 磁盘: 最低 5MB
- 网络: 支持 WebSocket 连接
- 内存: 最低 20MB
- CPU: 最低 0.5%
- 磁盘: 最低 10MB
- 端口: 默认 8900(可配置)
- Go 1.23+
- Node.js 20+
- pnpm(推荐)或 npm
# 克隆项目
git clone https://github.com/ruanun/simple-server-status.git
cd simple-server-status
# 使用 Makefile(推荐)
make build-web # 构建前端
make build-agent # 构建 Agent
make build-dashboard # 构建 Dashboard(包含前端)
make build # 构建所有模块
# 或使用构建脚本
bash scripts/build-web.sh
bash scripts/build-dashboard.sh详细构建说明: scripts/README.md
# 前端开发(热重载)
make dev-web
# 后端开发
make build-dashboard-only
./bin/sss-dashboardsimple-server-status/
├── cmd/ # 程序入口
│ ├── agent/ # Agent 启动入口
│ └── dashboard/ # Dashboard 启动入口
├── internal/ # 内部包
│ ├── agent/ # Agent 实现
│ ├── dashboard/ # Dashboard 实现
│ └── shared/ # 共享基础设施
├── pkg/model/ # 共享数据模型
├── configs/ # 配置文件示例
├── deployments/ # 部署配置
├── web/ # Vue 3 前端
└── go.mod # 统一依赖管理
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
详见 贡献指南
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
如果这个项目对你有帮助,请给个 Star ⭐