# devops-super **Repository Path**: coolops/devops-super ## Basic Information - **Project Name**: devops-super - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-16 - **Last Updated**: 2024-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Devops Super ## 功能 本项目的定位目标是成为一个轻量、易使用、易部署、功能丰富的运维管理平台,已实现以下功能: - [x] 基础系统功能:用户管理、部门管理、角色管理、权限管理; - [x] 一套权限管理逻辑控制前后端路由、按钮级别权限; - [x] 堡垒机功能:主机管理、主机组管理; - [x] 支持密码、秘钥方式建立 SSH Web 终端(基于 WebSocket); - [x] 支持 Web 文件管理器(上传、下载、删除)管理主机文件系统(基于 WebSocket + SFTP); - [x] 支持终端会话记录持久化到硬盘、回放会话; - [x] 支持主机访问授权(主机所属主机组授权到角色或用户); - [x] 基于 Kubernetes 原生 Pod 的持续集成(CI); - [x] 秘钥管理; - [x] 构建环境管理; - [x] 流水线管理(编排); - [x] 运行流水线 & 构建流水线客户端镜像; - [x] 流水线运行历史展示; - [x] 获取流水线运行日志; - [x] 支持终止执行中的构建任务; - [x] 流水线参数化支持; - [x] 支持克隆流水线; - [x] 支持 Kaniko 构建上传镜像; ## 预览地址 [点我预览](http://ds-demo.zze.xyz) - 管理员:`admin`,密码:`devops.zze`; - 测试账号:`test`,密码:`devops.zze`; > 数据库每小时自动重置。 效果图: ![用户管理](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/user-manage.png) ![角色管理](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/role-manage.png) ![权限管理](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/permission-manage.png) ![部门管理](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/dept-manage.png) ![主机管理](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/host-manage.png) ![主机组授权](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/host-group-authorize.png) ![主机终端记录](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/host-terminal-session-history.png) ![全屏终端](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/terminal-single.png) ![终端文件管理器](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/terminal-file-manager.png) ![终端主机树](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/terminal-tree.png) ![流水线管理](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/pipeline-manage.png) ![流水线编排](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/pipeline-arrange.png) ![流水线日志](https://raw.githubusercontent.com/zze326/devops-super/main/resource/imgs/pipeline-log.png) ## 技术栈 - 语言:Golang、Typescript; - 后端:Go Frame、Casbin、Pongo2、Kubernetes Client Go、Go Git; - 前端:Vue3、Vite、Element-Plus、TypeScript、Pinia、Xterm 等; ## 项目运行 1、在 MySQL 中执行 `manifest/db/devops_super.sql` 创建好数据库以及初始化数据; 2、然后修改 `manifest/config/config.yaml` 中的数据库连接地址(`database.default.link`),格式如下: ```sql mysql :<用户名>:<密码>@tcp(<数据库地址>)/<库名>?loc=Local&parseTime=true -- 例:mysql:zze:zze.admin@tcp(127.0.0.1:3306)/devops_super?loc=Local&parseTime=true ``` 3、直接运行项目根目录的 `main.go` 就可以跑起来啦~ ## 前端项目 本仓库是后端项目,对应前端项目地址为:。 ## 快速部署 1、在 MySQL 中执行 `manifest/db/devops_super.sql` 创建好数据库以及初始化数据; 2、从 [releases](https://github.com/zze326/devops-super/releases) 获取到要部署的镜像版本,以 [v1.1](https://github.com/zze326/devops-super/releases/tag/v1.1) 为例:主程序 Docker 镜像为 `registry.cn-shenzhen.aliyuncs.com/zze/devops-super:202312151703`; 3、运行容器,看如下实例: ```bash docker run -d --name devops-super \ -v/opt/devops-super/host-sessions:/app/host-sessions \ -eSERVER_PORT=8001 \ -eDB_HOST=127.0.0.1 \ -eDB_PORT=3306 \ -eDB_NAME=devops_super \ -eDB_USER=zze \ -eDB_PWD=zze.admin \ -eJWT_SECRET=vIIEngfamdsaGZasdsasdasadkseadgF9fe \ --network host registry.cn-shenzhen.aliyuncs.com/zze/devops-super:202312151703 ``` > 容器的 `/app/host-sessions` 目录保存了主机终端会话记录信息,可以将它挂载出来以持久化保存。 > > 环境变量说明: > - `DB_HOST`:MySQL 主机地址; > - `DB_PORT`:MySQL 端口; > - `DB_NAME`:数据库名称; > - `DB_USER`:连接数据库使用的用户; > - `DB_PWD`:连接数据库的用户密码; > - `JWT_SECRET`:JWT 秘钥,随机生成即可; > - `SERVER_PORT`:服务监听端口; > > 参数说明(按需使用): > - `-d`:后台运行容器; > - `--name`:指定容器名称; > - `--network host`:容器共用宿主机网络空间; 4、容器运行成功后浏览器访问 8001 端口即可;