docs: 更新README+架构文档 反映v0.6.0文件管理器/WS推送/WebUI重构
- README: 新增文件管理器特性/Web面板路由/架构更新 - 框架架构文档: 新增第十章 v0.6.0 WebUI重构+文件管理器+WS推送+MD3主题 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -11,28 +11,29 @@
|
||||
|
||||
- 🎨 **Textual TUI** — 系统监控面板 + 命令补全 + CLI 回退
|
||||
- 🔌 **插件系统** — 热加载、权限隔离、依赖解析、进程隔离
|
||||
- 📁 **文件管理器** — 全文件系统浏览、编辑、上传、右键菜单,Windows/Linux/macOS 兼容
|
||||
- 🗄️ **项目引擎** — 接管任何 Python/命令行项目 (subprocess + 日志 + stdin)
|
||||
- 🔀 **反向代理** — HTTP/WS 代理,本地/局域网/公网端口映射
|
||||
- 📊 **SQLite 持久化** — 插件状态、权限、审计日志统一存储
|
||||
- 🌐 **Web 管理面板** — aiohttp + SSE,项目管理/代理/插件控制页
|
||||
- 🌐 **Web 管理面板** — aiohttp MD3 WebUI,日夜主题切换,WebSocket 实时推送
|
||||
- 🔐 **安全认证** — PBKDF2-SHA256、环境变量密码
|
||||
- 🐳 **Docker 部署** — Alpine 镜像,systemd 服务文件
|
||||
- 🧪 **28 个回归测试** — pytest,零失败
|
||||
- 🛠️ **插件 SDK** — 命令装饰器 + Web 面板 + API + SSE 推送
|
||||
- 🛠️ **插件 SDK** — 命令装饰器 + Web 面板 + API + SSE 推送 + 文件选择器
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
python main.py # TUI 模式
|
||||
python main.py --headless # 后台模式
|
||||
python main.py --headless # 后台模式 (Web 面板 :4200)
|
||||
python -m pytest tests/ -v # 运行测试
|
||||
```
|
||||
|
||||
## 🏗️ 架构
|
||||
|
||||
```
|
||||
main.py → SenSuFramework (15 服务)
|
||||
main.py → SenSuFramework (15+ 服务)
|
||||
├── ProjectEngine ← 接管任何项目 (subprocess + 日志)
|
||||
├── ProxyService ← 反向代理 (HTTP+WS)
|
||||
├── PyEnvManager ← Python 版本 + venv + git clone
|
||||
@@ -41,18 +42,19 @@ main.py → SenSuFramework (15 服务)
|
||||
├── SenSuDB ← SQLite 5 表
|
||||
├── TuiService ← Textual + 系统监控
|
||||
├── InternetService ← HTTP :4200 + WS :4240
|
||||
└── WebPanelManager ← /SenSu 管理面板
|
||||
└── WebPanelManager ← /SenSu 管理面板 (路由 + WS + 文件管理)
|
||||
```
|
||||
|
||||
## 📁 目录
|
||||
|
||||
```
|
||||
SenSu-Alpha/
|
||||
SenSu/
|
||||
├── main.py, service_manager.py
|
||||
├── sdk/ plugin_command, plugin_status, plugin_error, plugin_web
|
||||
├── services/ 15 个核心服务
|
||||
├── bridges/ CoreBridge + PluginBridge + NetworkBridge
|
||||
├── plugins/ 插件目录 + example_plugin (含 Web 面板)
|
||||
├── services/ 15+ 核心服务 + web_panel/ (路由 + 工具)
|
||||
├── bridges/ CoreBridge + PluginBridge
|
||||
├── plugins/ 插件目录 + example_plugin
|
||||
├── static/ MD3 CSS + JS + 页面
|
||||
├── deploy/ systemd + Dockerfile
|
||||
├── tests/ 28 个测试
|
||||
└── docs/ 开发文档
|
||||
@@ -62,13 +64,14 @@ SenSu-Alpha/
|
||||
|
||||
```
|
||||
http://0.0.0.0:4200/SenSu/
|
||||
├── /dashboard 仪表盘
|
||||
├── /pages/projects 项目管理 (添加/启动/Git部署) ← NEW
|
||||
├── /pages/proxy 反向代理管理 ← NEW
|
||||
├── /plugin/{name} 插件控制面板 ← NEW
|
||||
├── /console Web 终端
|
||||
├── /logs 实时日志
|
||||
└── /plugins 插件列表
|
||||
├── /dashboard 仪表盘 (WS 实时推送 CPU/内存/网速双线图)
|
||||
├── /pages/files 文件管理器 (全系统浏览/编辑/上传/右键菜单)
|
||||
├── /pages/projects 项目管理 (添加/启动/Git部署)
|
||||
├── /pages/proxy 反向代理管理
|
||||
├── /pages/plugins 插件管理 (启用/停用/重载)
|
||||
├── /pages/logs 实时日志 (WS 推送/500行上限/批量渲染)
|
||||
├── /pages/console Web 终端
|
||||
└── /plugin/{name} 插件控制面板
|
||||
```
|
||||
|
||||
## 🔌 插件开发
|
||||
|
||||
+57
-1
@@ -13,7 +13,7 @@ SenSu框架采用了**服务化、插件化、事件驱动**的设计理念:
|
||||
### 1.2 框架启动流程
|
||||
|
||||
```
|
||||
main.py → CatFramework.initialize() → 依次初始化12个核心服务
|
||||
main.py → SenSuFramework.initialize() → 依次初始化15+个核心服务
|
||||
```
|
||||
|
||||
**启动顺序**:
|
||||
@@ -425,3 +425,59 @@ PluginError (基础)
|
||||
### 9.5 PluginService 增强
|
||||
- 配置验证:加载时检查 `name`、`version` 必需字段
|
||||
- 状态追踪:`plugin_status` 字典跟踪每个插件的 `PluginStatus`
|
||||
|
||||
## 十、v0.6.0 新增:WebUI 重构 + 文件管理器
|
||||
|
||||
### 10.1 Web 面板路由 (services/web_panel/)
|
||||
|
||||
v0.6.0 将 Web 面板重构为模块化路由架构:
|
||||
|
||||
```
|
||||
services/web_panel/
|
||||
├── manager.py # WebPanelManager — 路由注册 + 静态挂载
|
||||
├── routes/
|
||||
│ ├── auth.py # 认证 API (login/logout/status)
|
||||
│ ├── status.py # 框架/系统状态 + WS 实时推送
|
||||
│ ├── plugins.py # 插件管理 API
|
||||
│ ├── commands.py # 命令执行 API
|
||||
│ ├── logs.py # 日志 WS 广播
|
||||
│ ├── projects.py # 项目引擎 API (run/stop/logs/stdin)
|
||||
│ ├── proxy.py # 反向代理 API
|
||||
│ ├── plugin_web.py # 插件 Web 页面动态路由
|
||||
│ └── files.py # 文件管理器 API (11 个端点) ← NEW
|
||||
└── utils/
|
||||
├── auth.py # panel_auth 装饰器
|
||||
└── system_info.py # 跨平台系统信息采集
|
||||
```
|
||||
|
||||
### 10.2 文件管理器 (v0.6.0)
|
||||
|
||||
- **后端**: `services/web_panel/routes/files.py` — 11 个 REST 端点
|
||||
- 列表/新建/删除/重命名/上传/下载/读写/文件信息
|
||||
- 全文件系统访问,`os.path.normpath` 防路径穿越
|
||||
- 跨平台: Windows 盘符枚举 + Linux `/` 根
|
||||
- 符号链接: `stat()` 跟踪 → `lstat()` fallback 处理损坏
|
||||
- **前端**: `pages/files.html` + `pages/files.js`
|
||||
- 面包屑导航 (每层级可点击) + 可编辑路径跳转
|
||||
- 双层面包屑 (逻辑路径 + 物理路径,符号链接目录)
|
||||
- 右键菜单 (下载/重命名/编辑/删除)
|
||||
- 文本编辑器 (全屏覆盖层)
|
||||
- 文件上传 (多文件, ≤50MB)
|
||||
- `..` 行返回上级
|
||||
- **插件接口**: Picker API (`/api/files/picker`)
|
||||
- 插件通过 `window.open` + `postMessage` 唤出选择器
|
||||
- 权限: `filemanager.picker` / `filemanager.access` / `filemanager.write`
|
||||
|
||||
### 10.3 WebSocket 实时推送
|
||||
|
||||
- `/api/system/ws` — 每 2s 推送系统 + 框架数据 (替代 HTTP 轮询)
|
||||
- `/api/logs/ws` — 日志广播,前端批量渲染 + 500 行上限防卡死
|
||||
- 仪表盘: DualLineChart 双线图 (下载实线/上传虚线),Y 轴零点偏移
|
||||
|
||||
### 10.4 MD3 主题系统
|
||||
|
||||
- CSS 变量完整 MD3 color tokens (Dark + Light 双主题)
|
||||
- `data-theme` 属性切换,localStorage 持久化
|
||||
- 按钮组合模式: `btn` + `btn-tonal`/`btn-outlined`/`btn-filled` + `btn-sm`
|
||||
- SVG 全局 `fill: currentColor` 自适应主题色
|
||||
- 动画: 波纹/卡片悬浮/页面淡入/状态脉冲/骨架屏
|
||||
|
||||
Reference in New Issue
Block a user