docs: 创建文档目录 + 更新LICENSE + 规范项目文档

- 创建 docs/ 文档目录,包含快速开始、架构说明、插件列表、插件开发、API参考、贡献指南
- 更新 LICENSE 完整 Apache 2.0 模板,添加作者 yongwanxing
- README 许可证引用更新为 Copyright 2026 Falck, yongwanxing
This commit is contained in:
Falck
2026-05-03 09:44:43 +08:00
parent 6460b28060
commit ba58b3939a
8 changed files with 510 additions and 216 deletions

View 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")
```

View 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 认证密钥(为空时禁用认证) |