# 需求 从两个主线理解 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,内存和存储消耗情况