/ README.zh-CN.md
README.zh-CN.md
  1  <p align="center">
  2    <img src="docs/images/logo.png" alt="EasyShell Logo" width="200" />
  3  </p>
  4  
  5  # EasyShell
  6  
  7  **AI 原生服务器运维平台**
  8  
  9  让 AI 为你编写脚本、编排多机任务并分析基础设施 —— 而你只需关注核心决策。
 10  
 11  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
 12  [![Docs](https://img.shields.io/badge/Docs-docs.easyshell.ai-green.svg)](https://docs.easyshell.ai)
 13  [![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289da?logo=discord&logoColor=white)](https://discord.gg/akQqRgNB6t)
 14  
 15  **语言**: [English](./README.md) | 简体中文 | [繁體中文](./README.zh-TW.md) | [한국어](./README.ko.md) | [Русский](./README.ru.md) | [日本語](./README.ja.md)
 16  
 17  ---
 18  
 19  ## 为什么选择 EasyShell?
 20  
 21  传统的服务器管理工具需要你亲手编写每个脚本、登录每台机器并自行解读输出结果。EasyShell 颠覆了这一模式:**AI 是执行者,你是决策者。**
 22  
 23  - **用自然语言描述需求** → AI 编写生产级 Shell 脚本,并支持差异比对预览
 24  - **设定跨多机目标** → AI 规划执行步骤、运行任务并汇总分析结果
 25  - **配置定时巡检任务** → AI 分析输出结果并自主决策是否通过机器人频道告警通知团队
 26  - **通过 Web SSH 连接** → 全功能终端,集成文件管理器、多标签页及搜索 —— 无需本地客户端
 27  
 28  ---
 29  
 30  ## 核心功能
 31  
 32  ### 1. AI 脚本助手
 33  
 34  > 描述你的需求。AI 编写脚本。查看差异比对。一键应用执行。
 35  
 36  AI 脚本工作台是一个双栏编辑器,你只需用自然语言描述需求,AI 即可针对目标操作系统生成(或修改)Shell 脚本。支持实时流式输出,内置差异比对视图(Diff View)精准定位改动,并提供中文摘要解释修改内容。
 37  
 38  <p align="center">
 39    <img src="docs/images/AI%20Script%20helper.png" alt="AI 脚本助手 —— 实时代码生成与差异比对" width="90%" />
 40  </p>
 41  
 42  **工作流程:**
 43  1. **描述** —— 用自然语言描述需求,选择目标操作系统
 44  2. **生成** —— AI 实时流式生成生产级脚本
 45  3. **审查** —— 内置差异比对视图高亮显示所有变更;摘要标签解释修改内容
 46  4. **应用** —— 一键保存至脚本库或立即下发执行
 47  
 48  ### 2. AI 任务编排
 49  
 50  > “检查所有主机的磁盘和内存,标记占用超过 80% 的项,并给出修复建议。” —— 已完成。
 51  
 52  AI 对话界面允许你下达高层级的运维目标。AI 会将其拆解为多步执行计划(探索 → 分析 → 报告),将脚本分发至目标主机,收集执行结果,并在单次对话中交付包含风险评估和操作建议的结构化分析报告。
 53  
 54  <p align="center">
 55    <img src="docs/images/AI%20task%20orchestration.png" alt="AI 任务编排 —— 多步执行计划与分析" width="90%" />
 56  </p>
 57  
 58  **工作流程:**
 59  1. **指令** —— 在 AI 对话中描述高层级运维目标(如「检查所有主机磁盘使用率」)
 60  2. **规划** —— AI 将目标拆解为多步执行计划(探索 → 分析 → 报告)
 61  3. **执行** —— 脚本并行分发至目标主机,结果自动收集
 62  4. **报告** —— AI 生成包含风险评估和操作建议的结构化分析报告
 63  
 64  ### 3. AI 定时巡检
 65  
 66  > **定时任务 → 脚本执行 → AI 智能分析 → 智能告警** —— AI 分析输出结果并自主决策是否告警。
 67  
 68  通过 Cron 表达式安排巡检任务,并从内置脚本库中选择脚本。EasyShell 按计划将脚本分发至 Agent,收集输出内容(磁盘、内存、服务、日志),交由 AI 模型进行智能分析,**由 AI 判断是否需要告警** —— 只在真正需要关注时才推送通知。
 69  
 70  <p align="center">
 71    <img src="docs/images/schedule_task.png" alt="AI 定时巡检 —— 基于 Cron 的定时任务,AI 智能分析输出并自主决策告警" width="90%" />
 72  </p>
 73  
 74  **工作流程:**
 75  1. **配置** —— Cron 表达式 + 脚本(从脚本库选择或自定义)+ AI 分析提示词 + 通知规则
 76  2. **执行** —— EasyShell 按计划将脚本分发到目标 Agent
 77  3. **分析** —— 输出发送到 AI 模型(OpenAI / Gemini / GitHub Copilot / 自定义)进行智能分析
 78  4. **通知** —— AI 评估严重程度,在需要时通过机器人频道推送告警
 79  
 80  **通知模式:** 始终推送、失败时推送、警告时推送、或 **AI 自主决策** —— AI 模型评估输出内容并自主判断是否需要告警。
 81  
 82  **支持的机器人频道** ([配置指南](https://docs.easyshell.ai/configuration/bot-channels/)):
 83  
 84  | 机器人 | 状态 |
 85  |-----|--------|
 86  | [Telegram](https://docs.easyshell.ai/configuration/bot-channels/) | ✅ 已支持 |
 87  | [Discord](https://docs.easyshell.ai/configuration/bot-channels/) | ✅ 已支持 |
 88  | [Slack](https://docs.easyshell.ai/configuration/bot-channels/) | ✅ 已支持 |
 89  | [钉钉 (DingTalk)](https://docs.easyshell.ai/configuration/bot-channels/) | ✅ 已支持 |
 90  | [飞书 (Feishu)](https://docs.easyshell.ai/configuration/bot-channels/) | ✅ 已支持 |
 91  | [企业微信 (WeCom)](https://docs.easyshell.ai/configuration/bot-channels/) | ✅ 已支持 |
 92  
 93  ### 4. 全功能 Web SSH
 94  
 95  > 真正的终端。真正的文件管理器。无需安装 SSH 客户端。
 96  
 97  生产级的 Web 终端,支持多标签会话、集成式文件管理器(上传、下载、创建、删除、导航)、终端回滚缓冲区全文本搜索,并通过 WebSocket 保持长连接。让你在运行命令的同时高效管理文件。
 98  
 99  <p align="center">
100    <img src="docs/images/Fully%20functional%20web%20SSH.png" alt="Web SSH —— 终端集成文件管理器与多标签页" width="90%" />
101  </p>
102  
103  ### 5. 主机管理与监控
104  
105  > 统一视图展示所有服务器的实时状态,支持批量操作和 Agent 生命周期管理。
106  
107  单独或批量管理主机 —— 通过表单或 CSV 导入添加、按集群组织、监控连接状态,一键部署/升级 Agent。统一仪表板让健康指标一目了然。
108  
109  <p align="center">
110    <img src="docs/images/host-management.png" alt="主机管理 —— 支持批量操作的统一服务器仪表板" width="90%" />
111  </p>
112  
113  ### 6. 实时流式日志
114  
115  > 实时观察脚本在所有目标主机上的执行过程。
116  
117  当你下发脚本时,EasyShell 会从每个 Agent 实时流式传输输出内容。彩色日志、时间戳和按主机筛选功能,让你能即时发现问题 —— 无需再等待批处理任务完成。
118  
119  <p align="center">
120    <img src="docs/images/realtime-logs.png" alt="实时日志 —— 多主机实时流式输出" width="90%" />
121  </p>
122  
123  ### 7. 安全与风控
124  
125  > 内置安全机制:审批流程、审计追踪和操作限制。
126  
127  配置哪些操作在执行前需要审批。所有操作都会被记录以满足合规要求。基于角色的访问控制限制「谁可以做什么」,敏感命令可以被标记或完全禁止。
128  
129  <p align="center">
130    <img src="docs/images/security-controls.png" alt="安全控制 —— 审批流程与审计日志" width="90%" />
131  </p>
132  
133  ---
134  
135  ## 快速开始
136  
137  ```bash
138  git clone https://github.com/easyshell-ai/easyshell.git
139  cd easyshell
140  cp .env.example .env      # 按需修改 .env
141  docker compose up -d
142  ```
143  
144  无需本地构建 —— 预构建镜像将自动从 [Docker Hub](https://hub.docker.com/u/laolupaojiao) 拉取。
145  
146  访问 `http://localhost:18880` → 使用 `easyshell` / `easyshell@changeme` 登录。
147  
148  > **想使用 GHCR?** 在 `.env` 中设置:
149  > ```
150  > EASYSHELL_SERVER_IMAGE=ghcr.io/easyshell-ai/easyshell/easyshell-server:latest
151  > EASYSHELL_WEB_IMAGE=ghcr.io/easyshell-ai/easyshell/easyshell-web:latest
152  > ```
153  
154  > **开发者?从源码构建:**
155  > ```bash
156  > docker compose -f docker-compose.build.yml up -d
157  > ```
158  
159  ---
160  
161  ## 完整功能集
162  
163  | 类别 | 功能特性 |
164  |----------|----------|
165  | **AI 智能** | AI 脚本助手(生成 / 修改 / 差异比对 / 摘要)、AI 任务编排(多步计划、并行执行、深度分析)、AI 定时巡检(Cron 定时、AI 输出分析、智能告警决策、多频道机器人推送)、AI 对话、巡检报告、操作审批 |
166  | **运维操作** | 脚本库、批量执行、实时流式日志、集成文件管理器的 Web SSH 终端 |
167  | **基础设施** | 主机管理、实时监控、集群分组、Agent 自动部署 |
168  | **系统管理** | 用户管理、系统配置、AI 模型设置(OpenAI / Gemini / Copilot / 自定义)、风险控制 |
169  | **平台特性** | 国际化(中/英)、深色/浅色主题、响应式设计、审计日志 |
170  
171  ---
172  
173  ## 架构
174  
175  ```
176  ┌──────────────┐       HTTP/WS        ┌──────────────────┐
177  │  EasyShell   │◄─────────────────────►│   EasyShell      │
178  │    Agent     │  register / heartbeat │     Server       │
179  │  (Go 1.24)  │  script exec / logs   │ (Spring Boot 3.5)│
180  └──────────────┘                       └────────┬─────────┘
181182                                         ┌────────┴─────────┐
183                                         │   EasyShell Web   │
184                                         │ (React + Ant Design)│
185                                         └──────────────────┘
186  ```
187  
188  ## 技术栈
189  
190  | 组件 | 技术 |
191  |-----------|-----------|
192  | Server | Java 17, Spring Boot 3.5, Gradle, JPA/Hibernate, Spring AI, Spring Security |
193  | Agent | Go 1.24, 单一二进制文件, 零运行时依赖 |
194  | Web | React 19, TypeScript, Vite 7, Ant Design 6 |
195  | Database | MySQL 8.0 |
196  | Cache | Redis 7 |
197  
198  ## 项目结构
199  
200  ```
201  easyshell/
202  ├── easyshell-server/           # 中央管理服务器 (Java / Spring Boot)
203  ├── easyshell-agent/            # Agent 客户端 (Go, 单一二进制文件)
204  ├── easyshell-web/              # Web 前端 (React + Ant Design)
205  ├── docker-compose.yml          # 生产环境部署 (拉取预构建镜像)
206  ├── docker-compose.build.yml    # 开发环境部署 (从源码本地构建)
207  ├── Dockerfile.server           # Server + Agent 多阶段构建
208  ├── Dockerfile.web              # Web 前端多阶段构建
209  ├── .github/workflows/          # CI/CD: 构建与发布 Docker 镜像
210  └── .env.example                # 环境变量配置模板
211  ```
212  
213  ## 文档
214  
215  访问 **[docs.easyshell.ai](https://docs.easyshell.ai)** 获取:
216  
217  - 安装与部署指南
218  - 快速入门指引
219  - 配置参考
220  - 开发指南
221  
222  ## 社区
223  
224  [![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289da?logo=discord&logoColor=white)](https://discord.gg/akQqRgNB6t)
225  
226  加入我们的 Discord 社区获取支持、参与讨论并获取更新动态:
227  **[https://discord.gg/akQqRgNB6t](https://discord.gg/akQqRgNB6t)**
228  
229  ## 许可证
230  
231  本项目采用 [MIT 许可证](./LICENSE) 开源。