Open WebUI のインストールと OmniProxy の設定
ローカルモデルとクラウドモデルを同じチャット画面で使いたいものの、導入や接続が複雑ではないかと心配していませんか。Open WebUI なら使い慣れたチャット画面を利用でき、インストール後に手順どおり接続情報を入力すれば使い始められます。
Open WebUI は、自分のパソコンやサーバーに導入でき、完全なオフライン環境でも動作するチャットインターフェースです。特定のモデルには依存していません。Ollama のようにローカルでモデルを実行するツールにも、OpenAI と同じリクエスト形式でモデルサービスを提供する OpenAI-compatible API にも接続できます。これにより、ローカルモデルとクラウドモデルを同じ画面で切り替えられます。
チームや組織での長期利用にも適しています。新しい機能は、Open WebUI が新機能を試すための製品である Computer に先に追加されます。
インストール前の準備
Open WebUI は macOS、Linux、Windows で利用できます。Docker、Python、または Kubernetes を使ってインストールできます。Docker はアプリケーションと実行環境を比較的独立したコンテナにまとめるため、推奨される方法です。Docker がない場合は、以下の動作確認済み Python コマンドも使用できます。Kubernetes はコンテナのデプロイと管理に使用するシステムです。該当する手順については、末尾の Quick Start を参照してください。
公式推奨
Docker
- 1 行の docker run
- ブラウザーで 3000 を開く
- データはボリューム内に保存
チャットだけ使いたい
slim イメージ
- ダウンロードサイズが小さい
- タグを :slim に変更
- チャット機能は利用可能
ここでは詳しく扱わない
ほかの 2 つの方法
- Python で手動インストール
- Kubernetes へデプロイ
- 公式の Quick Start を参照
開始前に、以下を準備してください。
- インストール済みで、実行できる状態の Docker。
- 自分だけが使用するシークレット文字列。
openssl rand -hex 32を実行して生成し、WEBUI_SECRET_KEYに設定します。この値は変更せずに保存してください。コンテナを再作成するときに変更すると、ログイン中のユーザーがログアウトされます。 - 実行中の OmniProxy と、その時点のモデル一覧にあるモデル ID。モデル ID は、使用するモデルを選ぶ際の完全な名前です。
インストールと初回起動
ターミナルを開き、Quick Start のコマンドを実行します。最初に your-secret-key を先ほど生成したシークレット文字列へ置き換えてください。
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main
このコマンドの各項目には、次の役割があります。
-p 3000:8080:このパソコンのポート 3000 から画面を開けるようにします。3000 が使用中の場合は、左側の数字を変更してください。-v open-webui:/app/backend/data:チャット、ユーザー、設定をデータボリュームに保存します。データボリュームはコンテナの外部でデータを長期保存する場所です。コンテナを更新しても内容が残るため、この項目は削除しないでください。--add-host=host.docker.internal:host-gateway:コンテナから、このパソコン上で動作しているほかのサービスへアクセスできるようにします。--restart always:パソコンの再起動後にコンテナを再度起動します。
コマンドの実行後、ブラウザーで http://localhost:3000 を開き、画面の案内に従って最初のアカウントを作成します。
API 経由のチャットだけを利用する場合は、イメージタグを :main から :slim に変更できます。slim は容量の小さいイメージで、コンテナ内で動作するローカル音声モデルと埋め込みモデルは含まれていませんが、チャット画面は引き続き利用できます。これらのローカル機能が必要な場合は、:main を使い続けてください。
更新するときの手動手順は、最初に docker rm -f open-webui、次に docker pull ghcr.io/open-webui/open-webui:main を実行し、その後、同じ docker run コマンドで再起動します。データボリュームと WEBUI_SECRET_KEY はどちらも変更しないでください。
Docker がない場合
Quick Start には Python を使うインストール方法もあります。2026-10-09 に、以下のコマンドを macOS で使用して Open WebUI v0.11.4 をインストールし、1回のチャットを完了しました。このとき、パソコンには Docker Desktop がありませんでした。
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
起動後、ブラウザーで http://localhost:8080 を開きます。これは Python によるインストールで使用するポートであり、Docker の 3000 ではありません。
初回起動時には埋め込みモデルがダウンロードされるため、数分かかる場合があります。埋め込みモデルは、テキストを検索や照合に適したデータへ変換します。ログインページが表示されてから次へ進んでください。最初に登録したアカウントが管理者になります。インターフェースの言語はシステム設定に従い、このテストでは簡体字中国語で表示されました。
DATA_DIR には、Open WebUI のデータを保存する、長期的に維持されるディレクトリを指定してください。設定しない場合、データが一時ディレクトリに保存され、終了後に失われる可能性があります。WEBUI_SECRET_KEY を設定していない場合、プログラムは現在のディレクトリに .webui_secret_key を書き込みます。保持する予定のディレクトリから起動するか、この変数を自分で設定してください。
OmniProxy から接続情報を取得する
自分の OmniProxy から、以下の3項目をコピーします。
URL: https://your-omniproxy-origin.example/v1
API Key: <YOUR_OMNIPROXY_API_KEY>
Model ID: OmniProxy の現在のモデル一覧からコピー
URL は Open WebUI が API に接続するためのアドレスで、末尾を /v1 にします。その後ろに /chat/completions を追加しないでください。この部分は Open WebUI が自動的に追加します。
モデル ID は、OmniProxy の現在の一覧から完全な形でコピーしてください。ID にプロバイダーを示すプレフィックスやスラッシュが含まれている場合も、そのまま残します。以下の2つの短い名前は、2026-10-09 時点のプロバイダー資料との照合用です。現在の一覧にない場合は使用しないでください。
- Claude Sonnet 5.5 の Claude API ID:
claude-sonnet-5-5 - Gemini 3.8 Flash の API 名:
gemini-3.8-flash
プロバイダーのキーを Open WebUI に入力しないでください。ゲートウェイがキーを検証しない場合は API キーを空欄にし、別のキーを作らないでください。
ブラウザー
ローカルの 3000
- チャットページを開く
- 先に登録を完了
- 次に設定を開く
コンテナ内
Open WebUI
- localhost は指定しない
- ホストマシン名を使用
- URL は /v1 で終える
同じコンピューター
OmniProxy
- キーはゲートウェイに保持
- モデル一覧はゲートウェイに合わせる
- 次に呼び出し履歴を確認
モデルサービスがホストマシン上で動作し、Open WebUI が Docker コンテナ内で動作している場合は、URL の localhost を host.docker.internal に置き換えてください。ホストマシンとは、Docker を直接実行しているパソコンのことです。OmniProxy がこのパソコンだけで待ち受けている場合、URL は http://host.docker.internal:ポート/v1 と指定できます。「ポート」は OmniProxy が実際に使用しているポート番号へ置き換えてください。
Open WebUI を前のセクションにある Python コマンドでローカル実行し、OmniProxy もローカルで動作している場合は、アドレスに 127.0.0.1 または localhost を使用します。この場合、host.docker.internal は指定しないでください。
ツール設定を入力する
2026-10-09 時点の v0.11.4 の簡体字中国語インターフェースでは、英語の説明にある Settings > Admin > Connections と名称が異なります。実際に表示される項目に沿って操作してください。
- 左側のサイドバーを展開します。
- 下部のユーザーメニューをクリックします。
- 設定をクリックします。
- 下部の管理者グループにある外部接続をクリックします。
- OpenAI APIを開きます。
- OpenAI API 接続を管理の右側にある + をクリックします。
- 表示された接続を編集画面で、URL を
/v1まで入力します。API タイプは Chat Completions のままにします。 - 認証方式は**キー(Bearer)**のままにします。Bearer は、API キーをリクエストに含めて認証する方式です。OmniProxy からキーを受け取っている場合は、API キーに入力します。ゲートウェイがキーを検証しない場合、この欄は空欄にします。2026-10-09 のテストでは、空欄のまま接続確認と1回のチャットに成功しました。
- URL の横にある接続を確認をクリックします。OmniProxy が
/modelsを提供している場合、ここでモデル一覧が取得されます。 - 詳細設定を開きます。モデル IDを空欄にすると、このアドレスの
/modelsが返すすべてのモデルを使用します。接続確認に失敗した場合のみ、モデル ID を追加に一覧内の完全な ID を入力してから、追加をクリックします。各 ID は1回だけ追加し、前後の空白は削除してください。 - このウィンドウの保存をクリックし、続いて外部接続ページ右下の保存をクリックします。
設定の保存だけでは、接続確認の代わりになりません。接続を確認では、利用可能なモデルを一覧表示するための API である接続先の /models をリクエストします。一部のサービスにはこの API がないため、確認時にエラーが発生してもチャットは利用できる場合があります。その場合は、モデル ID を手動で追加してください。
実際のタスクで確認する
チャットページに戻り、入力欄の横にあるモデルメニューを開いて、OmniProxy の一覧にある完全な ID を選択します。1語だけで答えるよう依頼するなど、非常に短いメッセージを送信してください。チャット欄に実際の応答が表示される必要があります。
2026-10-09 に、v0.11.4 の Python インストール環境でこのチャットを完了しました。Docker は引き続き推奨される方法ですが、このテストでは Docker 環境での再確認は行っていません。
次に OmniProxy の呼び出し履歴を開き、このリクエストの送信元とモデル ID を確認します。保存に成功したことだけ、またはモデルがメニューに表示されたことだけでは、完了とは見なしません。
インターフェース
モデルを選択できる
- Connections が保存されている
- モデルが一覧に表示される
- 短い質問を 1 つ送る
応答
チャット欄に回答がある
- 空のメッセージではない
- 接続エラーではない
- 別のモデルでもう一度試す
記録
ゲートウェイで確認できる
- 送信元は今回の接続
- モデル ID が一致している
- ページにキーが入力されていない
よくあるエラー
- コンテナ内で
localhostまたは127.0.0.1を指定している:これらのアドレスはホストマシンではなく、コンテナ自体を指します。host.docker.internalに変更し、起動コマンドに--add-host=host.docker.internal:host-gatewayが含まれていることを確認してください。Open WebUI がコンテナ内で動作していない場合は反対に、ローカルアドレスを使用します。 - ブラウザーで開けない:Docker の場合は 3000、Python の場合は 8080 を確認してください。初回起動時は、埋め込みモデルのダウンロードが完了するまで待つ必要があります。
docker psでコンテナが実行中か確認できます。3000 が使用中の場合は、-pの左側にあるポート番号を変更してください。 - モデルメニューの ID がプロバイダーの短い名前より長い:スラッシュを含め、メニューに表示されている完全な ID を使用してください。
- 更新後に全員がログアウトした:
WEBUI_SECRET_KEYが変更されています。最初に生成したシークレット文字列を使って再起動してください。 - 接続を確認に失敗する:まず詳細設定でモデル ID を手動追加し、実際に短いチャットを送信して確認してください。一部のサービスには
/modelsがないため、確認時にエラーが発生してもチャットは利用できる場合があります。 - モデルが存在しない:OmniProxy の現在の一覧から ID をもう一度コピーし、古い名前を使い続けないでください。
公式リファレンス
インストールコマンドについては Open WebUI Quick Start を参照してください。接続手順については OpenAI-compatible 接続ガイド を参照してください。例で使用したモデル ID については、Claude モデル概要 と Gemini モデル一覧 を参照してください。
プレースホルダーをすべて独自の設定値に置き換えてください。実際のキーを公開しないでください。
保存された結果や HTTP 200 だけでは完全なエージェント互換性が証明されません。OmniProxy の呼び出し記録でソースとモデルを確認してください。