Docker (リモート Linux)
これらの手順は、リモートのUbuntuサーバー上でDockerを使用してLibreChatをゼロからインストールする方を対象としています。
このガイドを使用するには、リモートコンピュータまたはVMがデプロイされている必要があります。ローカルインストールでもこのガイドを使用することは可能ですが、元々はクラウドデプロイメント向けに作成されたものであることに留意してください。
⚠️ このガイドは元々 Digital Ocean 向けに作成されたものですが、他のプラットフォームでも手順を適宜変更することで対応可能です。基本的な考え方は変わりません。
Part I: Docker およびその他の依存関係のインストール:
LinuxシステムでDockerをセットアップする方法は多数あります。こちらのガイドに基づいた、最も推奨される方法を順を追って説明します。
UbuntuにおけるDockerインストールの「ベスト」な方法とは、必ずしも「最速」や「最も簡単」であることを意味するわけではありません。これは、長期的なメリット(より迅速なアップデート、セキュリティパッチの適用など)を考慮した、インストールにおける最善の方法を意味します。
1. Dockerの依存関係を更新およびインストールする
まず、パッケージリストを更新し、必要なDocker依存関係をインストールしましょう。
sudo apt update次に、以下のコマンドを使用して依存関係または前提条件となるパッケージをインストールします。
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-releaseインストールに関する注意点
- このガイド全体を通して、[Y/n] (yes/no) のターミナルプロンプトにはすべて「Y」と入力してください。
- 最初の [Y/n] プロンプトの後、サービスを再起動するように求める紫色の画面がいくつか表示されます。
- これが発生するたびに、すでに選択されているデフォルトのオプションに対して、安全にENTERキーを押すことができます。
- ドロップレットのコンソールが切断された場合は、以下の手順を実行してから、中断したところから再開してください:
- 上記で示した通り、再度コンソールにアクセスしてください。
su - <yourusername>を使用して、作成したユーザーに切り替えます。
2. Docker リポジトリを APT ソースに追加する
UbuntuのリポジトリからDocker Engineをインストールする方が簡単ですが、公式のDockerリポジトリを追加することで、より迅速なアップデートが可能になります。そのため、こちらが推奨される方法です。
まず、Dockerリポジトリに接続するために必要なGPGキーを取得しましょう。そのためには、以下のコマンドを使用してください。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg次に、リポジトリをソースリストに追加します。手動で追加することも可能ですが、以下のコマンドを実行することで自動的に追加されます。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null上記のコマンドは、あなたのリリースコードネーム(22.04の場合は jammy、20.04の場合は focal、18.04の場合は bionic)を自動的に入力します。
最後に、パッケージを再度更新してください。
sudo apt updateGPGキーの追加を忘れると、上記の手順はエラーメッセージとともに失敗します。そうでなければ、UbuntuへのDockerのインストールを進めましょう。
3. Docker をインストールする
docker.io と docker-ce の違いは何ですか?
docker.io は、一部の人気 Linux ディストリビューション(Ubuntu/Debian など)で提供されている docker パッケージです。一方、docker-ce は公式 Docker リポジトリから提供される docker パッケージです。通常、docker-ce の方がより最新であり、推奨されます。
次に、docker-ce(docker.ioパッケージではありません)をインストールします。
sudo apt install docker-ce紫色の画面は、ENTERキーを押すことを意味します。 :)
推奨: コマンドをシームレスに使用できるように、作成したユーザーが docker グループに追加されていることを確認してください:
sudo usermod -aG docker $USERそれでは、すべてが正常であることを確認するためにシステムを再起動しましょう。
sudo reboot再起動後、ブラウザのdropletコンソールを使用している場合は、リロードをクリックしてコンソールに戻るまで待機してください。
注意: sudo reboot で再起動した後は、必ず以前設定したユーザーに su - <yourusername> で切り替えてください。
4. UbuntuでDockerが実行されていることを確認する
UbuntuでDockerが実行されているかを確認する方法はいくつかあります。その一つの方法は、以下のコマンドを使用することです:
sudo systemctl status dockerステータスが active (running) と表示されているはずです。
CTRL (または CMD) + C を押して、このログを終了します。
5. Docker Compose をインストールする
ステップ2ですでにDockerの公式リポジトリを追加済みであるため、公式Composeプラグインを使用してDocker Composeをインストールするのは簡単です。
sudo apt install docker-compose-pluginインストールを確認する:
docker compose version注: Docker Compose v2 では、従来の
docker-composeではなくdocker composeコマンド(ハイフンなし)を使用します。本ガイドのすべてのコマンドは、このモダンな構文を使用しています。
6. 本ガイドの一部として、git と npm をインストールしておくことを推奨します:
技術的に必須ではありませんが、gitとnpmを用意しておくと、インストールやアップデートが非常に簡単になります:
sudo apt install git nodejs npmマトリックスのラインを流しましょう。
以下のコマンドで、これらのパッケージが正常にインストールされたことを確認できます。
git --version
node -v
npm -v注: これにより、古いバージョンの Node.js および npm がインストールされる可能性があります。LibreChat をホスト上で直接実行する場合は、Node.js
v24.16.0および npmv11.16.0を使用してください。この Docker ベースのガイドでは、LibreChat はコンテナ内で実行されるため、ホスト側の Node.js バージョンは関係ありません。
Dropletのセットアップが完了しましたので、次はアプリ自体のセットアップを行います。
パート II: LibreChat のセットアップ
1. リポジトリをクローンする
droplet コマンドラインから(rootではなく、あなたのユーザーとして):
# clone down the repository
git clone https://github.com/danny-avila/LibreChat.git
# enter the project directory
cd LibreChat/2. LibreChatの設定ファイルと環境変数ファイルを作成する
設定 (librechat.yaml) ファイル
次に、LibreChat Config file、別名 librechat.yaml を作成します。これにより、アプリの設定やカスタムエンドポイントのカスタマイズが可能になります。
アプリをさらにカスタマイズするかどうかにかかわらず、使用している deploy-compose.yml ファイルには必須となるため、開始するために最小限の値で作成します。
nano librechat.yamlエディタ画面が表示されますので、以下を貼り付けてください:
# For more information, see the Configuration Guide:
# https://www.librechat.ai/docs/configuration/librechat_yaml
# Configuration version (required)
version: 1.3.5
# This setting caches the config file for faster loading across app lifecycle
cache: trueCTRL + X でエディタを終了し、Y を押して保存し、ENTER で確定します。
設定の検証
librechat.yaml ファイルに検証エラーが含まれている場合、LibreChat はエラー(終了コード 1)で終了します。このフェイルファスト(fail-fast)の動作により、デプロイの初期段階で設定の問題を確実に検出できます。
デプロイする前に、YAML Validator を使用して設定を検証してください。CI/CDパイプラインがサーバーを起動する場合、設定が無効であれば即座に失敗するため、設定ミスがある状態でのデプロイを防ぐことができます。
環境 (.env) ファイル
デフォルト値は、アプリを起動して実行を開始するのに十分であり、Webアプリから認証情報を入力できるようになっています。
# Copies the example file as your global env file
cp .env.example .envただし、セキュリティ向上のため、"secret" 値をデフォルト値から変更することを強く推奨します。変更していない場合、APIの起動ログに警告が表示されます。
便利なように、以下のコマンドを実行して独自の値を生成することができます:
https://www.librechat.ai/toolkit/creds_generator
nano .env
# FIND THESE VARIABLES AND REPLACE THEIR DEFAULT VALUES!
# Must be a 16-byte IV (32 characters in hex)
CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb
# Must be 32-byte keys (64 characters in hex)
CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418インスタンスの全ユーザーが利用できるように認証情報を設定したい場合は、このファイルを編集している間にそれらを追加してください。
OPENAI_API_KEY=sk-yourKey以前と同様に、CTRL + X でエディタを終了し、Y を押して保存し、ENTER を押して確定します。
以上です!
ただし、詳細な設定を行うには、必要に応じて .env ファイルを編集し、ファイル内のコメントや以下のリソースを必ずお読みください。
# if editing the .env file
nano .envこれは注意が必要な環境変数の一つです。アカウントを作成した後に設定したい場合、これによって外部からのサインアップを無効にすることができます。
ALLOW_REGISTRATION=falseリソース:
3. Dockerを起動する
# should already be running, but just to be safe
sudo systemctl start docker
# confirm docker is running
docker infoこれでアプリコンテナを起動できます。初回は完全なコマンドを使用し、以降は省略形のコマンドを使用できます。
sudo docker compose -f ./deploy-compose.yml up -d必要であればターミナルを閉じても問題ありません。Dockerアプリは引き続き実行されます。
注: これは、このデプロイ環境向けに最適化された特別な compose ファイルを使用しています。ここでの設定をさらにカスタマイズしたい場合は、deploy-compose.yml および Dockerfile.multi ファイルを調査して、それらがどのようにセットアップされているかを確認してください。この環境では適切にビルドを行うための十分な RAM がないため、イメージのビルドは行っていません。その代わりに、main ブランチへのプッシュ後に自動的にビルドされる、LibreChat の最新の dev-api イメージをプルしています。
LibreChat で使用するドメインを設定する場合、この compose ファイルは client/nginx.conf にある nginx ファイルを使用します。これに関する手順は以下のパート V に記載されています。
4. アプリケーションが起動したら、http://yourserverip からアクセスできます
ドロップレットのページに戻ってサーバーのIPアドレスを取得し、コピーしてブラウザに貼り付けてください!
サインアップ、ログインして、あなた自身のプライベートなリモートLibreChatをお楽しみください :)
パート III: LibreChat の更新
上記の手順がすべて正常にインストールされており、gitの履歴を編集していない限り、このステップは非常に簡単に行えるようにしています。
注: client/nginx.conf への編集など、独自のコミットを含む編集済みブランチで作業している場合は、config/deployed-update.js を確認し、必要に応じてコマンドを手動で実行してください。これに関する詳細はパート V を参照してください。
自動更新を実行するには、以下を実行してください
npm run update:deployedDockerコンテナの停止
npm run stop:deployedこれは単に
docker compose -f ./deploy-compose.yml downを実行します。
Dockerコンテナの起動
npm run start:deployedこれは単に
docker compose -f ./deploy-compose.yml up -dを実行するものです。
アクティブなDockerコンテナを確認する
docker psスクリプトで問題が発生した場合は、手動でアップデートすることも可能です。
docker compose -f ./deploy-compose.yml down# Linux/Mac
docker images -a | grep "librechat" | awk '{print $3}' | xargs docker rmi
# Windows (PowerShell)
docker images -a --filter "reference=registry.librechat.ai/danny-avila/librechat*" --format "{{.ID}}" | ForEach-Object { docker rmi $_ }
docker images -a --filter "reference=ghcr.io/danny-avila/librechat*" --format "{{.ID}}" | ForEach-Object { docker rmi $_ }git pulldocker compose -f ./deploy-compose.yml pulldocker compose -f ./deploy-compose.yml upPart IV: NGINXファイルの編集 (カスタムドメインおよび高度な設定用)
何らかの理由でNGINXファイルを編集したい場合(サーバーをカスタムドメインに向ける場合など)は、以下を使用してください:
npm run stop:deployednano client/nginx.confカスタムドメインの設定やその他のNGINXへの変更については説明しません。カスタムドメインの利用を開始するには、Cloudflareガイド、Traefikガイド、またはNGINXガイドを参照してください。
ただし、このセットアップでカスタムドメインを使用する場合にLibreChat側で編集すべき箇所を説明します。
NGINXがデフォルトでプロキシパスとして使用されているため、以下の箇所のみを編集します:
# before
server_name localhost;
# after
server_name custom.domain.com;注: これは、メインの docker-compose.yml ファイルとは異なり、deploy-compose.yml ファイルがデフォルトで NGINX を使用しているために機能します。いつものように、必要に応じて compose ファイルを設定できます。
次に、これらの変更を別のブランチにコミットします:
# create a new branch
# example: git checkout -b edit
git checkout -b <branchname>
# stage all file changes
git add .gitブランチに変更をコミットするには、git上で本人確認を行う必要があります。これらは偽の値でも構いませんが、このブランチをLibreChatのフォークしたリポジトリにプッシュする場合にGitHubと同期させたいのであれば、GitHubのメールアドレスを使用してください。
# these values will work if you don't care what they are
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
# Now you can commit the change
git commit -m "edited nginx.conf"編集されたブランチでの更新は、これまでとは少し異なる動作になります。
npm run rebase:deployedこれで準備完了です!
警告 ブランチを大幅に編集し始めるとマージコンフリクトが発生します。その仕組みを理解していない限り、この操作は推奨されません。
この環境でのコードの変更は、composeファイルがGitHubによって自動ビルドされたDockerイメージをプルしているため、反映されませんのでご注意ください。
パート V: 最新のメインブランチではなく最新の安定版リリースを使用する
デフォルトでは、このセットアップはLibreChatのmainブランチへの最新の更新をプルします。最新のタグで定義されている「安定版」リリースを使用したい場合は、deploy-compose.ymlを編集し、パートVで説明した通りに変更をコミットする必要があります。その場合、最新の機能をすぐに利用できなくなることに注意してください。
deploy-compose.yml を編集しましょう:
nano deploy-compose.ymllibrechat-dev-api を librechat-api に変更します:
image: registry.librechat.ai/danny-avila/librechat-api:latestパートVと同様にステージングとコミットを行えば、すべて完了です!
このガイドはいかがでしたか?