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