Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

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キーを押すことができます。

image

  • ドロップレットのコンソールが切断された場合は、以下の手順を実行してから、中断したところから再開してください:
    • 上記で示した通り、再度コンソールにアクセスしてください。
    • 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 update

GPGキーの追加を忘れると、上記の手順はエラーメッセージとともに失敗します。そうでなければ、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コンソールを使用している場合は、リロードをクリックしてコンソールに戻るまで待機してください。

image

注意: sudo reboot で再起動した後は、必ず以前設定したユーザーに su - <yourusername> で切り替えてください。

4. UbuntuでDockerが実行されていることを確認する

UbuntuでDockerが実行されているかを確認する方法はいくつかあります。その一つの方法は、以下のコマンドを使用することです:

sudo systemctl status docker

ステータスが active (running) と表示されているはずです。

image

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

image

注: これにより、古いバージョンの Node.js および npm がインストールされる可能性があります。LibreChat をホスト上で直接実行する場合は、Node.js v24.16.0 および npm v11.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: true

CTRL + 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

image

必要であればターミナルを閉じても問題ありません。Dockerアプリは引き続き実行されます。

注: これは、このデプロイ環境向けに最適化された特別な compose ファイルを使用しています。ここでの設定をさらにカスタマイズしたい場合は、deploy-compose.yml および Dockerfile.multi ファイルを調査して、それらがどのようにセットアップされているかを確認してください。この環境では適切にビルドを行うための十分な RAM がないため、イメージのビルドは行っていません。その代わりに、main ブランチへのプッシュ後に自動的にビルドされる、LibreChat の最新の dev-api イメージをプルしています。

LibreChat で使用するドメインを設定する場合、この compose ファイルは client/nginx.conf にある nginx ファイルを使用します。これに関する手順は以下のパート V に記載されています。

4. アプリケーションが起動したら、http://yourserverip からアクセスできます

ドロップレットのページに戻ってサーバーのIPアドレスを取得し、コピーしてブラウザに貼り付けてください!

image

サインアップ、ログインして、あなた自身のプライベートなリモートLibreChatをお楽しみください :)

image

image

パート III: LibreChat の更新

上記の手順がすべて正常にインストールされており、gitの履歴を編集していない限り、このステップは非常に簡単に行えるようにしています。

注: client/nginx.conf への編集など、独自のコミットを含む編集済みブランチで作業している場合は、config/deployed-update.js を確認し、必要に応じてコマンドを手動で実行してください。これに関する詳細はパート V を参照してください。

自動更新を実行するには、以下を実行してください

npm run update:deployed

Dockerコンテナの停止

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 pull
docker compose -f ./deploy-compose.yml pull
docker compose -f ./deploy-compose.yml up

Part IV: NGINXファイルの編集 (カスタムドメインおよび高度な設定用)

何らかの理由でNGINXファイルを編集したい場合(サーバーをカスタムドメインに向ける場合など)は、以下を使用してください:

npm run stop:deployed
nano 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.yml

librechat-dev-apilibrechat-api に変更します:

image: registry.librechat.ai/danny-avila/librechat-api:latest

パートVと同様にステージングとコミットを行えば、すべて完了です!

このガイドはいかがでしたか?