websoft9/docs/PRD.md
2023-03-20 16:37:04 +08:00

134 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求
从两个主线理解 StackHub 的需求:
* 应用生命周期管理:寻找、安装、发布、停止、卸载、升级等软件全生命周期。
* 基础设施运维管理:安全、存储、文件、容器、监控等系统管理
## 应用生命周期
### 业务需求
#### 寻找
一级分类+筛选+搜索的方式寻找已经模板化的应用
#### 安装
* 按顺序依次启动目标应用
* 启动应用之前先进行资源约束判断,不符合条件的目标应用
* 应用的状态有:待安装、安装中、安装失败、运行中/安装成功
#### 发布
以域名或端口的方式,将运行中的应用发布出去,供外部用户访问:
* 发布
* 停止发布
* 删除发布
#### 停止
将应用的服务停止
#### 卸载
卸载应用并删除数据
#### 升级
升级应用,如果升级失败会自动回滚到升级之前的状态
#### 恢复
在已有的完整备份的基础,恢复应用
#### 克隆
克隆一个已经存在的应用
### 技术需求
#### 模板编排
100% 以 Docker Compose 语法作为编排语言
#### 多语言
#### 用户管理
#### UI自适应
#### 2FA
#### 商店基础设置
#### 商店更新
#### API
#### CLI
#### 监控
#### 转发
#### 镜像仓库
默认以 DockerHub 作为镜像仓库,支持自建仓库并同步 DockerHub 镜像
#### 安装程序
一键自动化安装程序,类似:
```
curl https://websoft9.github.io/install.sh | bash
```
主要步骤包括:
1. Check硬件、操作系统、cpu架构
2. 安装依赖包
3. 安装docker
4. 下载各源码包
5. 启动个源码对应服务
## 基础设施运维
### SSH 终端
### 文件管理器
### 存储管理
### 容器管理
可视化的容器管理,包括:拉镜像、创建/删除/停止容器、SSH进入容器、向容器上传文件等
### DNS
### 系统监控
|
## 架构
### 微服务
存在的微服务以及选型:
* System
* MQ
* Monitor: NetData
* SSH Ternimal
* File Browser
* Storage
* User
* API gateway: Kong
* Web-Container
* Web-DB
* Proxy&DNS待定
* App&CLI开发
![image](https://user-images.githubusercontent.com/16741975/216497356-3913abd2-0b75-4619-8c40-512079e35f5b.png)
### 基础组件
技术选型如下:
* 架构JS UI + API Backend
* 后端Python, Docker, Docker-compose, FastAPI, Typer
* API生成与测试apipost/apifox
* 身份验证supertokens