Files
MyGoNavi/README.zh-CN.md
Syngnat 823fd54ef0 📝 docs(readme): 替换透明背景品牌 Logo
- 中英文 README 统一引用仓库内品牌 Logo
- 使用带透明通道的 512px 图片移除底色
- 保持 GitHub 页面与仓库预览直接可用
2026-07-16 11:14:48 +08:00

16 KiB
Raw Blame History

GoNavi Logo

GoNavi

一套客户端,航行全部数据源 — 原生性能 · Agent 就绪 · 告别 Electron 膨胀。

基于 WailsGo+ React 的跨平台数据库工作台。 桌面优先MCP 原生,二进制约 10MB 量级。

Release Downloads Stars License

Go Wails React Build

语言English · 简体中文  ·  ⬇ 下载 · 快速开始 · 特性 · 🤖 MCP


为什么是 GoNavi

市面上大量数据库 GUI 仍是 Electron 壳体积大、启动慢、内存高。GoNavi 换了一条路:

常见 Electron 客户端 GoNavi
运行时 Chromium + Node Go + 系统 WebView
体积 动辄数百 MB 约 10MB 量级
启动 偏重 更快
内存 基线高 更轻
AI / Agent 外挂或缺失 MCP + 多模型一等公民
数据源 以 RDBMS 为主 SQL · 缓存 · 向量 · 消息 · 搜索 · 时序 · 国产库

MySQL、Postgres、Redis、Kafka、Milvus、OceanBase、ClickHouse… 一个工作台打通。
查询、编辑、审计、同步;把结构化上下文交给编码 Agent密码仍留在本机。


一眼看懂

┌──────────────────────────────────────────────────────────────────────┐
│  GoNavi 工作台                                                       │
│  ┌─────────────┐  ┌──────────────────┐  ┌─────────────────────────┐  │
│  │ 连接管理    │  │ Monaco SQL + AI  │  │ 虚拟滚动 DataGrid       │  │
│  │ SSH / 代理  │  │ 表结构上下文     │  │ 批量编辑 · 导出         │  │
│  │ 驱动代理    │  │ 快捷指令         │  │ 事务提交 / 回滚         │  │
│  └─────────────┘  └────────┬─────────┘  └─────────────────────────┘  │
│                            │                                         │
│              ┌─────────────▼─────────────┐                           │
│              │  Go 核心 · 审计 · 同步    │                           │
│              │  MCP HTTP · Web Server    │                           │
│              └───────────────────────────┘                           │
└──────────────────────────────────────────────────────────────────────┘

产品截图

每张均为 完整 GoNavi 应用窗口,再通过 README 宽度控件等比例缩小展示。

GoNavi 全窗口 — 连接、查询与工作台   GoNavi 全窗口 — 带表结构上下文的 AI 助手

GoNavi 全窗口 — 新建连接的数据源选择器

真实桌面全窗口截图


核心能力

🤖 懂表结构的 AI

  • OpenAI · Gemini · Claude · 自定义 OpenAI 兼容 API
  • 将当前库表结构注入对话上下文
  • 快捷指令:生成 SQL、解释、优化、表设计评审
  • MCP:一键装到 Claude Code / Codex或 Streamable HTTP 给远端 Agent
  • 连接与密码留在运行 GoNavi 的主机上

大数据仍流畅

  • 虚拟滚动 DataGrid扛住大结果集
  • 单元格编辑 · 批量增删改 · 事务提交/回滚
  • 大字段弹窗 · 按查询智能切换读写
  • 导出CSV · XLSX · JSON · Markdown
  • Monaco + 库/表/字段上下文补全

🔌 连接与驱动

  • URI 生成 / 解析
  • SSH 隧道 · 代理
  • 连接配置 JSON 导入导出
  • 可选驱动代理按需安装
  • Custom Driver + DSN 扩展

🛡️ 可观测 & 可交付

  • SQL 执行日志(含耗时)
  • 审计中心(默认脱敏、保留策略、导出)
  • 桌面端 + 实验性 Web Server
  • Docker / K8s / Helm / Podman
  • 更新检查 · 多架构发布

🧩 技术栈

Go 1.24 · Wails v2 · React 18 · TypeScript · Vite · Ant Design 5 · Zustand · Monaco


🗄 支持的数据源

内置:开箱即用 · 可选驱动代理:在驱动管理中安装启用

内置 MySQL · GoldenDB · PostgreSQL · Oracle · Redis · Chroma · Qdrant · Milvus · RocketMQ · MQTT · Kafka · RabbitMQ
可选 MariaDB · Doris · StarRocks · Sphinx · SQL Server · SQLite · DuckDB · OceanBase · 达梦 · 人大金仓 · 瀚高 · 海量 · openGauss · GaussDB · IRIS · MongoDB · TDengine · IoTDB · ClickHouse · Trino · Elasticsearch · Custom Driver/DSN
完整能力矩阵
类别 数据源 驱动模式 典型能力
关系型 MySQL 内置 库表浏览、SQL 查询、数据编辑、导出/备份
国产数据库 GoldenDB 内置 MySQL 兼容查询工作流、分布式事务场景
关系型 PostgreSQL 内置 库表浏览、SQL 查询、数据编辑、对象管理
关系型 Oracle 内置 连接查询、对象浏览、数据编辑
缓存 Redis 内置 Key 浏览、命令执行、编码/视图切换
向量数据库 Chroma 内置 Collection 浏览、向量检索、元数据过滤
向量数据库 Qdrant 内置 Collection 浏览、向量搜索、Payload 过滤
向量数据库 Milvus 内置 Collection 浏览、向量搜索、标量过滤
消息队列 RocketMQ 内置 Topic 浏览、消费组检查、消息型工作流
消息队列 MQTT 内置 Broker / Topic Filter 工作流与 QoS 连接配置
消息队列 Kafka 内置 Topic 浏览、Broker 元数据、消费组工作流
消息队列 RabbitMQ 内置 Queue / Exchange 浏览、Virtual Host 检查、Management API 工作流
关系型 MariaDB 可选驱动代理 连接查询、对象管理、数据编辑
关系型 Doris 可选驱动代理 连接查询、对象浏览、SQL 执行
列式分析 StarRocks 可选驱动代理 连接查询、对象浏览、SQL 执行
搜索 Sphinx 可选驱动代理 SphinxQL 查询与对象浏览
关系型 SQL Server 可选驱动代理 库表浏览、SQL 查询、对象管理
文件型 SQLite 可选驱动代理 本地文件库浏览、编辑、导出
文件型 DuckDB 可选驱动代理 大表查询、分页浏览、文件库管理
国产数据库 OceanBase 可选驱动代理 MySQL / Oracle 租户接入、对象浏览、查询工作流
国产数据库 Dameng 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 Kingbase 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 HighGo 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 Vastbase 可选驱动代理 连接查询、对象浏览、数据编辑
国产数据库 OpenGauss 可选驱动代理 类 PostgreSQL 的库表浏览、SQL 查询、对象管理
国产数据库 GaussDB 可选驱动代理 类 PostgreSQL 的库表浏览、SQL 查询、对象管理
多模型数据库 InterSystems IRIS 可选驱动代理 Namespace 浏览、SQL 查询、对象管理
文档型 MongoDB 可选驱动代理 文档查询、集合浏览、连接管理
时序 TDengine 可选驱动代理 时序库表浏览、查询分析
时序 Apache IoTDB 可选驱动代理 Storage Group / Device / Timeseries 浏览与查询
列式分析 ClickHouse 可选驱动代理 分析查询、对象浏览、SQL 执行
联邦查询 Trino 可选驱动代理 跨多数据源联邦 SQL、catalog.schema 浏览、SQL 执行
搜索 Elasticsearch 可选驱动代理 索引浏览、Mapping 检查、JSON DSL / query_string 查询
扩展接入 Custom Driver/DSN 自定义 通过 Driver + DSN 接入更多数据源

🚀 快速开始

前置要求

go install github.com/wailsapp/wails/v2/cmd/wails@v2.11.0

开发

git clone https://github.com/Syngnat/GoNavi.git
cd GoNavi

wails dev                          # 完整热重载
node tools/wails-fast-dev.mjs      # Go 导出签名未变时更快
node tools/wails-fast-dev.mjs --refresh-bindings  # 修改导出方法签名后刷新绑定

构建

wails build
wails build -clean   # 发布前推荐

产物位于 build/bin

只想直接用?

前往 Releases 下载
macOS AMD64/ARM64 · Windows AMD64 · Linux WebKitGTK 4.0/4.1)。


🌐 Web Server实验中

同一套 Go 后端 + React 前端提供浏览器访问(不是把 Wails 桌面窗口容器化)。

go build .
.\GoNavi-Wails.exe web-server --addr 127.0.0.1:34116
  • 首次访问进入 /setup(管理员密码;可选 Google Authenticator
  • 桥接:window.go.* / window.runtime.* → HTTP / SSE
  • Session、恢复码、登录限流

Docker / Podman

cp docker.web-server.env.example docker.web-server.env
# 设置 GONAVI_HOST_DATA_ROOT 为绝对路径
# 可选GONAVI_WEB_PASSWORD至少 6 位)
docker compose --env-file docker.web-server.env -f docker-compose.web-server.yml up -d

打开 http://127.0.0.1:34116。将活动数据目录挂载到 /data
connections.jsondaily_secrets.json,可选 drivers/)。
认证状态写入 web_auth.json

不要把未加固的 Web 入口直接暴露到公网。 生产环境请配合反向代理与 HTTPS。

健康检查:GET /__gonavi/healthz
本地源码构建:叠加 -f docker-compose.web-server.local.yml --build

修改 env 密码后需重建容器:

docker compose --env-file docker.web-server.env -f docker-compose.web-server.yml up -d --force-recreate

docker restart 不会重新加载 env 文件。)


🤖 MCP & Agents

把结构工具交给 Agent而不是把密钥交出去

cp docker.mcp-server.env.example docker.mcp-server.env
docker compose --env-file docker.mcp-server.env -f docker-compose.mcp-server.yml up -d
形态 入口
MCP 容器 docker-compose.mcp-server.ymlghcr.io/syngnat/gonavi-mcp-server
Web UI 容器 docker-compose.web-server.ymlghcr.io/syngnat/gonavi-web-server
Podman / Quadlet deploy/podman/gonavi-mcp-server
Kubernetes deploy/k8s/gonavi-mcp-server
Helm deploy/helm/gonavi-mcp-server
仅构建镜像 Dockerfile.build-envghcr.io/syngnat/gonavi-build-env

安全默认:远端 schema-only 不暴露 execute_sql;变更类 SQL 需显式 allowMutating=true
详见:cmd/gonavi-mcp-server/README.md

仅 Linux 构建环境

docker build -f Dockerfile.build-env -t gonavi-build-env:local .
docker run --rm -it -v "$PWD:/workspace" -w /workspace gonavi-build-env:local bash

📦 发布流水线

推送 v* Tag → GitHub Actions 自动多架构构建。
Release 说明按 .github/release.yaml 从已合并 PR 生成。


🛠 常见问题

macOS提示「应用已损坏无法打开」

未做 Apple Notarization 时Gatekeeper 可能拦截:

sudo xattr -rd com.apple.quarantine /Applications/GoNavi.app

也可在 Finder 中右键打开。建议先移到「应用程序」。

Linux缺少 WebKitGTK
# Debian 13 / Ubuntu 24.04+
sudo apt-get update
sudo apt-get install -y libgtk-3-0 libwebkit2gtk-4.1-0 libjavascriptcoregtk-4.1-0

# Ubuntu 22.04 / Debian 12
sudo apt-get update
sudo apt-get install -y libgtk-3-0 libwebkit2gtk-4.0-37 libjavascriptcoregtk-4.0-18

-WebKit41 后缀的产物更适配 Debian 13 / Ubuntu 24.04+。

Linux中文显示为方框
sudo apt-get update
sudo apt-get install -y fonts-noto-cjk fonts-wqy-microhei
fc-cache -fv

🤝 贡献

欢迎 Issue 与 PR。请从 dev 拉分支,并向 dev 提 PR。


Star History

Star History Chart

友情链接

开源协议

Apache-2.0

为泡在 SQL、表结构与 Agent 循环里的人而造。