V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xiwh
V2EX  ›  分享创造

开发时长一年半,新一代数据库、SSH/SFTP 跨平台桌面 GUI 工具

  •  6
     
  •   xiwh · 27 天前 · 8617 次点击

    开发时长一年半,新一代数据库、SSH/SFTP 跨平台桌面 GUI 工具

    事情的起因大概在 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 容器列表、磁盘挂载列表等信息。

    功能表

    基础

    • Windows/Mac/Linux 支持
    • 亮色/暗色双主题
    • 云端资产同步
    • 资产导入导出
    • 多窗口
    • 插件化(按需下载)

    数据库

    • MySQL 支持
    • MariaDB 支持
    • (X)PostgreSQL 支持
    • (X)SQLite 支持
    • (X)Clickhouse 支持
    • SQL 查询编辑器
    • 数据内联编辑
    • 表结构编辑器
    • 视图
    • SSH 隧道
    • 表结构同步
    • 表数据迁移
    • 实时面板
    • 数据字典导出
    • SQL 导入导出
    • XLSX 导入导出

    SSH/SFTP

    • SSH 终端
    • SFTP
    • 跳板机
    • SOCKS5 、HTTP/HTTPS 代理
    • 密码、秘钥、交互式验证登录
    • ZMODEM 协议
    • SCP 协议
    • SFTP 路径联动
    • 本地文件目录视图
    • 远程文件目录视图
    • 文件传输后台任务
    • 文件拖拽上传/下载
    • 文件直接编辑
    • 批量修改文件/文件夹权限

    技术栈:Golang TypeScript Vue3 C++ CEF
    官网:www.hexhub.cn

    最后奉上 5 折折扣码:v2ex, 当然免费版已经足够日常使用,诸位可按需购买。

    第 1 条附言  ·  27 天前
    由于个人失误,导致很多朋友打开页面空白无法使用,特此赠送 1 年会员表达歉意,仅限 25 名,注册账号后输入激活码:v2ex 进行激活
    160 条回复    2024-05-21 20:50:50 +08:00
    1  2  
    lizeze
        101
    lizeze  
       26 天前
    @xiwh #57 [img][/img] [img][/img]

    刚刚打开就这样了。另外是不是只能在有公网的环境下使用,我这里内网是不是没法用
    rolinbutterfly2
        102
    rolinbutterfly2  
       26 天前
    能不能单独支持 sftp ,不支持 ssh 的登录配置。我有设置为服务器只允许 sftp 方式登录,上面就无法执行了。最好可以定一个便宜的永久版,增加支持多个窗口就行。😀
    lizeze
        103
    lizeze  
       26 天前
    @xiwh #57 是还没增加更新提醒么?
    这个地方只能字符串换行,sql 不能换行,是 bug 还是就这么设计的呢
    xiwh
        104
    xiwh  
    OP
       26 天前
    @lizeze #101 启动超时可能是电脑性能或杀毒软件扫描引起的超时,后续我把超时判定时间改长一点重试一下应该就好了,只要首次在公网里完成了相关插件的下载,后续在内网里也能正常使用
    xiwh
        105
    xiwh  
    OP
       26 天前
    @lizeze #103 这块是这样设计的,因为考虑条件应该不会太复杂(更加复杂的语句应该是 SQL 查询功能),然后把回车快捷键用作了触发表刷新动作了
    xiwh
        106
    xiwh  
    OP
       26 天前
    lizeze
        107
    lizeze  
       26 天前
    @xiwh #105 很强
    xiwh
        108
    xiwh  
    OP
       26 天前
    @linyongqianglal #99 页面设计风格、交互、每个功能的细节(比如表结构编辑、数据编辑、数据字典、XLSX 、SQL 导入导出、数据/结构同步)我觉得都领先于 dbeaver ,当然这是我的主观看法,唯一的缺点是支持的数据库现在还比较少,不过这块还在快速适配中,具体您可以体验一下
    VtoEXL
        109
    VtoEXL  
       26 天前
    很多弹框,直觉按 Esc 键是关闭,但是现在必须去点关闭,有点麻烦
    xiwh
        110
    xiwh  
    OP
       26 天前
    @VtoEXL 不妨说一下是什么弹窗呢,弹窗默认是支持 Esc 键关闭的,不过很多我觉得比较重要的弹窗可能关闭了 Esc 快捷键
    chanChristin
        111
    chanChristin  
       26 天前
    @changdy 你说的都是分散在不同工具中的,但是这个软件 all in one ,对于某些人来说单个的更省事。
    chanChristin
        112
    chanChristin  
       26 天前
    提个小需求,希望点击下载的时候可以根据 ua 自动判断要下载哪个版本,可以方便区分开 win 和 Mac
    xiwh
        113
    xiwh  
    OP
       26 天前
    @chanChristin #112 这个可以有
    chanChristin
        114
    chanChristin  
       26 天前
    @xiwh #39
    点击新窗口打开的窗口中左边的 logo 距离操作按钮过近,这个是必现的。
    还有就是这个逻辑的问题,希望新窗口能在主页上自己选择打开哪个,而不是默认当前的。
    还有就是 cmd+w 不能关闭窗口,Mac 下好像没有快捷键能关闭窗口,只能手动点击关闭或者 cmd+q 直接退出。
    xujiahai
        115
    xujiahai  
       26 天前
    ssh 下面的文件传输能不能设置成默认使用 SCP 协议传输,设置 Openwrt 的时候有很多老设备还不支持 sftp ,谢谢
    xiwh
        116
    xiwh  
    OP
       26 天前
    @chanChristin #114
    "点击新窗口打开的窗口中左边的 logo 距离操作按钮过近,这个是必现的", 这个应该是重绘红黄蓝按钮坐标失败导致的,这个很奇怪我在我老的 MBP2018 上似乎没问题,方便透露一下您的 Mac 型号和系统版本吗。
    另外两个建议也很不错,下个版本就支持上,然后快捷键的话就用每个平台标准的快捷键了,因为暂时不想做快捷键配置,我觉得那样看起来就太复杂了
    xiwh
        117
    xiwh  
    OP
       26 天前
    @xujiahai 这种方式可能不太标准,文件拖拽进终端就会使用 SCP 进行上传,或者使用 RZ/SZ 命令用 ZModem 协议进行传输,不知道这样能否解决您的问题呢
    xiwh
        118
    xiwh  
    OP
       26 天前
    @xujiahai 然后顶部的设置按钮点开,也有 SCP 下载的输入框,可以输入路径进行下载
    chanChristin
        119
    chanChristin  
       26 天前
    @xiwh #116
    Mac 型号是 14 寸 mbp M1 Pro 的,版本是 14.4.1 (23E224)
    cmd + w 不是 Mac 上的标准快捷键吗?基本上所有的 App 都支持这个快捷键,这我还真不知道。
    xiwh
        120
    xiwh  
    OP
       26 天前
    @chanChristin #119 因为 HexHub 是跨平台的,不同平台快捷键支持不一样,可能原生的窗口有默认支持,不过 HexHub 是基于 CEF 开发的.. 请留下邮箱让我发一个激活码表达感谢
    chanChristin
        121
    chanChristin  
       26 天前
    @xiwh #120
    谢谢
    [email protected]
    刚才在注册的时候也碰到问题了,我分别使用 pm.me proton.me live.com 注册都无法收到验证码,最后找了个 outlook 的才可以,如果是不支持发送到这些邮箱可以做个提示。
    xiwh
        122
    xiwh  
    OP
       26 天前
    @chanChristin #121 这块确实不好处理,邮件 API 日志显示的已到达,然后用白名单验证域名又容易一刀切,黑名单永远都拦不完,只能建议切换到主流邮箱了..
    xujiahai
        123
    xujiahai  
       26 天前
    <blockquote class="imgur-embed-pub" lang="en" data-id="a/7tiQlYc" data-context="false" ><a href="//imgur.com/a/7tiQlYc"></a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>

    [img][/img]

    头一次用图床,见谅

    我这两个路由器都不能正常使用文件传输,不清楚原因,谢谢
    xiwh
        124
    xiwh  
    OP
       26 天前
    @xujiahai #123 应该是因为服务器不支持或未开启 SFTP 导致的,建议使用 SCP (上面设置按钮) 或者 rz/sz 命令传输文件
    xujiahai
        125
    xujiahai  
       26 天前


    我在 winscp 上都可以正常使用的
    xiwh
        126
    xiwh  
    OP
       26 天前
    @xujiahai #125 有试过 FileZilla 等这种专门 SFTP 软件能使用吗,WinSCP 好像有个兼容模式,没开启 SFTP 会通过 SCP 和命令模拟来兼容
    xujiahai
        127
    xujiahai  
       26 天前
    这个主机 FileZilla 链接正常,文件传输正常,使用 SFTP 协议,另外一个仅支持 SCP 协议的潘多拉主机 FileZilla 无法连接
    glaucus
        128
    glaucus  
       26 天前
    插件 db-mysql 启动失败,原因:Network Error
    xiwh
        129
    xiwh  
    OP
       26 天前
    @xujiahai #127 您这个 MyWifi 是连 SSH 都连不上吗,确认配置是对的吗,然后方便的话请发一下 ssh 服务器版本(通常执行 sshd -v 可获取)
    xiwh
        130
    xiwh  
    OP
       26 天前
    @glaucus 可能是 CDN 并发限制的原因,重试一下即可
    xiwh
        131
    xiwh  
    OP
       26 天前
    @glaucus 仅首次需要下载插件,下载完成后可离线使用
    xujiahai
        132
    xujiahai  
       26 天前
    @xiwh Dropbear v2022.82 测试连接成功,保存之后再双击连接就不行了
    xiwh
        133
    xiwh  
    OP
       26 天前
    @xujiahai #132 好的,Dropbear 这个 SSH Server 我还没测过,应该有兼容性问题,预计下一版修复
    joewp
        134
    joewp  
       26 天前
    本地数据库没有密码的话无法连接,密码框是必填项
    xiwh
        135
    xiwh  
    OP
       26 天前
    @joewp 可以把验证方式选择为不验证
    xiangbohua
        136
    xiangbohua  
       26 天前
    M1 Pro 处理器双击打开提示:damage ,我知道这东西应该可以通过 remove attr 的命令解决,但是能不能下载下来就不提示哦。
    xiwh
        137
    xiwh  
    OP
       26 天前
    @xiangbohua 报错的本质原因是没有每年花 799 购买 Apple 开发者账号进行签名,等我有钱了一定整一个签名😭
    privil
        138
    privil  
       26 天前
    可以考虑兼容一下 trzsz 协议,很流畅
    supersu
        139
    supersu  
       25 天前 via Android
    sftp 支持 sudo 提权么,我禁止了 root 登陆,如果支持的话就可以抛弃 winscp 了~
    xiwh
        140
    xiwh  
    OP
       25 天前
    这个有计划支持,不过当前版本还不支持
    xiwh
        141
    xiwh  
    OP
       25 天前
    @supersu 已经支持上了,sftp sudo 提权属于非标准实现,之前正好开了一个 go/sftp 的分支顺便就实现了,预计晚上发布
    qbmiller
        142
    qbmiller  
       25 天前
    大佬,go CEF 用哪个框架 。还是直接 cef 直接用。有类似的教程吗。 一直想学个 go 的 gui
    xiwh
        143
    xiwh  
    OP
       25 天前   ❤️ 1
    @qbmiller GUI 的话跟 Golang 这边没关系 Golang 只负责通过一套 RPC 协议为前端提供支持,GUI 直接用 C++调 CEF 套了一层壳然后启动时会启动一个 Golang 的后台进程
    joewp
        144
    joewp  
       25 天前
    连线上表编辑表结构出现这个错误
    xiwh
        145
    xiwh  
    OP
       25 天前
    @joewp #144 请执行 select version(),发送一下数据库版本呢
    joewp
        146
    joewp  
       25 天前
    @xiwh #145 5.5.62
    xiwh
        147
    xiwh  
    OP
       25 天前
    @joewp #146 好的下一版修复
    supersu
        148
    supersu  
       24 天前 via Android
    @xiwh 辛苦啦~
    BigBai
        149
    BigBai  
       24 天前
    请问,每天打开都要下载一次插件吗,还是说 OP 每天都在熬夜更新
    xiwh
        150
    xiwh  
    OP
       24 天前
    @BigBai 没有更新的话只需下载一次,首次下载插件后离线也可能使用,确实是因为每天都在更新哈哈
    Tukali
        151
    Tukali  
       24 天前
    来个限时终身啥的呗,肯定支持直接
    xiwh
        152
    xiwh  
    OP
       24 天前
    @Tukali 嗯您可以免费版先用着,很多我想做的功能还没做现在不太好定价,等下个大版本更新,就出一个永久版
    Psily1017
        153
    Psily1017  
       24 天前
    提个遇到的 bug 吧,windows10 环境下 移动软件,会自动一直缩小,重现率 100%
    xiwh
        154
    xiwh  
    OP
       24 天前
    方便在 cmd 执行 ver 命令将当前系统版本发送给我吗,我找个环境复现一下
    Tukali
        155
    Tukali  
       24 天前
    @xiwh 更新了记得邮件通知下,我一定支持
    xiwh
        156
    xiwh  
    OP
       24 天前
    @Tukali #155 谢谢,届时一定通知您
    garyvalue
        157
    garyvalue  
       13 天前
    确实 windows11 环境下 移动软件,会自动一直缩小
    xiwh
        158
    xiwh  
    OP
       13 天前
    @garyvalue 这个问题我一直没能复现出来,请问您的环境有什么特殊之处吗(多显示屏 or 高分辨率等等)
    garyvalue
        159
    garyvalue  
       12 天前
    @xiwh #158 4k 屏幕 其他好像没特殊的
    xiwh
        160
    xiwh  
    OP
       12 天前
    @garyvalue #159 已经解决了,是 CEF 的 BUG ,设置了屏幕缩放比例会触发,在官网下载新安装包就好了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2647 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 13:34 · PVG 21:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.