web 版 linux(终端 文件 脚本 进程)、数据库(mysql postgres)、redis(单机 哨兵 集群)、mongo 统一管理操作平台。web 版 linux、数据库、redis、mongo 统一管理操作平台。
开发语言与主要框架
• 前端:typescript、vue3、element-plus
• 后端:golang、gin、gorm
功能介绍
• linux:ssh 终端(终端操作记录回放),文件查看(可根据常见后缀名高亮显示关键词等)、修改、上传、下载、删除等,脚本管理执行,进程操作,运行状态查看等(可当做堡垒机使用)。
• dbms(目前支持 mysql、postgres):可视化数据增删改查,sql 语句提示,表信息、索引信息、建表语句查看,建表等(类似 mini 版 navicat)。
• redis(单机、哨兵、集群):增删改查 redis 数据,redis 基本信息查看,如版本,内存,cpu 等使用情况、集群信息节点查看。
• mongo:增删改查 mongo 文档数据,数据库、集合状态查看,新建删除集合等。支持 ssh tunnel 访问:linux 机器、数据库、redis、mongo 都支持 ssh 隧道访问操作。
• 系统管理:同时拥有完善的账号、角色、资源权限控制等,也可基于该项目进行二次开发作为系统后台系统。
开发背景
• 方便公司统一管理且更加安全高效地维护管理以及操作相关资源信息,开发测试人员可无需查阅文档或咨询前辈索要 ip 账号密码等资源信息
• 解决日常开发人员需要安装各种相应客户端的烦恼(可满足前端,测试等人员 100%不安装各类客户端如: xshell,navicat,redis desktop 等即可完成对应的资源数据操作。后端开发人员 80%的操作也可以不依赖以上各类客户端)
特点
• 基于 DDD(领域驱动设计)分层架构实现。
• 对前后端进行了大部分通用功能的封装,使用起来更加简洁,功能逻辑清晰,能快速上手学习开发。
• 项目使用的 Go 语言开发,使用更小的内存及资源运行更高效的应用,二进制文件部署,方便快捷。
• 日志记录一些重要操作步骤的出入参及操作人信息等。
部署
二进制部署
• https://gitee.com/objs/mayfly-go/releases 前往该地址下载对应版本安装包。
• 将对应的安装包上传至指定平台解押即可(解压后内容如下图所示),将 mayfly-go.sql 导入对应数据库,随后根据 readme 内容操作配置后执行 startup.sh 脚本即可启动运行,执行 shutdown.sh 停止运行。
docker 部署
• 拉取 mayfly-go 镜像,版本号可查看二进制发行版本[以下内容以 v1.4.0 演示]。https://gitee.com/objs/mayfly-go/releases
docker pull mayflygo/mayfly-go:v1.4.0
• 通过-v 挂载项目启动运行相关文件目录等
-
直接挂载容器工作目录(注:需要将 config.yml 复制到/usr/local/mayfly-go 文件夹下))
docker run -d --name mayfly-go -v /usr/local/mayfly-go:/mayfly -p 8888:8888 mayflygo/mayfly-go:v1.4.0
• 通过-e 容器环境变量设置启动依赖相关参数
docker run -d --name mayfly-go -p 8888:8888
-e MAYFLY_JWT_KEY=53445c86e8189b6c646ed7d0d319015144423e72
-e MAYFLY_AES_KEY=7bc5418eefd50402ef39107274891fbe
-e MAYFLY_DB_HOST=localhost:3306
-e MAYFLY_DB_USER=root
-e MAYFLY_DB_PASS=123456
-e MAYFLY_DB_NAME=mayfly-go
-v /usr/local/mayfly-go/mayfly-go.log:/mayfly/mayfly-go.log
-v /usr/local/mayfly-go/rec:/mayfly/rec mayflygo/mayfly-go:v1.4.0
docker-compose 部署
server:
docker-compose部署
model: release
port: 8888
cors: true
tls:
enable: false
key-file: ./default.key
cert-file: ./default.pem
# 机器终端操作回放文件存储路径
machine-rec-path: ./rec
jwt:
# jwt key,不设置默认使用随机字符串
key:
# 过期时间单位分钟
expire-time: 1440
# 资源密码 aes 加密 key
aes:
key: 1111111111111111
mysql:
host: localhost:3306
username: root
password: 111049
db-name: mayfly-go
config: charset=utf8&loc=Local&parseTime=true
max-idle-conns: 5
log:
# 日志等级, trace, debug, info, warn, error, fatal
level: info
file:
path: ./
name: mayfly-go.log
nginx 转发配置信息
upstream mayfly-go {
server 172.17.0.1:18888;
}
server {
keepalive_requests 120; #单连接请求上限次数。
listen 80; #监听端口
server_name xxx.net; #监听地址
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade; #需要配置支持 websocket
proxy_set_header Connection 'upgrade'; #需要配置支持 websocket
location / { #请求的 url 过滤,正则匹配,~为区分大小写,~*为不区分大小写。
proxy_pass http://mayfly-go; #请求转向 mayfly-go 定义的服务器列表
}
}
核心功能截图
操作日志记录
菜单&首页
机器操作 • 状态查看
终端 ssh
文件操作
进程操作
脚本操作
DBMS 操作
Redis 操作
Mongo 操作
传送门
开源协议:Apache 2.0
开源地址:https://github.com/may-fly/mayfly-go
回复【加群】加入开源技术交流群,干货很多!
-END-
原文始发于微信公众号(开源技术专栏):解放双手,轻松管理资源: Web版Linux、数据库、Redis和MongoDB全方位管理平台!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/135630.html