Open-WebUI の動作環境の構築

解説

Jetson Orin Nano に、Open-WebUI の動作環境を構築する方法についてまとめます。

Open-WebUIの実行環境として、開発元から提供されているDockerイメージを利用します。

前提

Ollama の動作環境の構築」を実施していない場合は、実施します。

Open-WebUI コンテナ起動コマンド

Open-WebUI Dockerイメージのコンテナ起動コマンドは、開発元ページに記載があり、以下です。


コマンドオプション解説

-d
Detachモードで実行します。コンテナをバックグラウンドで起動します。
-p 3000:8080
ホストのポート3000にアクセスすると、コンテナの内部でポート8080で動作しているアプリケーションに接続します。
-v open-webui:/app/backend/dat
ホストの「open-webui」ディレクトリをコンテナの「/app/backend/dat」ディレクトリとしてマウントします。 Ollamaは、チャット履歴や設定ファイルを「/app/backend/dat」ディレクトリ内に保存します。コンテナを削除してもチャット履歴や設定ファイルは削除されないように、ホストのディレクトリをマウントします。
--name open-webui
起動したコンテナに「open-webui」という名前を付けます。
ghcr.io/open-webui/open-webui:main
起動するコンテナの元となるイメージとして、「ghcr.io/open-webui/open-webui:main」を指定します。

Open-WebUI コンテナ起動スクリプトファイルの作成

コンテナ起動コマンドは文字数が多いので、実行する際にタイピングするのが少し面倒です。短い文字数のタイピングで実行できるようにスクリプトファイル化します。

今回は「docker-run-openwebui.sh」というスクリプトファイルを作成することとしました。

「docker-run-openwebui.sh」というスクリプトファイルを作成し、内容を以下のようにします。


コマンドオプション解説

-d
Detachモードで実行します。コンテナをバックグラウンドで起動します。
--rm
コンテナを終了したらコンテナを削除します。
--network host
コンテナが Jetson ホストのネットワークとポートを使用できるようにします。
--volume ${HOME}/open-webui:/app/backend/data
ホストの「${HOME}/open-webui」ディレクトリをコンテナの「/app/backend/data」ディレクトリとしてマウントします。 Ollamaは、チャット履歴や設定ファイルを「/app/backend/data」ディレクトリ内に保存します。コンテナを削除してもチャット履歴や設定ファイルは削除されないように、ホストのディレクトリをマウントします。
--env OLLAMA_BASE_URL=http://127.0.0.1:11434
環境変数「OLLAMA_BASSE_URL」を設定します。Open WebUI が接続するOllamaサーバーを指定します。
--name open-webui
起動したコンテナに「open-webui」という名前を付けます。
ghcr.io/open-webui/open-webui:main
起動するコンテナの元となるイメージとして、「ghcr.io/open-webui/open-webui:main」を指定します。

以下のコマンドを実行し、スクリプトファイルに実行権限を付与します。

Open-WebUI コンテナの起動

以下のコマンドを実行し、Open-WebUI コンテナを起動します。


初回のコンテナ起動は、コンテナイメージのダウンロードと解凍が行われるため、時間を要します。

コンテナが起動すると、コンテナはバックグラウンドで起動され、ホスト上での作業のままです。

Ollama コンテナの起動

以下のコマンドを実行します。


Ollama の動作環境の構築」で作成した環境のコンテナが起動します。

コンテナが起動すると、Terminalでの表示が「root@ホスト名:/#」に変わり、コンテナ上での作業になります。
以降の作業は、指定がない場合は、コンテナ上での作業です。

Ollamaサーバーの起動

以下のコマンドを実行し、Ollamaサーバーを起動します。コマンドの末尾に「&」を付けて、起動するサーバーをバックグラウンド実行とします。


Ollamaサーバーはバックグラウンド起動しているので、同じTerminalでコマンドの入力が可能です。

Open-WebUI にブラウザからアクセス

同一ネットワーク上のPCのブラウザアプリ(ChromeやEdge)から、
http://[Jetson Orin Nano のIPアドレス]:8080
もしくは
http://[Jetson Orin Nano のホスト名]:8080
にアクセスします。

Open-WebUI の画面が表示されます。

「開始」をクリックします。

「管理者アカウント作成」画面が表示されます。

「名前」「メールアドレス」「パスワード」を入力し、「管理者アカウントを作成」ボタンをクリックします。
(「Open WebUIは外部接続は行わず、データはローカルでホストされているサーバー上に安全に保持されます。」
 すなわち、作成される管理者アカウントのデータ、チャット履歴は、ローカルでホストされているサーバー上にのみ保存されます。)

チャット画面が表示されます。

LLMモデルとのチャット

画面上部の「モデルを選択」プルダウンから、LLMモデルを選択します。

メッセージ入力欄にテキストを入力し、エンターキーを押下すると、応答が開始します。

「大規模言語モデルについて教えてください。」と入力し、回答を生成している途中の画面

Ollama コンテナの終了

以下のコマンドを実行し、コンテナを終了します。


コンテナが終了すると、Terminalでの表示が「ユーザー名@ホスト名:/~$」に変わり、ホスト上での作業に戻ります。

以降の作業は、指定がない場合は、ホスト上での作業です。

参考) Open-WebUI コンテナの終了

バックグラウンドで起動している Open-WebUI コンテナを終了するには、以下のコマンドを実行します。

関連ページ

Ollama の動作環境の構築

Open WebUI の動作環境の構築 - 【本ページ】