コンテンツにスキップ

デプロイ概要

このページでは、Chorus を実行・セルフホストするためにサポートされている方法と、それぞれに必要なものを紹介し、選ぶための手がかりを示します。方法を決めたら、Docker でデプロイ、ローカルマシンでセルフホストする、本番環境でデプロイ、セルフホストの Chorus を運用するの各ガイドで残りの手順を進めてください。

Chorus は同じアプリケーションをローカルと本番の二つの形態で実行します。違いは、データの置き場所と利用する人数です。

一人のユーザーが、一台のマシン上の一つのプロセスで使う形態です。Chorus は組み込みの PostgreSQL データベース(PGlite)を同梱しているため、別途インストールする外部コンポーネントはありません。コマンドが自らデータベースを作成し、マイグレーションを適用して、Web アプリケーションを 8637 ポートで提供します。Chorus を最も手早く試せる方法で、個人でのローカル利用に適しています。

この方法の手順は、はじめにガイドで最初から最後まで説明しています(グローバルパッケージをインストールし、管理者アカウントを設定して、サインインします)。このページではその手順を繰り返しません。

ローカル形態は、Docker のスタンドアロンコンテナとしても実行できます。同じ組み込みデータベースを使い、データは Docker ボリュームに保存されます。スタンドアロン(組み込みデータベース)を参照してください。

自分の Linux または macOS ホストで常時稼働させるインスタンスで、組み込みデータベースの代わりに Docker Compose 内の本物の PostgreSQL 17 データベースを使います。Chorus 0.22.2 以降では bash install.sh --target local でセットアップします。インストーラーがアプリイメージをプルまたはビルドし、保護されたアカウント設定を書き出し、繰り返し使える再デプロイ用のラッパーを保存します。アプリは LAN から HTTP で利用でき、任意で自己署名の LAN HTTPS や Cloudflare Named Tunnel も使えます。Redis なしの単一インスタンス構成です。ローカルマシンでセルフホストするを参照してください。

チームで共有するインストールです。自分で管理・バックアップする外部の PostgreSQL データベース(リポジトリの Compose ファイルの既定は PostgreSQL 17)を使い、一つ以上のアプリケーションインスタンスで提供します。Redis 7 は単一インスタンスでは任意ですが、複数のインスタンスを実行する場合は必須です。インスタンス同士が Redis を通じてライブ更新(Server-Sent Events)を伝え合うためです。Redis がない場合、Chorus はメモリ内のイベント配信にフォールバックしますが、これは単一インスタンスでしか機能しません。

Redis は別々の接続でインスタンス間 SSE と共有認証カウンターを提供します。空でない REDIS_URL が優先され、それ以外は REDIS_HOST で TLS(rediss)を使います。ポートは既定で 6379、ユーザー名は default で、ユーザー名は REDIS_PASSWORD の指定時に使われます。非 TLS には明示的な redis:// を使います。URL と host の両方がない場合だけイベントと制限がプロセス内に限定されます。Redis 障害時はプロセスごとの予備制限になり、共有枠や全ログイン拒否にはなりません。予期しない制限エラーは許可側に倒れる場合があります。詳細は共有認証レート制限を参照してください。

本番形態は、コンテナとして実行する(Docker でデプロイを参照)、グローバル npm パッケージから自前の PostgreSQL と Redis に対して実行する、あるいは同梱の AWS CDK スタック上で実行する(本番環境でデプロイを参照)ことができます。

管理対象のローカルアカウントはデータベースに保存され、DEFAULT_USER / DEFAULT_PASSWORD では設定しません。アプリに SUPER_ADMIN_EMAIL と SUPER_ADMIN_PASSWORD_HASH を渡し、管理パネルで専用ワークスペースを作成して最初のワークスペース管理者を招待します。ID プロバイダーやメールサービスは不要です。同一ワークスペースで OIDC と併用できず、既存ワークスペースの変換もできません。NEXTAUTH_SECRET を永続化して全レプリカで共有し、共有アクセスには HTTPS と COOKIE_SECURE=true を使います。設定と従来の Default Auth のみを無効にする手順は運用ガイドを参照してください。

  • Node.js 22 以降:Chorus は Node.js 22 ランタイムを対象としています(Docker イメージは node:22-alpine の上に構築されています)。
  • 8637 ポート:アプリケーションはここで待ち受けます。UI と MCP エンドポイントに到達するには、このポートを公開するかリバースプロキシしてください。
  • データベース:ローカル形態では用意するものはありません(組み込みの PGlite)。本番では、接続文字列で到達できる外部の PostgreSQL データベースが必要です。リポジトリの Compose ファイルとセルフホストのスタックの既定は PostgreSQL 17 で、既存の PostgreSQL 16 のデータボリュームは切り替える前に移行する必要があります(ローカルマシンでセルフホストするを参照)。
  • キャッシュ:単一インスタンスでは不要です。複数インスタンスの本番デプロイでは、インスタンス間のイベント伝播のための Redis 7 エンドポイントが必要です。
やりたいこと選ぶものデータベースキャッシュ
Chorus を試す、または一台のマシンで一人で作業するローカル単一マシン組み込み PGliteなし
最小限の構成要素で共有インスタンスを実行するスタンドアロンコンテナで動かすローカル形態組み込み PGlite(ボリューム内)なし
自分のホストで常時稼働させ、LAN から使う単一ホストでのセルフホスト(install.sh --target local)PostgreSQL 17(Compose 内)なし
共有・堅牢・複数インスタンスのインストールを実行する本番(Docker、npm、または AWS CDK)外部 PostgreSQL(既定は 17)Redis 7(2 インスタンス以上で必須)
  • Docker でデプロイ:公開されている chorusaidlc/chorus-app イメージ。スタンドアロンと本番の Compose ファイル、docker run の例、完全な環境変数 リファレンス、そして起動時の挙動。
  • ローカルマシンでセルフホストする:install.sh のローカルセットアップ、 再デプロイ用ラッパー、任意の自己署名 LAN HTTPS または Cloudflare Tunnel、そして PostgreSQL 16 から 17 への移行。
  • 本番環境でデプロイ:自前の PostgreSQL と Redis に対して 実行する方法、複数インスタンスの要件、そして完全な AWS CDK の手順。
  • セルフホストの Chorus を運用する:初回ログインのブートストラップ、デプロイ側の 認証、自動マイグレーション、そしてアップグレード前のバックアップ。