websoft9/docs/PRD.md
2023-03-21 12:06:44 +08:00

153 lines
No EOL
2.9 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 的需求:
* 应用生命周期管理:寻找、安装、发布、停止、卸载、升级等软件全生命周期。
* 基础设施运维管理:安全、存储、文件、容器、监控等系统管理
## 应用生命周期
### 业务需求
#### 寻找
用户可以通过两个入口寻找应用:
* 应用商店:采用一级分类的方式展现应用,并支持**筛选+搜索**的方式以便于用户检索
* Docker 镜像仓库:检索 Docker 镜像仓库,找到对应的应用
#### 安装
* 用户自主安装应用,后端按顺序依次启动目标应用
* 启动应用之前先进行资源约束判断,不符合条件的目标应用不予安装
* 与安装有关的状态:待安装、安装中、运行中、停止中、已停止
#### 发布
* 以域名或端口的方式,将运行中的应用发布出去,供外部用户访问。
* 自助设置 HTTPS上传或更新证书
#### 停止
将应用服务停止
#### 卸载
卸载应用并删除数据
#### 升级
升级应用,如果升级失败会自动回滚到升级之前的状态
#### 恢复
在已有的完整备份的基础,恢复应用。
可能存在两种情况:
* 覆盖现有应用
* 恢复成一个新的应用
#### 克隆
克隆一个已经存在的应用,命名为新应用
### 技术需求
#### 模板编排
应用的底层编排 100% 以 Docker Compose 语法作为编排语言
#### 多语言
* 前端支持i18n
* 后端接口支持英文
#### 用户管理
* 支持多个用户,用户角色分为普通用户和管理员用户
* 普通用户可以创建和管理自己的应用,不可以删除他人的应用
#### UI自适应
UI 自适应各种屏幕尺寸
#### 2FA
引入一种双重登录策略
#### 商店基础设置
* 商店 Logo 可自定义
* 语言、时区可选
* 绑定域名
* SMTP 信息填写
#### 通知
* SMTP 邮件通知
#### 商店更新
商店支持在线更新提示和在线更新
#### API
支持生成 API Tokens
#### CLI
基于 API 的 CLI
#### 仓库管理
默认以 DockerHub 作为镜像仓库,支持自建仓库并同步 DockerHub 镜像
#### 安装程序
一键自动化安装程序,类似:
```
curl https://websoft9.github.io/install.sh | bash
```
主要步骤包括:
1. Check硬件、操作系统、cpu架构
2. 安装依赖包
3. 安装docker
4. 下载各源码包
5. 启动个源码对应服务
## 基础设施运维
### SSH 终端
Web-Based SSH 终端
### 文件管理器
Web-Based 文件管理器
### 存储管理
* 支持接入第三方对象存储
### 备份
备份完整的应用数据:
* 自定义备份时间区间
* 自动备份可取消
* 备份可以管理:删除、下载等
### 容器管理
可视化的容器管理,包括:拉镜像、创建/删除/停止容器、SSH进入容器、向容器上传文件等
### 系统监控
* 监控容器的 CPU内存和存储消耗情况
* 监控系统的 CPU内存和存储消耗情况