mayfly-go:web 版 linux、数据库等管理平台

发布于:2025-09-03 ⋅ 阅读:(18) ⋅ 点赞:(0)

mayfly-go是web 版 linux(终端[终端回放] 文件 脚本 进程 计划任务)、数据库(mysql postgres oracle sqlserver 达梦 高斯 sqlite)、redis(单机 哨兵 集群)、mongo 等集工单流程审批于一体的统一管理操作平台

部署

具体部署见:部署 · 语雀

安装包部署

Ubuntu的apt包里没有,所以要手工下载安装。

前往下载地址下载对应版本的安装包:mayfly-go 发行版 - Gitee.com

解压,然后执行startup.sh即可:

wget https://gitee.com/dromara/mayfly-go/releases/download/v1.7.4/mayfly-go-linux-amd64.zip
unzip mayfly-go-linux-amd64.zip 
cd mayfly-go-linux-amd64/
# 修改配置文件
cp config.yml.example config.yml
# 启动mayfly-go
sh startup.sh 
# 停止mayfly-go
sh shutdown.sh 

现在的新版本直接就有config.yml文件了,不用再执行cp config.yml.example config.yml

数据库mysql需要配置一下,或者不用mysql,直接使用sqlite 。编辑config.yml文件:

# 若存在mysql配置,优先使用mysql
#mysql:
# host: mysql:3306
# username: root
# password: 111049
# db-name: mayfly-go
# config: charset=utf8&loc=Local&parseTime=true
# max-idle-conns: 5
sqlite:
  path: ./mayfly-go.sqlite
  max-idle-conns: 5

使用docker部署

docker pull ccr.ccs.tencentyun.com/mayfly/mayfly-go:v1.7.4

docker-compose部署

执行

docker-compose up 

使用

启动后系统会起来18888端口服务,直接登录18888端口即可。若有报错,比如mysql连不上等,需要排查问题。

配置端口转发

配置nginx端口转发(不需要)

服务启动后,只绑定了本地端口,所以网络上的其它及其是无法连上的(这里理解错误,其实是全网侦听的)。这时候需要配置端口转发(其实不需要)。这里以nginx配置为例:

 

upstream mayfly-go {   
    server [2409:8a3c:40c0:5b08:a00:27ff:fee8:e484]: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 定义的服务器列表    
    } 
}

配置vagrant端口转发

因为采用的是vagrant配置VirtualBox虚拟机,所以可以在vagrant的配置里,设置端口转发

  config.vm.network "forwarded_port", guest: 18888, host: 18888,
    auto_correct: true

登录

用户名是admin

口令是admin123.

费了好大劲才登上来:

但是没找到啥能配置或管理的地方,也许是因为这台机器太新了,没啥可管理的。

总结:使用感受

mayfly-go的目的是减轻管理员的工作量,提高工作效率。整个文档相对来说,比较详细。但是一些配置细节需要有相关经验才行。

反正我是没找到那些常规配置的地方.....

调试

执行报错mysql连接失败

024-03-05 12:40:31.330 [ERROR] [mayfly-go/pkg/starter.initMysql (gorm.go:43)] :
 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]
panic: 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]

因为测试的机器没有开3306端口,而是采用进行通信的方法,所以先去掉config.yml里面的mysql配置,直接使用sqlite测试。

远程无法连接18888端口

发现服务只起了ipv6的18888端口,没有起ipv4的。但是奇怪的是本机是可以连上的,当然连上之后可以看到是跟本地的ipv4地址的18888端口通信的。真奇怪

原来起了ipv6的,就有ipv4的。跟下面问题一样

看到只有ipv6端口侦听

tcp6       0      0 :::18888                :::*                    LISTEN 

原来有这个ipv6的,ipv4端口也侦听的

没有密码登不上去

后来在issue里面找到,用户名admin,密码admin123. 注意是9个字母,最后一个字母是"."

名词解释:Redis

Redis是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

连mysql报错[error] failed to initialize database, got error dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving

[error] failed to initialize database, got error dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving
2025-09-02 04:14:20.747 [ERROR] [mayfly-go/pkg/starter.initMysql (gorm.go:43)] : 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]
panic: 连接mysql失败! [dial tcp: lookup mysql on 127.0.0.53:53: server misbehaving]

写域名解析在/etc/hosts文件中:

# add for mysql 
127.0.0.1 mysql

搞定

报错permission denied while trying to connect to the Docker daemon socket

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%!F(MISSING)var%!F(MISSING)run%!F(MISSING)docker.sock/v1.51/info": dial unix /var/run/docker.sock: connect: permission denied

这个错误表明当前用户没有权限访问Docker守护进程的Unix套接字文件(/var/run/docker.sock)

估计是因为没开docker服务。