Chat2DB

開発者、DBA、アナリスト、データチーム向けの AI 搭載データベースクライアント兼 SQL ワークスペースです。

OtterMind%2FChat2DB | Trendshift
[![ModelScope][Modelscope-image]][Modelscope-url] [![Discord][discord-image]][discord-url] [![X][x-image]][x-url] [Modelscope-image]: https://img.shields.io/badge/modelscope-blue?style=flat-square\&logo=modelscope [Modelscope-url]: https://modelscope.cn/ [discord-image]: https://img.shields.io/badge/-Join%20us%20on%20Discord-%237289DA.svg?style=flat&logo=discord&logoColor=white [discord-url]: https://discord.gg/uNjb3n5JVN [x-image]: https://img.shields.io/badge/X-%40Chat2DB_AI-000000?style=flat&logo=x&logoColor=white [x-url]: https://x.com/Chat2DB_AI
README in English 简体中文版自述文件 日本語のREADME README en español 한국어 README
> 📣 **Chat2DB チームからのお知らせ!** > AI ネイティブアプリケーション向けの新しいデプロイレイヤー **[Nubase](https://github.com/ottermind/nubase)** をオープンソースで公開しました! > Chat2DB がデータ管理を簡単にするように、Nubase は AI コーディングツールやエージェントのデプロイをよりスムーズにします。 > > オープンソースの取り組みを応援するため、GitHub で **[Nubase に ⭐️](https://github.com/ottermind/nubase)** をお願いします! ## 機能比較 Community、Pro、Enterprise は、同じデータベースクライアントの基本機能を共有します。商用版は別のデータベースエンジンを提供するのではなく、その基本機能に公式 AI、クラウドストレージ、マルチデバイス利用、コラボレーション、ガバナンスを追加します。 | 機能 | Community | Pro(オンライン個人版) | Enterprise | | --- | --- | --- | --- | | データソース接続と認証情報管理 | ✅ | ✅ | ✅ | | データベースプラグインとメタデータ参照 | ✅ | ✅ | ✅ | | SQL の編集、補完、フォーマット、実行 | ✅ | ✅ | ✅ | | DDL/DML、オブジェクト管理、データ編集 | ✅ | ✅ | ✅ | | データのインポートとエクスポート | ✅ | ✅ | ✅ | | 保存済み SQL、履歴、タスク | ✅ | ✅ | ✅ | | ダッシュボードとチャート | ✅ | ✅ | ✅ | | CLI と MCP | ✅ | ✅ | ✅ | | カスタム AI モデル | ✅ | ✅ | ✅ | | 公式 AI クレジットとクラウド会話履歴 | ❌ | ✅ | ✅ | | アカウントと ID 管理 | ❌ | ✅ | ✅ | | クラウドとマルチデバイス | ❌ | ✅ | ✅ | | チームデータソースと共有資産 | ❌ | ❌ | ✅ | | メンバーとロール | ❌ | ❌ | ✅ | | 権限、承認、監査 | ❌ | ❌ | ✅ | | 組織データコンテキストと企業ナレッジベース | ❌ | ❌ | ✅ | ## ダウンロードとインストール Chat2DB は、Windows、macOS、Linux をサポートするクロスプラットフォームアプリケーションです。以下のリンクから Chat2DB をダウンロードできます。 - [Proバージョンのダウンロード](https://chat2db.ai/download) - [Community(Source Available)のダウンロード](https://github.com/OtterMind/Chat2DB/releases) ## Community Edition のセキュリティ境界 > [!WARNING] > Chat2DB Community は、単一ユーザー向けのローカルファーストなアプリケーションです。 > ユーザーアカウント、テナント分離、複数ユーザー間の認可境界は提供しません。 > HTTP サービスは `127.0.0.1` または `::1` にバインドし、他のユーザーや > 信頼できないネットワークへ直接公開しないでください。 > > カスタム JDBC ドライバーは実行可能な Java コードです。信頼できる提供元の > ドライバーだけをインストールしてください。インポートした設定ファイル、 > アーカイブ、SQL ファイル、データベースの内容、AI の応答は引き続き信頼できない > データとして扱います。完全な信頼境界と脆弱性の報告手順については、 > [セキュリティポリシー](SECURITY.md)を参照してください。 ## コミュニティエディションの Docker インストール ### システム要件 Chat2DBをインストールする前に、システムが以下の要件を満たしていることを確認してください: - Docker 19.03.0以上 - Docker Compose 2.0.0 以降(Compose V2) - CPU >= 2コア - RAM >= 4 GiB ```bash # リポジトリ内で初回に一度実行します。再実行時は同じ有効なキーを再利用します。 ./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 docker logs --follow chat2db-community ``` `http://localhost:10825` を開いてください。更新する場合は、新しいイメージを取得し、古いコンテナを削除してから上記のコマンドを再実行します。 Chat2DB Community 5.3.0 は独立した `/root/.chat2db-community` ディレクトリを使用し、旧イメージの `/root/.chat2db` にあるデータを自動移行しません。 コンテナを再作成しても `~/.config/chat2db-community/encryption.key` を保持し、別途バックアップしてください。このファイルを置き換えたり失ったりすると、保存済みのデータソースパスワードと AI モデル API キーを復号できません。`chat2db.mode` が `DESKTOP` 以外の起動方式(通常の Web/headless 起動を含む)は、有効なキーがない場合に起動に失敗します。 リポジトリには Compose 定義も含まれています: ```bash ./script/security/init-community-encryption-key.sh docker compose --file docker/docker-compose.yml up --detach ``` `docker run` は `$HOME/.chat2db-community-docker` にデータを保存し、Compose は `chat2db-community-data` という名前付きボリュームを使用します。両者はデータを自動的に共有または移行しません。 ## コミュニティエディションの暗号化キー Chat2DB Community は、保存されたデータソースパスワードとユーザー設定の AI モデル API キーを AES-256-GCM で暗号化します。両者は同じインストールキーを使用しますが、認証用 AAD は別々であるため、一方の暗号文をもう一方として復号できません。キーは有効な Base64 で、デコード後に正確に32バイトでなければなりません。付属の初期化スクリプトは、末尾が `=` の44文字からなる標準のパディング付き形式を生成します。人が決める通常のパスワードではなく、暗号化用のキーマテリアルです。 リポジトリ内で次のコマンドを実行し、デフォルトのキーファイルを作成します: ```bash ./script/security/init-community-encryption-key.sh ``` デフォルトパスは `~/.config/chat2db-community/encryption.key` です。カスタムパスを使用する場合は、初期化スクリプトと Chat2DB の起動引数に同じパスを指定します: ```bash ./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 ``` 初期化スクリプトには `openssl` が必要です。スクリプトが使用するキーファイルパスの優先順位は、位置引数、`CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE`、デフォルトパスの順です。既存の有効な通常ファイルは再利用し、シンボリックリンクと通常ファイル以外のパスを拒否し、無効なファイルを上書きしません。キーファイルは Chat2DB プロセスの所有者だけが読み取れるようにし、アップグレードやコンテナ再作成後も保持して、データソースストレージとは別にバックアップしてください。 キー設定は次の優先順位で解決されます: 1. Base64 キーを指定する JVM プロパティ `chat2db.community.encryption-key`。 2. Base64 キーを指定する環境変数 `CHAT2DB_COMMUNITY_ENCRYPTION_KEY`。 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` には依存しません。Community Desktop モード(`chat2db.runtime.mode=community` と `chat2db.mode=DESKTOP`)では、インラインキーが設定されておらず、選択されたキーファイルが存在しない場合にファイルを自動生成します。通常の Web/headless 起動を含む Desktop 以外のモードは不足しているキーを自動生成しないため、起動前に有効なキーを初期化または明示的に設定する必要があります。解決されたキーはプロセスの存続期間中キャッシュされるため、キー設定を変更した後はアプリケーションを再起動してください。キーを置き換えたり失ったりすると、保存済みのデータソースパスワードと AI モデル API キーを復号できません。 ## 開発 ### 実行環境 - Java runtime: Eclipse Temurin 17 - Node.js runtime: Node.js 18.17.0 以降 - Maven 3.8 以降 ### リポジトリをローカルにクローン ```bash git clone git@github.com:OtterMind/Chat2DB.git ``` ### フロントエンドデバッグ リポジトリに含まれる Yarn lockfile を使用してください。 ```bash cd Chat2DB/chat2db-community-client yarn install --frozen-lockfile yarn run start:community:hot ``` ### バックエンドデバッグ ```bash 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 イメージのビルド ```bash ./docker/docker-build.sh 5.3.0 chat2db/chat2db:5.3.0 ``` ## コントリビューション コミュニティからのバグ報告、機能リクエスト、ドキュメント改善、テストフィードバック、Pull Request を歓迎します。 Issue の作成や Pull Request の送信前に、[コントリビューションガイド](./CONTRIBUTING.md)をお読みください。バグの報告、改善提案、メンテナーがレビューしやすい形で貢献する方法を説明しています。 - バグや機能リクエストには [GitHub Issues](https://github.com/OtterMind/Chat2DB/issues) を使用してください。 - 質問、セットアップ支援、自由な議論には [GitHub Discussions](https://github.com/OtterMind/Chat2DB/discussions) を使用してください。 - Pull Request が Issue に関連する場合は、PR の説明に Issue へのリンクを含めてください。 ## お問い合わせ - メール: Chat2DB@ch2db.com - Discord: [Discordサーバーに参加](https://discord.gg/uNjb3n5JVN) - X: [@Chat2DB_AI](https://x.com/Chat2DB_AI) - YouTube: [Chat2DB チャンネル](https://www.youtube.com/@chat2db.tutorial) - GitHub: [Chat2DB GitHub](https://github.com/OtterMind/Chat2DB) ## 謝辞 Chat2DBに貢献してくださったすべての方々に感謝します。 Chat2DB のコントリビューター ## Star History Star History チャート ## ライセンス Chat2DB Community 5.3.0 以降には、このリポジトリの [LICENSE](./LICENSE) が適用されます。このライセンスは Apache License 2.0 を基礎として追加条件を設けた Source Available ライセンスです。Chat2DB 5.3.0 より前に公開されたすべてのリリース(0.3.7 およびそれ以前の履歴 バージョンを含む)には、引き続き Apache License 2.0 が適用されます。