From e4280a1e2f88e0d7ab92aa9e058f8efdf0ebeb45 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Sun, 29 Jun 2025 08:21:26 +0000 Subject: [PATCH] Update README.md --- OpenPasteSpiderWeb/readme.md | 154 ++++++++++++++++++++++++++++------- 1 file changed, 124 insertions(+), 30 deletions(-) diff --git a/OpenPasteSpiderWeb/readme.md b/OpenPasteSpiderWeb/readme.md index d0102c5..897917d 100644 --- a/OpenPasteSpiderWeb/readme.md +++ b/OpenPasteSpiderWeb/readme.md @@ -1,41 +1,135 @@ +# OpenPasteSpider 项目文档 -运行状态(各服务的状态监听) - 机子状态(每一台最近的一条数据 10秒刷新) - 具体某一台的最近一个小时的曲线图 可筛选小时区间的 - 服务状态 (服务列表,每一个服务的总运行数,在运行数等) - 具体某一个服务的docker列表 - 具体某一个docker的监听曲线图 +## 项目简介 -系统维护(升级降配,更新nginx文件,同步nginx文件,nginx文件校验等) +OpenPasteSpider 是一个基于 .NET 的开源项目,主要用于管理、监控和部署容器化服务。该项目结合了 Docker 容器技术、微服务架构以及前后端分离的设计理念,适用于构建自动化部署和监控系统。 - 机子列表(所有的linux的服务器一栏) + D M S - 可以查询,可以编辑,可以新增 - 服务升级(所有服务的一个列表) + D M S - 构建镜像,发布升级,查看升级记录,查看升级日志,回滚版本,服务的增删改查,扩容,降配 - Nginx配置(nginx文件的管理)+ D M S - nginx.conf列表-->(某一个nginx.conf文件涉及到的服务有哪些,涉及到哪些服务器,点击可以同步到那个服务器(从谁推送给谁?有一个默认服务器?)) - -系统监测(配置三方Posturl,或者webhook等) - 推送地址-->配置服务权限-->配置接收项目 +主要功能包括: -用户管理(管理操作系统的用户列表) - 用户,权限,历史记录等 +- 用户权限管理(角色、权限、用户) +- 项目、服务、环境、服务器的配置与管理 +- 容器状态监控(CPU、内存、网络等) +- 任务调度与执行(计划任务、命令执行) +- 消息通知机制 +- 前端界面支持 H-ui 框架,提供可视化操作 +## 技术栈 -【PS】:选择linux 选择service +- 后端:.NET 6 + ASP.NET Boilerplate (ABP) 框架 +- 数据库:Entity Framework Core + PostgreSQL(默认) +- 前端:HTML + JavaScript + jQuery + H-ui Admin 框架 + Layer 弹窗组件 + ECharts 图表 +- 容器管理:Docker + SSH 远程连接 +- 缓存:MemoryCache(可扩展为 Redis) +- 构建工具:Dockerfile + .NET CLI +## 目录结构说明 -可以添加一个日报表板块 +### 后端模块 -构建镜像 升级 扩容量 成功 失败 操作员 +#### `Application` +- 包含应用服务类(如 `AppInfoAppService`, `LinuxInfoAppService` 等),负责业务逻辑处理。 +- 使用 ABP 框架的 `ApplicationService` 基类。 +- 支持分页查询、创建、更新、删除等操作。 +#### `Application.Contracts` +- 定义 DTO(数据传输对象)和输入输出模型。 +- 包含请求参数类(如 `InputLogin`, `InputSearch`, `InputBuildUpdate` 等)。 +- 包含响应模型(如 `LoginOutputModel`, `ActionBack`, `ErrorInfoModel` 等)。 +- 包含枚举类型(如 `RunState`, `OrderModel`, `ActionState` 等)。 -添加命令 - 1.清理服务器缓存 - echo 1 > /proc/sys/vm/drop_caches - echo 2 > /proc/sys/vm/drop_caches - echo 3 > /proc/sys/vm/drop_caches - 2.查询服务器缓存 - free -h - 3.添加对ssl的申请的支持? 估计不行,得分多个步骤 - 4. \ No newline at end of file +#### `Domain` +- 核心领域模型(如 `AppInfo`, `LinuxInfo`, `ServiceInfo`, `ModelInfo`, `PlanInfo`, `PlanItem` 等)。 +- 包含实体类、值对象、聚合根等。 +- 使用 ABP 的 `Entity` 和 `AggregateRoot` 基类。 +- 包含配置类(如 `SpiderConfig`)和状态模型(如 `DockerState`, `LinuxState` 等)。 + +#### `EntityFrameworkCore` +- 数据访问层,使用 Entity Framework Core 实现。 +- 包含 `DbContext` 类 `OpenPasteSpiderDbContext`。 +- 定义数据库上下文接口 `IOpenPasteSpiderDbContext`。 +- 包含迁移脚本(如 `initdatabase`, `addreporttable` 等)。 + +#### `HttpApi.Host` +- Web API 主机模块,提供 RESTful 接口。 +- 包含控制器类(如 `APIUserController`, `APIModelController`, `APIUploadController` 等)。 +- 支持身份验证、权限控制(通过 `RoleAttribute`)。 +- 提供 Swagger 接口文档。 +- 包含 Dockerfile,支持容器化部署。 + +### 前端模块(`OpenPasteSpiderWeb/page`) + +- 使用 H-ui Admin 框架构建后台管理系统。 +- 包含多个页面(如 `index.html`, `view.html`, `list.html` 等)。 +- 使用 ECharts 实现数据可视化(如 `app.html`, `linux.html`)。 +- 使用 My97DatePicker 实现日期选择功能。 +- 使用 Layer.js 实现弹窗、提示、加载动画等交互效果。 +- 使用 jQuery 和自定义 `api.js` 实现前后端通信。 + +## 核心功能模块说明 + +### 用户权限管理 + +- **用户管理**:支持用户注册、登录、修改密码、权限分配。 +- **角色管理**:定义权限项(如 `RoleInfo`),支持父子角色结构。 +- **权限绑定**:通过 `GradeRole` 将角色绑定到权限组。 +- **权限控制**:通过 `RoleAttribute` 实现接口级别的权限控制。 + +### 项目与服务管理 + +- **项目管理**:支持项目创建、更新、删除,每个项目可包含多个服务。 +- **服务管理**:定义服务信息(如镜像名称、监听端口、前置命令等),支持版本控制。 +- **环境管理**:定义运行环境(如 `ModelInfo`),支持伸缩、升级策略。 +- **服务器管理**:定义 Linux 服务器信息(如 IP、SSH 登录信息、工作目录等)。 + +### 容器与任务调度 + +- **容器状态监控**:记录容器的 CPU、内存、网络、线程等运行状态(`DockerState`, `DockerTimeState`)。 +- **任务调度**:通过 `PlanInfo` 和 `PlanItem` 定义任务流程,支持顺序执行、严格模式等。 +- **命令执行**:支持远程执行命令(通过 SSH)、重启、停止、删除容器等操作。 +- **自动构建**:支持自动构建镜像、更新服务、扩容/缩容等操作。 + +### 消息通知 + +- **消息接收者管理**:定义消息推送地址、接收类型(如 `RevicerInfo`)。 +- **消息日志**:记录推送结果(如 `NoticeLog`)。 +- **消息发送**:通过 `NoticeTaskHanlder` 发送 HTTP 请求通知。 + +### 缓存与工具类 + +- **缓存管理**:通过 `ICacheHelper` 和 `MemoryClient` 实现本地缓存。 +- **公共工具类**: + - `PublicModelHelper`:用于获取和清理模型数据。 + - `ActionHelper`:封装容器操作逻辑(如构建、重启、删除等)。 + - `LinkHelper`:封装 SSH 连接和远程命令执行逻辑。 + - `ImageHelper`:生成验证码图片、验证码校验。 + +## 部署与运行 + +### 后端部署 + +1. **数据库配置**:在 `appsettings.json` 中配置数据库连接字符串。 +2. **迁移数据库**:使用 EF Core 工具执行迁移脚本。 +3. **运行项目**:使用 `dotnet run` 或部署为 Docker 容器。 +4. **Dockerfile**:提供标准的 Docker 镜像构建方式。 + +### 前端部署 + +1. **静态资源**:前端页面位于 `OpenPasteSpiderWeb/page` 目录。 +2. **依赖库**:使用 jQuery、Layer、H-ui Admin、ECharts 等前端库。 +3. **页面结构**:每个模块对应多个 HTML 页面(如 `index.html`, `view.html`, `list.html`)。 +4. **部署方式**:可部署为静态资源服务器或集成到后端项目中。 + +## 开发与扩展建议 + +- **新增模块**:可参考现有模块结构,添加新的 `Entity`, `AppService`, `Dto`, `Controller`。 +- **权限扩展**:通过 `RoleInfo` 添加新的权限项,并在控制器中使用 `RoleAttribute` 控制访问。 +- **前端页面**:可基于现有页面模板扩展新的视图,使用 `api.js` 调用后端接口。 +- **监控扩展**:可扩展 `DockerState`, `LinuxState` 等模型,增加新的监控维度。 + +## 许可证 + +本项目采用 [MIT License](LICENSE),您可以自由使用、修改和分发本项目代码。 + +--- + +如需进一步了解某个模块的功能或接口,请参考对应模块的 README 或源码注释。 \ No newline at end of file -- Gitee