Open WebUIは、Ollamaなどのモデルサーバーに接続し、ブラウザーで会話するための画面です。
Open WebUIだけを起動しても、回答を生成するモデルが自動で用意されるわけではありません。
まずOllamaでモデルが動くことを確かめ、それから画面を追加すると導入時の問題を分けられます。
この記事は、WindowsまたはmacOSのDocker Desktopと、同じPCにインストールしたOllamaを組み合わせる手順です。
最初は本人のPC内だけで使い、LAN共有やインターネット公開は行いません。
2026年10月17日に公式資料を確認して構成例を作成しており、各OSでの実機インストール結果ではありません。
最初に構成を分ける:画面は3000番、Ollamaは11434番
| 役割 | 動かす場所 | 使うアドレス |
|---|---|---|
| ブラウザーのチャット画面 | ホストPCからDockerへ接続 | http://127.0.0.1:3000 |
| モデルの実行 | ホストPCのOllama | PC上ではhttp://127.0.0.1:11434 |
| Open WebUIからOllamaへの通信 | コンテナからホストPCへ接続 | http://host.docker.internal:11434 |
ブラウザーが画面を開けることと、画面の裏側からモデルへ接続できることは別です。
Open WebUIが表示されてもモデル一覧が空なら、Ollamaへの経路を調べます。
この通信の流れは公式のプロバイダー接続説明で確認できます。
1.DockerとOllamaが動くことを確認する
Docker Desktopを起動し、ターミナルで次を確認してください。
Docker Composeのバージョンが表示され、Dockerサーバーへ接続できる状態で進めます。
docker version
docker compose version
次にOllamaを起動し、ローカルで使うチャットモデルを一つ用意します。
すでに使っているモデルで構いません。
初めて導入する場合はOllamaの使い方入門を先に確認してください。
WindowsのPowerShellからは、次のコマンドで一覧を取得できます。
macOSではcurl.exeをcurlに変えます。
curl.exe http://127.0.0.1:11434/api/tags
一覧が返ったら、Ollama側でそのモデルに短い文章を送って回答できることを確認します。
この時点で失敗する場合は、Open WebUIを追加する前にOllamaの起動やモデルの読み込みを直します。
2.専用フォルダーにCompose設定を保存する
新しい作業フォルダーを作り、その中で操作します。
既存のOpen WebUIを更新する手順ではなく、新規導入用です。
同じフォルダーに設定ファイルや履歴がある場合は、この例で上書きしないでください。
以下をcompose.yamlとして保存します。
公式Quick Startで案内される標準イメージ・永続ボリューム・固定のシークレットキーを使い、画面の公開先をローカルPCに限定した構成です。
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "127.0.0.1:3000:8080"
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
OLLAMA_BASE_URL: "http://host.docker.internal:11434"
WEBUI_SECRET_KEY: "${WEBUI_SECRET_KEY:?Set WEBUI_SECRET_KEY in .env}"
volumes:
- open-webui-data:/app/backend/data
restart: unless-stopped
volumes:
open-webui-data:
mainは更新されるタグです。
継続運用では、動作を確認したリリースのタグやイメージのdigestを控えてください。
この記事のコマンドを実行した日によって、取得されるイメージは変わります。
| 設定 | 目的 |
|---|---|
| 127.0.0.1:3000:8080 | このPCの3000番からだけ画面へアクセスする |
| open-webui-data | コンテナとは別にチャット・ユーザー・設定のデータを保持する |
| OLLAMA_BASE_URL | ホストPCのOllamaを接続先にする |
| WEBUI_SECRET_KEY | コンテナを作り直しても同じシークレットキーを使う |
ポートを127.0.0.1に限定する指定は、Docker Desktopのネットワーク資料に基づいています。
別PCからの共有を始める際は、この設定に加えて認証・通信範囲・アクセス元の設計が必要です。
3.シークレットキーを一度だけ作り、起動する
Composeと同じフォルダーに.envを用意し、WEBUI_SECRET_KEY=の後にランダムな秘密の値を設定します。
Pythonが入っているWindowsでは、次のコマンドで32バイトの乱数を16進表記にして保存できます。
py -c "import secrets; open('.env', 'x', encoding='utf-8').write('WEBUI_SECRET_KEY=' + secrets.token_hex(32) + '\n')"
macOSではpyをpython3に変えます。
Pythonがない場合は、公式資料が示すopenssl rand -hex 32で生成する方法もあります。
上のPython例は、既存の.envがあるとエラーで止まり、上書きしません。
秘密の値を記事へのコメントや公開リポジトリに貼り付けないでください。
Compose設定を検証して起動します。
--quietを付けた検証では、展開済みのシークレットキーを画面に一覧表示しません。
docker compose config --quiet
docker compose up -d
docker compose ps
初回はイメージ取得と起動に時間がかかります。
docker compose logs --tail=80 open-webuiで状況を確認し、起動途中の状態とエラー終了を区別してください。
4.ブラウザーで開き、Ollamaの接続先を確認する
同じPCのブラウザーでhttp://127.0.0.1:3000を開き、初期アカウントを作成します。
初期セットアップの管理者で、Settings → Admin → Connectionsへ進み、Ollamaの接続URLを確認してください。
今回の構成では、接続URLはhttp://host.docker.internal:11434です。
Ollama接続欄には、OpenAI互換API用の/v1を付けず、OllamaのサーバーURLを指定します。
出典は公式のOllama接続手順です。
接続確認が通らない場合は、Ollamaの待ち受け先を確認します。
Windowsのアプリ版では、Ollamaを終了してからユーザー環境変数にOLLAMA_HOSTを作り、値を0.0.0.0:11434としてアプリを起動し直します。
macOSのアプリ版ではlaunchctl setenv OLLAMA_HOST "0.0.0.0:11434"を実行してから再起動します。
この設定はOllama側の受け付け範囲を広げます。
Dockerから必要な接続だけをファイアウォールで許可し、ルーターで11434番をインターネットへ公開しないでください。
環境変数の扱いはOllama公式FAQに従います。
元へ戻す場合は追加した環境変数を削除して再起動します。
macOSのlaunchctl設定はlaunchctl unsetenv OLLAMA_HOSTで解除できます。
- Ollamaとの接続確認が通ることを確かめる。
- チャット画面のモデル選択で、Ollamaに入れたローカルモデルを選ぶ。
- 「日本語で短い挨拶を1文だけ返してください」と送る。
- 回答が出たら、新しい会話でも同じモデルが選べるか確認する。
最初はファイル添付・Web検索・ツール実行を追加せず、文章の往復だけを通します。
一つずつ機能を増やすと、後から失敗した場合に原因を追えます。
モデルが出ない・画面が開かないときの確認表
| 症状 | 確認する箇所 |
|---|---|
| 3000番の画面を開けない | Docker Desktopの起動、compose ps、3000番の競合、コンテナのログ |
| 画面は開くがモデルがない | Ollama側の一覧、管理者の接続URL、モデルの表示フィルター |
| PCからOllamaは見えるが、画面からは見えない | コンテナからホストへの通信、Ollamaの待ち受け先 |
| 環境変数を変えても接続先が戻らない | 管理画面に保存済みの接続設定 |
| 一覧は出るが回答で止まる | Ollama単体での生成、モデル読み込み、メモリ、両方のログ |
Open WebUIには保存される設定があり、初回起動後の変更は管理画面側の値も確認します。
接続URLを直すためにデータ用ボリュームを削除すると、会話やアカウントまで失う可能性があります。
まず公式の設定の扱いと管理画面を確認してください。
ホスト側Ollamaがループバックのみで待ち受けていると、Dockerからの通信を受けられない構成があります。
必要に応じてOLLAMA_HOSTと接続元の通信許可を確認します。
ファイアウォール全体を無効にするのではなく、Ollamaを使う経路に限定してください。
詳しくは公式の接続エラー対処を参照できます。
停止しても履歴を残すには
一時的に止めるなら、同じフォルダーで次を実行します。
docker compose stop
再開はdocker compose startです。
コンテナを作り直す場合も、データ用ボリュームを維持する必要があります。
docker compose down -vのようにボリュームを削除する操作は、履歴を残したい用途では使いません。
設定ファイルと.envも保存し、更新前にはデータのバックアップを取ってください。
削除範囲はDocker公式のdownコマンドの説明で確認できます。
ローカル利用でも、選んだ接続先を確認する
この構成でローカルのOllamaモデルを選べば、生成はそのOllamaサーバーで行われます。
ただし、後からクラウドモデル・外部の検索・埋め込みAPIを追加した場合は、それぞれの接続先へデータが送られることがあります。
画面を自分のPCで動かしていることだけで、全機能がローカル処理になるとは判断しないでください。
モデルの読み込みや回答速度に問題がある場合は、ローカルLLMのメモリ不足の確認手順へ進めます。
まず画面・接続・生成の3段階を通し、その後で用途に必要な機能を追加していきましょう。
