桌面软件 活跃维护

Chat2DB

OtterMind/Chat2DB

Chat2DB是一个免费的、跨平台的、本地优先的数据库客户端和SQL工作区,适用于开发人员、数据库管理员、分析师和数据团队。连接到40多个数据库、管理数据、编辑和运行SQL ,并使用您自己的AI模型来生成、解释和优化查询。可在桌面、Web、Docker和CLI上使用,并支持MCP。

28119
Stars 标星
3031
Forks 分支
164
Watchers 关注
246
Open Issues
Java
主要语言
Other
开源协议
56.3 MB
仓库大小
1 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:OtterMind/Chat2DB
git clone https://github.com/OtterMind/Chat2DB.git
git clone git@github.com:OtterMind/Chat2DB.git
README.md main
OtterMind 提供支持

一个由人工智能驱动的数据库客户端和 SQL 工作区,面向开发人员、数据库管理员、分析师和数据团队。

什么是 Chat2DB?

Chat2DB Community 是一个免费的跨平台数据库客户端,适用于 Windows、macOS 和 Linux。它完全运行在您的电脑上,将功能齐全的 SQL 工作区与您可以连接自己模型的 AI 助手结合在一起。

  • 支持 40 种数据库 — MySQL、PostgreSQL、Oracle、SQL Server、ClickHouse、MongoDB、Redis、SQLite、MariaDB、TiDB、Hive、DB2、Snowflake、BigQuery、Elasticsearch、Trino、TimescaleDB、Greenplum、YugabyteDB、CrateDB、QuestDB、Apache IoTDB、Firebird、HSQLDB、Apache Derby,以及通过插件支持的更多数据库 — 新的 JDBC 数据库可以通过配置添加,无需更改代码。
  • SQL 工作区 — 编辑、自动完成、格式化、执行、保存 SQL 和执行历史记录。
  • AI 助手 — 使用您自己的 AI 模型,用自然语言生成、解释和优化 SQL。
  • 数据库管理 — 浏览元数据,管理表和对象(DDL/DML),并直接编辑数据。
  • 数据导入和导出仪表盘和图表,以及一个 支持 MCP 的开源 CLI

截图

仪表板和图表 ER 图
可视化数据管理 数据导入与导出

快速开始

选项 1:桌面应用

GitHub Releases 下载适用于您平台的安装程序,安装它,然后开始连接您的数据库。无需进一步设置。

选项 2:Docker

要求:Docker 19.03.0、Docker Compose 2.0.0(仅适用于 Compose 版本的 Compose V2)、2 个 CPU 核心、4 GiB 内存。

首先创建加密密钥(参见 加密密钥 了解其重要性),然后启动容器:

# Run once from a repository checkout. Re-running reuses the same valid key.
git clone https://github.com/OtterMind/Chat2DB.git && cd Chat2DB
./script/security/init-community-encryption-key.sh

docker run --detach \
  --name chat2db-community \
  --restart unless-stopped \
  --publish 127.0.0.1:10825:10825 \
  --volume "$HOME/.chat2db-community-docker:/root/.chat2db-community" \
  --env CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE=/run/secrets/chat2db-community-encryption.key \
  --volume "$HOME/.config/chat2db-community/encryption.key:/run/secrets/chat2db-community-encryption.key:ro" \
  chat2db/chat2db:latest

然后在浏览器中打开 http://localhost:10825

或者,使用捆绑的 Compose 定义:

./script/security/init-community-encryption-key.sh
docker compose --file docker/docker-compose.yml up --detach

注意事项:

  • 要更新,请拉取新镜像,删除旧容器,然后再次运行启动命令。重建过程中请保留 ~/.config/chat2db-community/encryption.key
  • docker run 示例将应用程序数据存储在 $HOME/.chat2db-community-docker;Compose 定义使用名为 chat2db-community-data 的卷。这些位置的数据不共享。
  • Chat2DB Community 5.3.0 使用独立的 /root/.chat2db-community 目录,并不会自动迁移早期镜像中使用 /root/.chat2db 的数据。

安全注意事项

Chat2DB Community 是单用户、本地优先的应用程序。它没有用户账户,也没有用户之间的授权边界。请将 HTTP 服务绑定到 127.0.0.1::1,不要向其他用户或不可信网络开放。

自定义 JDBC 驱动是可执行的 Java 代码——仅从您信任的来源安装它们。导入的配置文件、归档文件、SQL 文件、数据库内容和 AI 响应仍然是未经信任的数据。完整的信任边界和漏洞报告流程,请参阅 安全政策

如果您觉得这个项目有用,请给我们点个 Star ⭐️——这对我们非常有帮助!

加密密钥

Chat2DB 社区使用 AES-256-GCM 和每次安装的密钥加密存储的数据源密码和 AI 模型 API 密钥。请从仓库检出后创建一次(需要 openssl):

./script/security/init-community-encryption-key.sh

密钥写入到 ~/.config/chat2db-community/encryption.key请单独备份此文件,并在升级和容器重建时保留它——替换或丢失它会导致之前存储的数据源密码和 AI 模型 API 密钥无法读取。如果没有提供有效密钥,Web/无头模式启动会失败;只有桌面模式会自动创建丢失的密钥。

密钥配置参考(自定义路径、解析顺序、验证)

密钥必须是有效的 Base64,并解码为恰好 32 字节。随附的初始化程序会生成标准填充形式:44 个 Base64 字符,以 = 结尾。它是加密密钥材料,而不是可读的密码。数据源密码和 AI API 密钥使用相同的密钥,但有各自独立的认证 AAD 值,因此一种用途的密文不能被解密为另一种用途的数据。

要使用自定义路径,请将其传递给脚本,并在启动 Chat2DB 时配置相同的路径:

./script/security/init-community-encryption-key.sh /secure/path/chat2db-community.key

java -Dloader.path=chat2db-community-server/chat2db-community-start/target/lib \
    -Dchat2db.runtime.mode=community \
    -Dchat2db.mode=WEB \
    -Dchat2db.gui=false \
    -Dchat2db.network.status=OFFLINE \
    -Dchat2db.community.encryption-key-file=/secure/path/chat2db-community.key \
    -Dserver.address=127.0.0.1 \
    -Dserver.port=10825 \
    -jar chat2db-community-server/chat2db-community-start/target/chat2db-community.jar

脚本的密钥文件路径优先级为位置参数,CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE,然后是默认路径。它会重用有效的常规文件,拒绝符号链接和非常规文件,并且不覆盖无效文件。保持密钥仅对 Chat2DB 进程所有者可读。

密钥配置按以下顺序解析:

  1. JVM 属性 chat2db.community.encryption-key,包含 Base64 密钥。
  2. 环境变量 CHAT2DB_COMMUNITY_ENCRYPTION_KEY,包含 Base64 密钥。
  3. JVM 属性 chat2db.community.encryption-key-file,包含密钥文件路径。
  4. 环境变量 CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE,包含密钥文件路径。
  5. 默认文件 ~/.config/chat2db-community/encryption.key

第一个配置的值具有权威性。空值、格式错误的 Base64、无法解码为 32 字节的密钥或无效的密钥文件会导致启动失败,而不是继续尝试下一个来源。推荐使用基于文件的配置,因为它可以避免将密钥值直接放在进程参数或环境变量中。

自动创建密钥文件取决于 chat2db.mode,而不是 chat2db.gui。社区桌面模式(chat2db.runtime.mode=communitychat2db.mode=DESKTOP)在未配置内联密钥且文件缺失时,会创建所选密钥文件。任何非桌面模式,包括正常的 Web/无头启动,都不会创建缺失的密钥,并且在提供或初始化有效密钥之前会失败。已解析的密钥在进程生命周期内被缓存,因此更改密钥配置需要重新启动应用程序。

从源代码构建

先决条件

  • Java 运行时:Eclipse Temurin 17
  • Node.js 18.17.0 或更高版本
  • Maven 3.8 或更高版本

克隆仓库

git clone https://github.com/OtterMind/Chat2DB.git

前端

使用已提交的锁文件的 Yarn。

cd Chat2DB/chat2db-community-client
yarn install --frozen-lockfile
yarn run start:community:hot

后端

cd Chat2DB
mvn -B clean package -Dmaven.test.skip=true -Dchat2db.finalName=chat2db-community \
    -f chat2db-community-server/pom.xml \
    -pl chat2db-community-start -am
./script/security/init-community-encryption-key.sh
java -Dloader.path=chat2db-community-server/chat2db-community-start/target/lib \
    -Dchat2db.gui=false \
    -Dchat2db.runtime.mode=community \
    -Dchat2db.mode=WEB \
    -Dchat2db.network.status=OFFLINE \
    -Dchat2db.community.encryption-key-file="$HOME/.config/chat2db-community/encryption.key" \
    -Dserver.address=127.0.0.1 \
    -Dserver.port=10825 \
    -Dspring.profiles.active=dev \
    -jar chat2db-community-server/chat2db-community-start/target/chat2db-community.jar

构建本地 Docker 镜像

./docker/docker-build.sh 5.3.0 chat2db/chat2db:5.3.0

数据库指南

将 Chat2DB Community 连接到特定数据库的分步指南:

  • BigQuery — 通过 Google Cloud 服务账户访问 Google BigQuery。

Community 与商业版对比

Community 版本包含上述所有本地数据库客户端功能,包括自定义 AI 模型支持。商业版 Pro 和 Enterprise 版本基于相同核心构建,并添加了托管 AI 服务、用户账户、云存储和多设备同步,以及团队协作和治理功能。详情请见 chat2db.ai

贡献

我们欢迎社区提交的错误报告、功能请求、文档改进、测试反馈和拉取请求。

在创建 issue 或提交拉取请求之前,请先阅读我们的 贡献指南。其中说明了如何报告错误、提出改进建议以及如何让维护者更容易审查贡献。

  • 关于错误和功能请求,请使用 GitHub Issues
  • 关于问题、安装帮助和开放式讨论,请使用 GitHub Discussions
  • 如果您的拉取请求与某个 issue 相关,请在 PR 描述中链接该 issue。

社区与支持

致谢

感谢所有为 Chat2DB 做出贡献的人。

许可证

Chat2DB 社区版 5.3.0 及更高版本可根据 此仓库中的许可条款 使用。这是一个基于 Apache 许可证 2.0 并附加额外条件的源代码可用许可。5.3.0 之前发布的 Chat2DB 版本,包括 0.3.7 版本及更早的历史标签,仍然适用于 Apache 许可证 2.0。

本站来源与版权声明
  • 本文标题: Chat2DB - Chat2DB是一个免费的
  • 本文链接: https://www.cn121.com/desktop/ottermind-chat2db.html
  • 站点出处: 本文首发于 OneTwoOne,收录自 GitHub 开源项目 OtterMind/Chat2DB。
  • 引用声明: 商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处及本文永久链接。