Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Docker Compose で Agentic Data Stack をセットアップする

Docker Compose を使って Agentic Data Stack 一式をローカルで実行すると、初回ログイン直後からデータについて質問できます。docker compose up コマンド 1 つで、LibreChatClickHouse MCPサーバーClickHouse、そしてオブザーバビリティ向けの Langfuse が起動します。

前提条件

  • Compose プラグイン (Compose v2 以降) を備えた Docker
  • リポジトリをクローンするための Git
  • モデルプロバイダーの API key (OpenAI、Anthropic、Google など) 。質問に回答するには agent にモデルが必要なため、Setup 時に key を指定するか、初回のチャット前に LibreChat UI で追加してください。

スタックを起動する

リポジトリをクローンする

git clone https://github.com/ClickHouse/agentic-data-stack
cd agentic-data-stack

このリポジトリにはルートに docker-compose.yml が含まれているため、1 つのコマンドでスタック全体を起動できます。サービスの一覧は Architecture を参照してください。

デモ用セットアップスクリプトを実行する

./scripts/prepare-demo.sh

これにより、各サービスの認証情報を含む .env ファイルが生成され、その後、選択した provider の API key を設定するための対話式メニューが表示されます。これらのキーは .env ファイルに直接設定することもできます。設定をスキップした provider は user_provided のままになるため、代わりに LibreChat UI で独自のキーを追加できます。

初回起動時には、スタックが .env の内容をもとに admin ユーザーを作成します。デフォルトのログイン情報は admin@admin.com / password です。

独自のログイン認証情報を設定する

prepare-demo.sh を実行する前に、以下の変数を指定して generate-env.sh を実行してください。

USER_EMAIL="you@example.com" USER_PASSWORD="supersecret" USER_NAME="YourName" ./scripts/generate-env.sh

その後、prepare-demo.sh は既存の .env を検出し、API-key の設定に直接進みます。

バックグラウンドでサービスを起動する

docker compose up -d

起動順序は自動的に制御されます。LibreChat は MCPサーバー が正常状態になってから起動するため、初回読み込み時点で ClickHouse への接続が利用可能です。

LibreChat を開いてサインインする

スタックの起動後、以下のサービスをブラウザから利用できます。

.env ファイル内の admin 認証情報を使って LibreChat にサインインしてください。

モデルを選択する

モデルはデフォルトで選択されています。変更する場合は、モデル selector を開いて使用するものを選んでください。

左上隅にある LibreChat のモデル selector。デフォルトのモデルと「Select a model」のツールチップが表示されている

セットアップ中に provider の key を設定しなかった場合は、UI で追加してください。

UI で provider の key を設定する

モデル selector を開き、provider の横にある Set API Key をクリックします。

Anthropic provider の横にある Set API Key ボタンが表示された LibreChat のモデル selector

ダイアログに key を貼り付けて Submit をクリックします。有効期限を設定することも、期限切れにしないこともできます。

Anthropic 用の Set API Key ダイアログ。expiration のドロップダウン、Key フィールド、Submit ボタンと Revoke ボタンが表示されている

MCPサーバー を選択する

このスタックでは、LibreChat の librechat.yaml に MCPサーバー があらかじめ設定されています。message composer で MCP Servers をクリックし、ClickHouse-Local を選択してください。

ClickHouse Cloud service を使用する場合は、代わりに ClickHouse-Cloud を選択してください。

LibreChat の composer で MCP Servers メニューが開かれ、緑の接続済みドット付きの ClickHouse-Local と ClickHouse-Cloud が表示されている

最初の質問をする

たとえば、次のように質問できます。

利用可能な database と table は何ですか。また、最大の table には何行ありますか?

この agent は MCPサーバー のツールを使って database と table を一覧表示し、ClickHouse に対して read-only の queries を実行し、その結果をもとに回答を組み立てます。SQL を書く必要はありません。

ClickHouse-Local の MCP ツールを呼び出して利用可能な database と table を一覧表示し、例の質問に回答する LibreChat

スタックを停止またはリセットする

何も削除せずにサービスを停止するには、次のコマンドを実行します。

docker compose down

すべてのコンテナーを削除し、クリーンな状態からやり直せるようにすべてのボリュームを消去するには、スタックのリセットスクリプトを使用します:

./scripts/reset-all.sh

アーキテクチャ

docker-compose.yml は、4つの Compose ファイルを取り込むシンプルなエントリーポイントです。

Compose file Defines
langfuse-compose.yml Langfuse とその関連サービス (ClickHouse、PostgreSQL、Redis、MinIO)
clickhouse-mcp-compose.yml ClickHouse MCPサーバー
librechat-compose.yml LibreChat とその関連サービス (MongoDB、Meilisearch、pgvector、RAG API)
admin-panel-compose.yml LibreChat Admin Panel

単一コマンドで起動できるのは、次の2つのポイントによるものです。

  • ヘルスチェックと起動順序。 Compose はヘルスチェックを使って起動順を制御します。MCPサーバーは ClickHouse の起動を待ち、LibreChat は MCPサーバーの起動を待ちます。
  • 共有環境ファイル。 .env には各サービスの認証情報と接続情報が格納されており、各サービスが相互に接続できるよう一貫して設定されています。たとえば、MCPサーバーは .env 内の ClickHouse 認証情報を使って ClickHouse に接続します。LibreChat には LANGFUSE_PUBLIC_KEYLANGFUSE_SECRET_KEYLANGFUSE_BASE_URL が渡されるため、すべての実行結果はそのまま Langfuse にトレースされます。

ClickHouse はこのスタックで2つの役割を担います。1つは Langfuse のストレージバックエンド、もう1つはエージェントが MCPサーバー経由でクエリするデータベースです。

次のステップ

  • スタックを構成する各コンポーネントの役割については、ClickHouse MCPサーバーLibreChatLangfuseを参照してください。
  • スタック全体がどのように連携するかについては、概要を参照してください。
  • 何もインストールせずに公開データセットでスタックを試すには、ホスト型デモのAgentHouseを利用してください。
Navigation