docs: 创建文档目录 + 更新LICENSE + 规范项目文档
- 创建 docs/ 文档目录,包含快速开始、架构说明、插件列表、插件开发、API参考、贡献指南 - 更新 LICENSE 完整 Apache 2.0 模板,添加作者 yongwanxing - README 许可证引用更新为 Copyright 2026 Falck, yongwanxing
This commit is contained in:
74
docs/guide/architecture.md
Normal file
74
docs/guide/architecture.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 架构说明
|
||||
|
||||
## 设计原则
|
||||
|
||||
NebulaShell 遵循「最小化核心」设计哲学:
|
||||
|
||||
- 核心框架(`oss/`)只负责加载 `plugin-loader` 这一个插件
|
||||
- 所有功能皆由插件实现,包括 HTTP 服务、WebSocket、WebUI 等
|
||||
- 插件加载器负责发现、加载、管理所有其他插件
|
||||
|
||||
## 架构分层
|
||||
|
||||
```
|
||||
用户/客户端
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────┐
|
||||
│ HTTP API / WebSocket │ ← 由 http-api / ws-api 插件提供
|
||||
└─────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────┐
|
||||
│ Plugin Loader │ ← 由 oss/plugin/manager.py 加载
|
||||
│ • 插件发现与加载 │
|
||||
│ • 依赖解析与注入 │
|
||||
│ • 生命周期管理 │
|
||||
└─────────────────────────────┘
|
||||
│
|
||||
├── 核心插件
|
||||
│ ├── plugin-bridge 插件间通信
|
||||
│ ├── lifecycle 生命周期
|
||||
│ ├── plugin-storage 持久化存储
|
||||
│ └── i18n 国际化
|
||||
│
|
||||
├── 网络服务
|
||||
│ ├── http-api RESTful API
|
||||
│ ├── ws-api WebSocket
|
||||
│ └── http-tcp TCP 适配
|
||||
│
|
||||
├── 管理工具
|
||||
│ ├── webui 管理控制台
|
||||
│ ├── dashboard 系统仪表盘
|
||||
│ ├── log-terminal 日志终端
|
||||
│ └── pkg-manager 包管理
|
||||
│
|
||||
└── 扩展
|
||||
├── firewall 防火墙
|
||||
├── ftp-server 文件服务
|
||||
├── frp-proxy 内网穿透
|
||||
└── ...
|
||||
```
|
||||
|
||||
## 插件加载流程
|
||||
|
||||
1. `oss/plugin/manager.py` 通过 `PluginLoader` 加载 `plugin-loader` 插件
|
||||
2. `plugin-loader` 扫描 `store/` 目录下所有插件的 `manifest.json`
|
||||
3. 按 `load_priority` 排序,优先加载标记为 `"first"` 的插件(如 `plugin-bridge`)
|
||||
4. 加载所有插件,解析 `dependencies` 字段并注入依赖
|
||||
5. 按依赖顺序调用每个插件的 `init()` → `start()`
|
||||
|
||||
## 插件间通信
|
||||
|
||||
插件通过 `plugin-bridge` 提供的机制通信:
|
||||
|
||||
- **事件总线**:发布/订阅模式,解耦通信
|
||||
- **服务注册表**:RPC 式服务调用
|
||||
- **`use()` 函数**:直接获取已加载的插件实例
|
||||
|
||||
```python
|
||||
from store.NebulaShell.plugin_bridge.main import use
|
||||
|
||||
storage = use("plugin-storage")
|
||||
http_api = use("http-api")
|
||||
```
|
||||
34
docs/guide/getting-started.md
Normal file
34
docs/guide/getting-started.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# 快速开始
|
||||
|
||||
## 前置条件
|
||||
|
||||
- Python >= 3.10
|
||||
- Linux / macOS / WSL2
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Starlight-apk/NebulaShell.git
|
||||
cd NebulaShell
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## 启动
|
||||
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
启动后访问 http://localhost:8080 进入管理控制台。
|
||||
|
||||
## 配置
|
||||
|
||||
首次启动会自动生成 `oss.config.json`,位于项目根目录。主要配置项:
|
||||
|
||||
| 配置项 | 默认值 | 说明 |
|
||||
|--------|--------|------|
|
||||
| `HOST` | `127.0.0.1` | 监听地址 |
|
||||
| `HTTP_API_PORT` | `8080` | HTTP 服务端口 |
|
||||
| `STORE_DIR` | `store` | 插件存放目录 |
|
||||
| `DATA_DIR` | `data` | 数据存储目录 |
|
||||
| `API_KEY` | 空 | API 认证密钥(为空时禁用认证) |
|
||||
Reference in New Issue
Block a user