docs: move wiki to repo

This commit is contained in:
zaunist committed 2025-12-14 23:33:03 +08:00
1 parent ba7807f560
commit e9c5840ead
6 files changed
+260 -109

No files matched your search

+16 -9
View File
@@ -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
View File
@@ -1,100 +0,0 @@
# XUGOU - Lightweight Monitoring Platform Based on CloudFlare
<div align="center">
![XUGOU Logo](frontend/public/logo.svg)
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
[![Star History Chart](https://api.star-history.com/svg?repos=zaunist/xugou&type=Date)](https://www.star-history.com/#zaunist/xugou&Date)
Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

+36
View File
@@ -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
View File
@@ -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. **代码审查**:所有代码合并到主分支前需要通过代码审查
+62
View File
@@ -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 绑定自定义域名。