セルフホスト
Docker Compose、Kubernetes、K3s、またはオフラインバンドルで、自分のインフラで Lyra を動かす。
Lyra は Apache-2.0 ライセンスのオープンソースです。すべてのデプロイ方法はリポジトリの deploy/ ディレクトリにあります。このページでは概要をまとめます。詳しい手順はリンク先のガイドに従ってください。
Lyra に必要なもの
- MySQL と Redis。Docker Compose と K3s なら両方を一緒に動かせます。
- オブジェクトストレージ:ローカルのファイルシステムボリューム、または S3 互換の任意のサービス。
- エージェントのサンドボックス用の OpenSandbox。
- 通話用の LiveKit。メディア用のポートを開けておく必要があります。
- ウェブアプリの前段に HTTPS。
Docker Compose
もっとも簡単な方法です。Docker、docker compose プラグイン、OpenSSL が入った Linux ホストが 1 台あれば動きます。
git clone https://github.com/AstraFoundry/Lyra.git && cd Lyra
cp .env.example .env # set production secrets and public URLs
bash deploy/docker/lyra/deploy.sh build
bash deploy/docker/lyra/deploy.sh preflight
bash deploy/docker/lyra/deploy.sh up
up はイメージを再ビルドしないので、アップグレードは明示的に行います。使いたいイメージをビルドまたは読み込んでから、スタックを作り直します。日常的に使うコマンド:
bash deploy/docker/lyra/deploy.sh status
bash deploy/docker/lyra/deploy.sh logs lyra
bash deploy/docker/lyra/deploy.sh restart
通話を有効にする場合は、LiveKit と STUN のために 7881/tcp、50100-50200/udp、3478(TCP と UDP)を開けてください。
オフライン配布
レジストリにアクセスできないネットワーク向けには、接続できるホストでビルドしてパックします。
bash deploy/docker/lyra/deploy.sh build
bash deploy/docker/lyra/deploy.sh pack
deploy/docker/lyra/generated/lyra-deploy.tar.gz を対象のホストにコピーし、次を実行します。
tar -xzf lyra-deploy.tar.gz && cd lyra
cp .env.example .env
bash deploy/docker/lyra/deploy.sh load
bash deploy/docker/lyra/deploy.sh preflight
bash deploy/docker/lyra/deploy.sh up
INCLUDE_RUNTIME_IMAGES=false を設定しないかぎり、MySQL、Redis、LiveKit のランタイムイメージも含まれます。
Kubernetes
deploy/k8s/ のマニフェストは、Lyra の API、エージェントランタイム、ウェブのイメージを既存の名前空間にインストールします。MySQL、Redis、LiveKit、OpenSandbox、オプションの S3 ストレージは別途管理します。同じクラスターに OpenSandbox と LiveKit をインストールするガイドもリポジトリに含まれています。
K3s
deploy/k3s/ は、まっさらな Ubuntu または Debian のホストを、シングルノードの本番環境に仕上げます。K3s と Helm、MySQL と Redis、OpenSandbox、LiveKit、Lyra、TLS のイングレスを揃え、最後にサンドボックスのエンドツーエンドのスモークテストを実行します。
設定
すべての設定は環境変数で、.env.example に説明があります。本番運用の前に、少なくとも次を行ってください。
AUTH_SESSION_SECRETを強力なシークレットに置き換えるDATABASE_URLとREDIS_URLを自分のサービスに向けるWEB_ORIGINをウェブアプリの公開 URL に設定する
モデルプロバイダーのキーとオブジェクトストレージは、デプロイ後に Lyra の設定で構成できます。シークレットは暗号化して保存されます。