事情的起因大概在 22 年 9 月,脑子里突然冒出来一股强烈的开发一款独立软件的念头,于是开始了这段独立开发之路,起初我只是想做关于数据库方面的功能,后面实现 MySQL SSH 隧道功能时,想到一些自己使用其他 SSH 或 SFTP 工具存在的一些痛点,于是便开了一个新坑:把 SSH/SFTP 功能也集成起来,数据库目前暂时只支持 MySQL 和 MariaDB ,预计在第三季度将 PostgreSQL 、SQLite 、Clickhouse 也集成进来,数据库方面集成优先级是 是否开源>流行度,后续可能还会接入 Redis 、服务器 Docker 管理。
从 22 年 9 月开始,我一直在利用业余时间开发这款软件(这可能是我坚持时间以及付出精力最多的一个项目了哈哈),中途项目经过了多轮重构(比如说从 Vue2 升级 Vue3 )、性能优化、以及一些基础设施的搭建(插件化、热更新、插件发布持续集成等等),再加上我个人对自己软件有一种完美主义者的心态,页面不好看,交互不友好,页面卡顿,内存占用过大,内存泄漏,Code review 都可能引发我的调整或重构,再加上作为一个程序员对推广方面确实比较排斥,所以耗时 1 年半迟迟没有正式发布并开始推广,这个帖子就是本软件的第一个推广哈哈。
HexHub 目前应该已经是一个比较可用的状态了,因为我已经在两个月前将 SSH 和 MySQL GUI 切换到 HexHub 了,详细的功能说明我就不写,简单放几张页面截图和功能描述,欢迎大家体验,使用过程中有觉得不好地方一定记得留言我尽力解决。
首页导航页
![]()
暗色主题
![]()
数据库表列表页面:会显示表的一些摘要信息,表列表目前有两个视图类型,当表数量大于 50 时会自动切换成网格模式,能够充分利用空间显示更多的表。然后右边有个空间会实时显示当前数据库的一些指标
![]()
表结构编辑:布局比较类似 Navicat ,不过多了一些小细节,比如说新增/编辑着色、拖拽排序、新增字段根据名称推断类型等等
![]()
SQL 查询:基于 CodeMirror 魔改的,自动完成智能程度我认为 DataGrip > HexHub > DBeaver > Navicat
![]()
表数据编辑:自研的数据表格,做了相当多的优化,实现了新增/编辑作色,撤销、表格批量粘贴、多行编辑、内联编辑、不限制行数,百万甚至千万数据同屏依旧丝滑,几乎可以像 Excel 一样轻松编辑数据,不方便下载的同学可以访问官网有预览 Demo 。
SSH/SFTP:页面同时包含终端、本地目录、远程目录,远程目录路径能够跟随终端路径发生变化,支持拖拉拽复制/粘贴文件,权限控制等等,使用起来感觉还是相当不错的。
![]()
文件传输:支持 SFTP 、ZMODEM 、SCP 三种文件传输协议,SFTP 使用了并发上传技术、ZMODEM 协议我自己用 Golang 实现了一个(不得不说这个古老的非标准协议要做稳定真的是相当费劲),很大程度解决了很多其他工具会遇到的传输不稳定传输速度慢的问题。
![]()
实时面板:支持网速、CPU 、内存、进程列表、Docker 容器列表、磁盘挂载列表等信息。
![]()
技术栈:Golang TypeScript Vue3 C++ CEF
官网:www.hexhub.cn
最后奉上 5 折折扣码:v2ex, 当然免费版已经足够日常使用,诸位可按需购买。
1 luckyv2 2024-05-06 09:39:58 +08:00 免费版本的会话太少了 如果是 5 个左右差不多 |
2 follow 2024-05-06 09:43:38 +08:00 应该对初期尝鲜用户,来一波终身 id , |
5 follow 2024-05-06 09:56:02 +08:00 默认安装到 C:\Program Files\HexHub 目录下,打开程序后,是空白,https://imgur.com/a/qnmk6Ui |
![]() | 6 k9982874 2024-05-06 10:00:31 +08:00 我想问问这些把密钥,甚至生产环境密钥放第三方平台托管的运维就真一点不怕火葬场么? |
8 WayneXxx OP PRO @k9982874 所有资产信息都是使用非对称加密储存到服务器的,私钥都存放在本地(我绕了很多圈来保证服务器无法逆向出明文,因为这些数据对我来说其实也是负担),实在不放心可以使用免费版,免费版不会保存数据到服务器 |
9 leeechsh 2024-05-06 10:11:22 +08:00 UI 交互不错,给 OP 点赞,似乎还不支持 Terminal 自定义字体大小? |
![]() | 11 yangg 2024-05-06 10:26:45 +08:00 Mac Arm 64 打开空白,而且提示 damaged ,这个常见问题下载页也可以引导一下解决方案 |
12 jiurenmeng 2024-05-06 10:30:46 +08:00 建议来个终身给尝新用户 |
15 xiaonian233 2024-05-06 10:47:19 +08:00 会员注册为啥,输入完密码为啥下一步按钮一直是灰色啊,也没有提示 |
16 BigBai 2024-05-06 10:50:02 +08:00 体验了一下,很好用,想注册但是下一步按钮不能点击 |
17 WayneXxx OP PRO |
18 xiaonian233 2024-05-06 10:55:28 +08:00 @xiwh 密码已经有数字+大小写+特殊字符了,复杂度应该是够了 |
20 WayneXxx OP PRO @xiaonian233 #18 目前密码的验证规则是大于 10 位,必须存在数字 大小写,您看下呢 |
21 F7TsdQL45E0jmoiG 2024-05-06 10:59:25 +08:00 要不要支持一下 Oracle ? |
22 xiaonian233 2024-05-06 10:59:35 +08:00 @xiwh 有点奇怪了,注册成功然后登录的时候密码弹错误。我又转去注册页面,密码是正确的。找回密码提示邮箱不存在 |
23 BigBai 2024-05-06 11:00:08 +08:00 您好,请问我想连接 SSH,同时连接数据库应该如何操作,好像只有一个操作窗口 |
![]() | 24 xiaosheng 2024-05-06 11:01:51 +08:00 提几个建议哈,刚刚注册并领取了一个 1 年会员,感谢 OP ,然后注册过程中有几个小问题 1. 注册时密码复杂度要求不符时并未在表单中体现,点下一步点不了猜测是这个问题,然后重复操作才可 2. 注册成功后点击登录,无法登陆,显示用户名和密码不符,感觉有问题所以点击找回密码,去邮箱找回密码时才发现有确认注册的邮件(这一步很奇怪。。) ,个人建议可以先弹窗提示 3. 左侧选择 SSH 会话和 Mysql 列表的筛选栏,建议可让用户自行选择时候折叠,第一次用的时候就很懵 |
25 WayneXxx OP PRO @BigBai #23 首页选择资产右键可以新窗口打开,或者每个窗口顶部 登录/个人信息 按钮左边有一个按钮可以开新窗口 |
![]() | 26 xiaosheng 2024-05-06 11:05:58 +08:00 @xiaonian233 看邮箱,有个确认注册的邮件需要点一下。。。这个注册逻辑有点子小问题的 |
![]() | 30 caola 2024-05-06 11:09:31 +08:00 刚测试 mariadb 就报 :Error 1054:Unknown column 'sta.EXPRESSION' in 'field list' |
32 lizeze 2024-05-06 11:12:02 +08:00 插件 db-mysql 启动失败,原因:Network Error |
![]() | 33 john5 2024-05-06 11:13:21 +08:00 能打包成 webui 么?更方便 |
![]() | 35 SingeeKing PRO 似乎首次登录时不会发送验证码,必须要等待 60s 重发才会发 |
36 BigBai 2024-05-06 11:16:53 +08:00 有点尴尬了,还是不会用,窗口 1 在连接 SSH 的情况下,窗口 2 好像只能连接 SSH,我想窗口 2 使用图形化界面连接数据库 https://imgur.com/undefined |
37 lizeze 2024-05-06 11:19:52 +08:00 @xiwh #34 安装成功了,打开 mysql 数据表就出现这个 [Imgur]( https://imgur.com/yyE8HrK) |
38 WayneXxx OP PRO @d460686680 主要是数据库, SSH 等连接必须依赖原生环境,不过后续可以考虑出一个 Docker 私有化部署方案 |
40 WayneXxx OP PRO @SingeeKing 收到,晚上回去就改了,感谢您的支持 |
44 linauror 2024-05-06 11:36:13 +08:00 UI 不错,这个是基于 electron 的吗 |
![]() | 45 9dP06m83vIV00l72 2024-05-06 11:36:39 +08:00 袋鼠数据库工具 欢迎队友入坑 https://www.datatable.online/zh/ |
46 WayneXxx OP PRO @linauror 不算是,因为我觉得 electron 太重了,是基于 CEF 开发的,不过都是 chromium 套壳哈哈 |
49 blessingcr 2024-05-06 11:42:48 +08:00 纳闷,注册的时候没有提示密码要求只是标红 先注册再登录,中间注册的时候的发多了一次验证码以后,登录竟然就提示过于频繁 到现在还是提示我过于频繁,也没有告诉我多少分钟以后可以重试 |
50 WayneXxx OP PRO @blessingcr 尴尬,这块确实没做好,因为怕被刷,各方面限制做得比较狠,限制我已经解除了 |
![]() | 51 itart 2024-05-06 11:47:28 +08:00 windows 版本,来回拖动窗口后,窗口会变小 |
![]() | 53 hayhong123 2024-05-06 11:48:30 +08:00 支持一下~ |
![]() | 55 itart 2024-05-06 11:53:13 +08:00 |
![]() | 58 BeijingBaby 2024-05-06 11:59:27 +08:00 ui 不知道是什么字体,感觉有点怪怪的,不够圆润的感觉。 |
59 yanghanlin 2024-05-06 12:06:12 +08:00 插件:remote-control 启动失败,原因:Network Error 插件:db-mysql 启动失败,原因:Network Error |
![]() | 60 9dP06m83vIV00l72 2024-05-06 12:09:19 +08:00 你支持了 ZMODEN ,那解决一下跨内、外网的部署问题: 内外网不允许直连,需要外网发起传输文件需求,然后开发端接收消息并传送文件; 这个需要 ZMODEN 支持。 |
![]() | 61 changdy 2024-05-06 12:24:14 +08:00 建议弃坑... sftp 有 winscp shell 下有 xshell 数据库管理工具 偏向于开发的有 datagrip 偏向于管理的有 navicat ,还有 dbeaver . redis 下也有一个非常好用的客户端软件.. 你要想清楚你的优点是什么....(尝试劝人回头... |
62 lerosua 2024-05-06 12:57:37 +08:00 耐得住寂寞与各种挣扎,强~ |
64 carbon 2024-05-06 13:45:31 +08:00 v2ex 激活码已经用完了,大家还是非常热情的呢 |
65 carbon 2024-05-06 13:47:56 +08:00 点击“用户协议”和“隐私政策”,显示出来的都是“隐私政策”,不知道是不是 bug 还是尚未完善。 |
66 carbon 2024-05-06 13:57:35 +08:00 点击 shell 左侧标签,显示“启动失败,是否重新安装”,插件 remote-control 启动失败,原因 network error. 点击确定后进入的页面先是提示重新安装失败...卸载失败原因 network error ,然后转圈圈。返回主页面不知道如何处理,才发现点击 hexhub 图标即可返回主页面,这里如果有提示就好了。另外网络是通的呢,不知道啥原因提示网络不通。 感觉要再用用看看然后一起发,免得占太多回帖 |
67 zsh2517 2024-05-06 14:02:59 +08:00 官网页面 BUG 好像有点多...官网下载都没下载成,价格也显示不出来... 不太方便截图,控制台能看到的报错们大概如下 GET https://hexhub.cn/data-table-sample 404 (Not Found) Access to fetch at 'https://api.hexhub.cn/client/plugin/master-latest-version-list' from origin 'https://www.hexhub.cn' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'https://hexhub.cn' that is not equal to the supplied origin. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. BoJyf_Ru.js:1 GET https://api.hexhub.cn/client/plugin/master-latest-version-list net::ERR_FAILED 200 (OK) Blocked autofocusing on a <div> element in a cross-origin subframe. |
68 zsh2517 2024-05-06 14:04:45 +08:00 @zsh2517 抱歉,好像是我的问题。有个浏览器插件 Allow CORS 忘了关了(之前遇到过,虽然不知道为啥反而会导致 CORS ) |
69 carbon 2024-05-06 14:06:27 +08:00 @carbon #66 mysql 页面如果尝试添加服务器的话也会出现网络错误无法启动 db-mysql 的提示,ssh 和数据库都提示无网络。但是注册账号登录账号都正常,尝试下单也能显示收款二维码。 上两个网络错误:关闭程序,重启后正常了,可顺利安装插件。 开始菜单中没有程序连接,win10 系统。 |
![]() | 70 angenin 2024-05-06 14:27:36 +08:00 如果能自己新增标签页,新标签页能选择链接 SSH 还是 MySQL 就最好了(例如首页显示资源和连接)。目前选了 SSH 或者 MySQL 后,就不能切换到另一种。另外连接后也无法返回到首页,必须关闭软件重新打开。 |
71 BigBai 2024-05-06 14:34:49 +08:00 1. 官网下载按钮选择 Windows-arm64 版本下载的是 Mac-arm64 版本的安装包,好像是页面初始化显示问题,点了几次就不显示 windows-arm64 版本了 2. 数据库导出报错 ```shell 开始导出:sys_user sql: expected 18 destination arguments in Scan, not 0 sql: expected 18 destination arguments in Scan, not 0 sql: expected 18 destination arguments in Scan, not 0 执行结束 执行失败:Failed to execute 'showSaveFilePicker' on 'Window': Failed to create or truncate file ``` |
![]() | 73 qbmiller 2024-05-06 15:05:17 +08:00 拿什么开发的 ,3 端客户端? |
74 SuperXRay 2024-05-06 15:26:46 +08:00 "Hexhub.app"已损坏,无法打开,选的 Mac ARM 版本,电脑是 m1 芯片 |
75 xurvs 2024-05-06 15:35:47 +08:00 @SuperXRay sudo xattr -rd com.apple.quarantine /Applications/HexHub.app |
![]() | 76 thinkwei2012 2024-05-06 15:42:29 +08:00 连接数据库,将隧道超时 5 改为 30 就 提示:连接已断开, 原因:json: cannot unmarshal string into Go struct field ConnConf.timeout of type uint16 |
78 tianzx PRO 好像没有买断版是吧? |
![]() | 79 ktqFDx9m2Bvfq3y4 2024-05-06 17:24:11 +08:00 via iPhone @xiwh #8 正好之前我也想过数据隐私问题,我的方案是我压根儿不访问任何非用户指定的远程资源。用户的数据我使用用户自己的密码加密保存到网盘同步。这样压根儿跟我没一毛钱关系。 |
80 lovegnep 2024-05-06 19:11:56 +08:00 不错,已经下载在用 |
![]() | 81 Dean 2024-05-06 19:46:58 +08:00 网站首页选择的 Mac arm64 在 safari chrome 点击下载没有任何反应 |
82 wangwei216 2024-05-06 19:49:45 +08:00 我一个 5 年后端开发,注册了,用了一下,没用明白,果断卸载,浪费时间,有这时间,我命令行都敲几遍了 |
83 WayneXxx OP PRO 新版本已发布: 1.调整了大家都在吐槽的注册页面 2.顶部栏增加了回主页的按钮,防止新用户不知道点 logo 可以回主页 3.修复了 mariadb 10.10+兼容性问题 |
85 WayneXxx OP PRO @thinkwei2012 修正了,感谢支持 |
88 WayneXxx OP PRO @qbmiller 客户端语言主要是 Golang 和 部分 C++,页面还是是 Web 页面,使用 CEF 也就是 Chromium 驱动,但不是 Electron |
89 WayneXxx OP PRO @BigBai #71 方便把这个表的 ddl 和 dml 脱敏后发给我吗,我这边复现不出来,万分感谢 eGl3ZWloYWkxMjNAZ21haWwuY29t |
90 WayneXxx OP PRO @Chad0000 这一块我也有类似想法,不过我的计划是使用 Git 仓库来实现配置保存和读取,后期有时间可能会推迟一款这样的插件 |
95 WayneXxx OP PRO @wangwei216 您使用过程中遇到那些问题呢,是注册流程方面的吗,方便展开讲一下吗 |
96 CL007 2024-05-06 21:12:37 +08:00 很不错,要是能自定义快捷键,就更好了 |
![]() | 97 zeusho871 2024-05-07 02:59:51 +08:00 不整个永久版本或者终身更新的嘛 目前比较需要的是 ssh mysql 操作系统 macos/windows 有安卓肯定更好 价格都好说 有肯定下单~~ |
98 linyongqianglal 2024-05-07 06:19:00 +08:00 @xiwh 为什么不直接支持 webdav 呢,这样省事儿多了也减轻了运营成本 |
99 linyongqianglal 2024-05-07 06:21:23 +08:00 数据库功能对比 dbeaver 有什么优势吗 |