mayfly-go是一款基于Go语言开发的开源Web运维平台,支持Linux系统、MySQL/PostgreSQL数据库、Redis(单机/集群)及MongoDB的统一管理,旨在替代传统Xshell、Navicat等分散工具。以下从特点、部署和使用三方面详细介绍:
一、核心特点
-
多资源统一管理
- 支持Linux系统的SSH终端操作、文件管理(上传/下载/编辑)、进程监控、脚本执行,具备堡垒机功能。
- 提供MySQL/PostgreSQL的SQL编辑器、表结构查看、索引管理及可视化数据操作(类似Navicat)。
- 支持Redis集群状态监控、键值操作及MongoDB文档管理。
-
安全与权限控制
- 支持SSH隧道访问,保障内网资源安全。
- 提供RBAC权限模型,支持账号角色分配、项目环境隔离及操作日志审计。
-
轻量化与高效性
- 采用Go语言开发,内存占用低,单二进制文件部署,支持跨平台。
- 集成LSM-Tree存储引擎,适用于IoT、监控等高频写入场景(部分版本支持时序数据库功能)。
二、安装部署流程
环境要求
- 数据库:MySQL 5.7+(推荐8.0+)。
- 系统:Linux/Windows,需开放8888端口(默认Web端口)。
部署步骤
-
安装MySQL依赖
- 卸载系统自带MariaDB,安装MySQL RPM包并启动服务。
rpm -e --nodeps mariadb-libs && rpm -ivh MySQL-*.rpm systemctl start mysql -
初始化mayfly-go数据库
-
创建数据库
mayfly-go,导入项目提供的SQL文件(如
mayfly-go.sql)。
-
-
配置与启动服务
-
修改
config.yml:设置MySQL连接信息、服务端口等。
-
修改前端配置
static/config.js:将
localhost改为服务器IP。
-
赋予执行权限并启动:
chmod +x mayfly-go-linux && nohup ./mayfly-go-linux & -
-
防火墙设置(可选)
firewall-cmd --add-port=8888/tcp --permanent && firewall-cmd --reload
内网虚拟机部署:
#docker run -d --privileged=true -p 8088:80 --name nextcloud --restart=always -v /Users/xxx/www/nextcloud/html:/var/www/html -v /Users/xxx/www/nextcloud/apps:/var/www/html/custom_apps -v /Users/xxx/www/nextcloud/config:/var/www/html/config -v /Users/xxx/www/nextcloud/data:/var/www/html/data -v /Users/xxx/www/nextcloud/theme:/var/www/html/themes --link mysql8:mysql --link redis:redis nextcloud
docker run -d --name nextcloud --net=host nextcloud
三、使用方法
-
初始登录
-
访问
http://服务器IP:8888,使用默认账号
admin/admin123.(注意末尾有英文句号)。
-
-
核心功能操作
-
项目管理:创建项目并分配成员,按环境(开发/生产)隔离资源。
-
服务器管理:
- 添加Linux主机:填写SSH连接信息,支持密钥认证。
- 文件管理:通过Web界面上传/下载文件,支持高亮语法编辑。
-
数据库操作:
- MySQL/PostgreSQL:执行SQL语句、导出数据、查看执行计划。
- Redis:实时查看内存使用、集群节点状态,执行批量删除。
-
-
高级功能
- 脚本管理:预存常用Shell脚本,一键批量执行。
- 监控告警:查看服务器CPU/内存实时图表,设置阈值告警(需配置Prometheus集成)。
四、扩展与维护
-
一键脚本:官方提供自动化部署脚本,支持宝塔面板快速安装。
-
日志排查:查看
nohup.out日志定位启动问题,常见错误为MySQL连接配置错误。
-
二次开发:基于DDD分层架构,可扩展API或定制前端页面。
通过上述功能,mayfly-go显著降低了多平台工具切换成本,尤其适合中小团队及需严格审计的企业环境。完整文档可参考。