docs: move wiki to repo
This commit is contained in:
1 parent
ba7807f560
commit
e9c5840ead
6 files changed
+260
-109
No files matched your search
@@ -1,4 +1,4 @@
|
||||
# XUGOU - 基于CloudFlare搭建的轻量化监控平台
|
||||
# XUGOU - 基于 CloudFlare 搭建的轻量化监控平台
|
||||
|
||||
<div align="center">
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
|
||||
XUGOU 是一个基于 CloudFlare 的轻量化系统监控平台,提供系统监控和状态页面功能。
|
||||
|
||||
[English](./README_EN.md) | 简体中文
|
||||
|
||||
</div>
|
||||
|
||||
## 📅 开发计划
|
||||
@@ -18,26 +16,30 @@ XUGOU 是一个基于 CloudFlare 的轻量化系统监控平台,提供系统
|
||||
- ✅ HTTP 监控 - API 接口健康检测
|
||||
- ✅ 数据可视化 - 实时数据展示与历史趋势
|
||||
- ✅ 状态页面 - 可定制的服务状态页面
|
||||
- ✅ 告警通知 - 异常事件通过多渠道通知(电子邮件、Telegram等)
|
||||
- ✅ 告警通知 - 异常事件通过多渠道通知(电子邮件、Telegram 等)
|
||||
- ✅ 用户管理 - 支持用户注册、多用户管理,可分配不同权限
|
||||
|
||||
## ✨ 核心特性
|
||||
|
||||
- 🖥️ **系统监控**
|
||||
|
||||
- 实时监控 CPU、内存、磁盘、网络等系统指标
|
||||
- 支持自定义监控间隔
|
||||
- 全平台支持(agent由go编写,理论上go能编译的平台都可以支持)
|
||||
- 全平台支持(agent 由 go 编写,理论上 go 能编译的平台都可以支持)
|
||||
|
||||
- 🌐 **HTTP 监控**
|
||||
|
||||
- 支持 HTTP/HTTPS 接口监控
|
||||
- 自定义请求方法、头部和请求体
|
||||
- 响应时间、状态码和内容检查
|
||||
|
||||
- 📊 **数据可视化**
|
||||
|
||||
- 实时数据图表展示
|
||||
- 自定义仪表盘
|
||||
|
||||
- 🌍 **状态页面**
|
||||
|
||||
- 自定义状态页面
|
||||
- 支持多监控项展示
|
||||
- 响应式设计
|
||||
@@ -61,20 +63,25 @@ XUGOU 采用现代化的系统架构,包含以下组件:
|
||||
|
||||
默认用户名:admin 默认密码: admin123
|
||||
|
||||
[XUGOU wiki 部署指南](https://github.com/zaunist/xugou/wiki)
|
||||
[部署指南](./docs/部署指南.md)
|
||||
|
||||
### 开发指南
|
||||
|
||||
[开发指南](./docs/开发指南.md)
|
||||
|
||||
## 常见问题
|
||||
|
||||
[XUGOU wiki 常见问题](https://github.com/zaunist/xugou/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
|
||||
[常见问题](./docs/常见问题.md)
|
||||
|
||||
## ⭐ 支持一下作者
|
||||
|
||||
- Gitfish: [Gitfish 赞助](https://www.gitfish.dev/repo/zaunist/xugou)
|
||||
|
||||
<div align="center">
|
||||
<a href="https://buymeacoffee.com/real_zaunist" target="_blank">
|
||||
<img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" width="200" height="51">
|
||||
</a>
|
||||
<div style="margin-top: 12px;">
|
||||
<img src="./docs/mm_reward_qrcode.png" alt="赞赏码" width="240">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## 🤝 贡献
|
||||
|
||||
-100
@@ -1,100 +0,0 @@
|
||||
# XUGOU - Lightweight Monitoring Platform Based on CloudFlare
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||
XUGOU is a lightweight system monitoring platform based on CloudFlare, providing system monitoring and status page functionality.
|
||||
|
||||
English | [简体中文](./README.md)
|
||||
|
||||
</div>
|
||||
|
||||
## 📅 Development Plan
|
||||
|
||||
Currently implemented features:
|
||||
|
||||
- ✅ System Monitoring - Client resource monitoring and data reporting
|
||||
- ✅ HTTP Monitoring - API endpoint health detection and analysis
|
||||
- ✅ Data Visualization - Real-time data display and historical trend analysis
|
||||
- ✅ Status Page - Customizable service status page
|
||||
- ✅ Alert Notifications - Anomaly event notifications through multiple channels (Email, Telegram, etc.)
|
||||
- ✅ User Management - Supports user registration, multi-user management, and assignable permissions
|
||||
|
||||
## ✨ Core Features
|
||||
|
||||
- 🖥️ **System Monitoring**
|
||||
- Real-time monitoring of CPU, memory, disk, network and other system metrics
|
||||
- Support for custom monitoring intervals
|
||||
- Cross-platform support (agent written in Go, supporting all platforms where Go can compile)
|
||||
|
||||
- 🌐 **HTTP Monitoring**
|
||||
- Support for HTTP/HTTPS endpoint monitoring
|
||||
- Custom request methods, headers, and request bodies
|
||||
- Response time, status code and content validation
|
||||
|
||||
- 📊 **Data Visualization**
|
||||
- Real-time data chart display
|
||||
- Custom dashboards
|
||||
|
||||
- 🌍 **Status Page**
|
||||
- Customizable status page
|
||||
- Support for multiple monitoring items
|
||||
- Responsive design
|
||||
|
||||
- 👥 **User Management**
|
||||
- Supports new user registration
|
||||
- Supports multi-user management
|
||||
- Assignable permissions
|
||||
|
||||
## 🏗️ System Architecture
|
||||
|
||||
XUGOU adopts a modern system architecture, including the following components:
|
||||
|
||||
- **Agent**: Lightweight system monitoring client
|
||||
- **Backend**: Backend service based on Cloudflare Workers
|
||||
- **Frontend**: Modern frontend interface based on React + TypeScript
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Deployment Guide
|
||||
|
||||
Default username: admin Default password: admin123
|
||||
|
||||
[XUGOU wiki Deployment Guide](https://github.com/zaunist/xugou/wiki)
|
||||
|
||||
## FAQ
|
||||
|
||||
[XUGOU wiki FAQ](https://github.com/zaunist/xugou/wiki)
|
||||
|
||||
## ⭐ Support the Author
|
||||
|
||||
Sponsor me in any way you can:
|
||||
|
||||
- Star the project and share it with your friends
|
||||
- Gitfish: [Gitfish Sponsor](https://www.gitfish.dev/repo/zaunist/xugou)
|
||||
- Buy me a coffee
|
||||
|
||||
<div align="center">
|
||||
<a href="https://buymeacoffee.com/real_zaunist" target="_blank">
|
||||
<img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" width="200" height="51">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
## 🤝 Contribution
|
||||
|
||||
All forms of contributions are welcome, whether it's new features, bug fixes, or documentation improvements.
|
||||
|
||||
## 🏢 Sponsorship
|
||||
|
||||
Thanks to the following sponsors for supporting the development of XUGOU:
|
||||
|
||||
[Cloudflare](https://www.cloudflare.com/)
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is open-sourced under the MIT License. See the [LICENSE](./LICENSE) file for details.
|
||||
|
||||
## 🔥 Star History
|
||||
|
||||
[](https://www.star-history.com/#zaunist/xugou&Date)
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
@@ -0,0 +1,36 @@
|
||||
# 常见问题 (FAQ)
|
||||
|
||||
本文档收集了 XUGOU 使用过程中的常见问题及解决方案。
|
||||
|
||||
## 安装与部署问题
|
||||
|
||||
### 问题: Agent 报告无法连接到后端服务。
|
||||
|
||||
**解决方案**:
|
||||
|
||||
1. 确认后端服务 URL 是否正确配置
|
||||
2. 检查网络连接是否正常
|
||||
3. 确认 API 令牌是否正确
|
||||
4. worker 的默认域名在国内无法访问,请替换为自定义域名
|
||||
|
||||
### 问题:创建 worker 时导入存储库页面找不到 xugou
|
||||
|
||||
一般这种情况是使用 `通过 Git URL 克隆存储库` 方式创建的,建议删除通过 cloudflare fork 的仓库,同时删除 github 上安装的 cloudflare App。然后重新手动 fork。
|
||||
管理已安装的 GitHub App: https://github.com/settings/installations
|
||||
|
||||
### 问题:为什么数据库 ID 不使用环境变量?
|
||||
|
||||
现在的部署,是通过 cloudflare 的 wrangler 工具部署,没有设置 GitHub Action,而 cloudflare 在部署时会直接读取 wrangler.tom 文件中的值,我没找到设置环境变量的方式。
|
||||
假如要使用环境变量,那么就需要改造现有的部署流程,引入 GitHub Action,我认为没必要,现有的方式已经足够。
|
||||
|
||||
## 使用问题
|
||||
|
||||
### 问题:部署完成以后,电脑可以访问,手机端不行
|
||||
|
||||
手机端打开代理就能访问,这或许是当地移动运营商屏蔽了 cf 的 ip?
|
||||
|
||||
### 问题:agent 显示“令牌签名无效”
|
||||
|
||||
改了 admin 用户的名字导致的,把名字改回去,重新生成 token 就好了
|
||||
|
||||
参考:https://github.com/zaunist/xugou/issues/77#issuecomment-3646078253
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
# 开发指南
|
||||
|
||||
本文档将帮助您了解XUGOU项目的开发环境配置、项目结构和开发流程。
|
||||
|
||||
## 环境要求
|
||||
|
||||
在开始开发XUGOU项目之前,请确保您的系统满足以下要求:
|
||||
|
||||
- **Node.js** >= 18
|
||||
- **Go** >= 1.24
|
||||
- **Git**
|
||||
|
||||
## 项目结构
|
||||
|
||||
XUGOU项目分为三个主要部分:
|
||||
|
||||
### 前端 (frontend)
|
||||
|
||||
前端使用React + TypeScript开发,目录结构如下:
|
||||
|
||||
```
|
||||
frontend/
|
||||
├── public/ # 静态资源
|
||||
├── src/ # 源代码
|
||||
│ ├── api/ # API调用
|
||||
│ ├── components/ # 通用组件
|
||||
│ ├── pages/ # 页面组件
|
||||
│ ├── store/ # 状态管理
|
||||
│ ├── styles/ # 样式文件
|
||||
│ ├── types/ # TypeScript类型定义
|
||||
│ └── utils/ # 工具函数
|
||||
├── .env.local # 本地环境变量
|
||||
├── package.json # 项目依赖
|
||||
├── tsconfig.json # TypeScript配置
|
||||
└── vite.config.ts # Vite配置
|
||||
```
|
||||
|
||||
### 后端 (backend)
|
||||
|
||||
后端基于Cloudflare Workers开发,目录结构如下:
|
||||
|
||||
```
|
||||
backend/
|
||||
├── src/ # 源代码
|
||||
│ ├── controllers/ # 控制器
|
||||
│ ├── models/ # 数据模型
|
||||
│ ├── routes/ # 路由定义
|
||||
│ └── utils/ # 工具函数
|
||||
├── schema.sql # 数据库架构
|
||||
├── wrangler.toml # Cloudflare Workers配置
|
||||
└── package.json # 项目依赖
|
||||
```
|
||||
|
||||
### 客户端 (agent)
|
||||
|
||||
监控客户端使用Go语言开发,目录结构如下:
|
||||
|
||||
```
|
||||
agent/
|
||||
├── cmd/ # 命令行命令
|
||||
│ └── agent/ # 命令行实现
|
||||
├── pkg/ # 功能包
|
||||
│ ├── collector/ # 数据收集器
|
||||
│ └── reporter/ # 数据上报器
|
||||
├── main.go # 程序入口
|
||||
└── go.mod # Go依赖
|
||||
```
|
||||
|
||||
## 开发流程
|
||||
|
||||
### 1. 克隆项目
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zaunist/xugou.git
|
||||
cd xugou
|
||||
```
|
||||
|
||||
### 2. 前端开发
|
||||
|
||||
```bash
|
||||
# 进入前端目录
|
||||
cd frontend
|
||||
|
||||
# 安装依赖
|
||||
pnpm install
|
||||
|
||||
# 配置环境变量
|
||||
cp .env.local.example .env.local
|
||||
# 编辑.env.local,设置后端API地址
|
||||
|
||||
# 启动开发服务器
|
||||
pnpm run dev
|
||||
```
|
||||
|
||||
前端开发服务器将在 `http://localhost:5173` 启动。
|
||||
|
||||
### 3. 后端开发
|
||||
|
||||
```bash
|
||||
# 进入后端目录
|
||||
cd backend
|
||||
|
||||
# 安装依赖
|
||||
pnpm install
|
||||
|
||||
# 启动开发服务器
|
||||
pnpm run dev
|
||||
```
|
||||
|
||||
后端开发服务器将在本地启动,通常在控制台输出中会显示地址。
|
||||
|
||||
### 4. 客户端开发
|
||||
|
||||
```bash
|
||||
# 进入客户端目录
|
||||
cd agent
|
||||
|
||||
# 构建客户端
|
||||
go build -o xugou-agent
|
||||
|
||||
# 运行客户端(控制台输出模式)
|
||||
./xugou-agent --server console start
|
||||
```
|
||||
|
||||
## 代码提交规范
|
||||
|
||||
为保持代码库的一致性和可维护性,请遵循以下代码提交规范:
|
||||
|
||||
1. **分支管理**:
|
||||
- `main`:主分支,只接受稳定版本的合并
|
||||
- `dev`:开发分支,日常开发在此分支上进行
|
||||
- 功能分支:以`feature/`为前缀,例如`feature/dashboard`
|
||||
- 修复分支:以`fix/`为前缀,例如`fix/memory-leak`
|
||||
|
||||
2. **提交信息**:
|
||||
- 格式:`类型: 描述`,例如`feat: 添加用户认证功能`
|
||||
- 类型包括:
|
||||
- `feat`:新功能
|
||||
- `fix`:修复bug
|
||||
- `docs`:文档更新
|
||||
- `style`:代码风格修改(不影响代码功能)
|
||||
- `refactor`:重构代码
|
||||
- `test`:添加或修改测试
|
||||
- `chore`:构建过程或工具变动
|
||||
|
||||
3. **代码审查**:所有代码合并到主分支前需要通过代码审查
|
||||
@@ -0,0 +1,62 @@
|
||||
## 部署指南:使用 GitHub Actions 自动化部署
|
||||
|
||||
XUGOU 系统现在采用单一 Worker 部署方式,前后端集成在一个 Worker 中,并推荐使用 GitHub Actions 实现自动化部署,流程更简单、更安全。
|
||||
|
||||
### 部署优势
|
||||
|
||||
* **自动化**: 每次推送代码到 `main` 分支,即可自动完成构建和部署,无需手动操作。
|
||||
* **高安全性**: 无需在代码中明文存储数据库 ID 等敏感信息,全部通过 GitHub 的加密 Secrets 功能管理,避免隐私泄露。
|
||||
* **配置简单**: 只需一次性配置,后续无需再关心部署细节。
|
||||
|
||||
### 一键部署步骤
|
||||
|
||||
#### 第 1 步:准备 Cloudflare 环境
|
||||
|
||||
1. **创建 D1 数据库**
|
||||
* 登录到 Cloudflare 控制台。
|
||||
* 访问左侧菜单栏 **Workers 和 Pages** -> **D1**,点击 **“创建数据库”**。
|
||||
* 为数据库命名,例如 `xugou_db`。
|
||||
* 创建成功后,**记录下数据库的 “数据库 ID” 和 “数据库名称”**,后续步骤会用到。
|
||||
|
||||
2. **创建 API 令牌**
|
||||
* 在 Cloudflare 控制台,点击右上角的用户图标,进入 **“我的个人资料”** -> **“API 令牌”**。
|
||||
* 点击 **“创建令牌”**,然后选择 **“编辑 Cloudflare Workers”** 这个模板。
|
||||
* 保持默认的权限配置不变,点击 **“继续以显示摘要”** -> **“创建令牌”**。
|
||||
* **立即复制生成的 API 令牌**,这个令牌只会显示一次。
|
||||
|
||||
#### 第 2 步:Fork 项目并配置 GitHub Secrets
|
||||
|
||||
1. **Fork 仓库**
|
||||
* 访问项目主页 [https://github.com/zaunist/xugou](https://github.com/zaunist/xugou) 并点击右上角的 **Fork** 按钮,将项目复制到你自己的 GitHub 账户下。
|
||||
|
||||
2. **修改 `wrangler.toml` 文件(如果尚未修改)**
|
||||
* 确保你 Fork 的仓库根目录下的 `wrangler.toml` 文件中的 `d1_databases` 部分使用了占位符。**本项目已为您配置好,无需修改**。正确的配置如下:
|
||||
```toml
|
||||
[[d1_databases]]
|
||||
binding = "DB"
|
||||
database_name = "${D1_DATABASE_NAME}" # 使用占位符
|
||||
database_id = "${D1_DATABASE_ID}" # 使用占位符
|
||||
```
|
||||
|
||||
3. **配置 GitHub Secrets**
|
||||
* 进入你 Fork 后的 GitHub 仓库,点击 **Settings** -> **Secrets and variables** -> **Actions**。
|
||||
* 点击 **New repository secret** 按钮,依次添加以下 **4 个** Secret:
|
||||
* `CF_API_TOKEN`: 粘贴你在**第 1 步**中创建并复制的 Cloudflare API 令牌。
|
||||
* `CF_ACCOUNT_ID`: 你的 Cloudflare **账户 ID** (可以在 Cloudflare 控制台主页的右侧找到)。
|
||||
* `D1_DATABASE_ID`: 你在**第 1 步**中创建的 D1 数据库的 **ID**。
|
||||
* `D1_DATABASE_NAME`: 你在**第 1 步**中创建的 D1 数据库的**名称**。
|
||||
|
||||
#### 第 3 步:触发部署
|
||||
|
||||
配置完成后,部署将自动进行!
|
||||
|
||||
* **自动部署**: 每当你向你的仓库的 `main` 分支推送代码时,GitHub Action 就会自动开始构建和部署流程。
|
||||
* **手动部署**: 你也可以进入仓库的 **Actions** 标签页,点击左侧的 "Deploy to Cloudflare" 工作流,然后点击 "Run workflow" 按钮来手动触发一次部署。
|
||||
|
||||
### 部署完成
|
||||
|
||||
部署过程大约需要 1-2 分钟。完成后,您的 XUGOU 监控平台就可以通过 Cloudflare Worker 的 URL 访问了。
|
||||
|
||||
* **访问地址**: `https://<你的项目名>.<你的workers.dev子域>.workers.dev`
|
||||
* 项目名在 `wrangler.toml` 文件中定义 (默认为 `xugou-app`)。
|
||||
* 你也可以在 Cloudflare 控制台为你的 Worker 绑定自定义域名。
|
||||
Reference in new issue
Block a user