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

2.4 KiB
Raw Blame History

需求

从两个主线理解 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

基础组件

技术选型如下:

  • 架构JS UI + API Backend
  • 后端Python, Docker, Docker-compose, FastAPI, Typer
  • API生成与测试apipost/apifox
  • 身份验证supertokens