メインコンテンツへ移動
AIチュートリアル

セルフホスト型AI向けOpen WebUIのインストールと使い方

pipまたはDockerでOpen WebUIをインストールし、OllamaまたはOpenAI互換APIに接続して、モデルとのチャットを始める方法を解説します。ドキュメント検索、Webコンテンツ、複数モデルでの会話、オフライン運用、GPUアクセラレーション、トラブルシューティング、本番運用向けの機能についても紹介します。

セルフホスト型AI向けOpen WebUIのインストールと使い方

Open WebUIとは?

Open WebUIは、ローカルリソースで構成すれば完全にオフラインで動作するよう設計された、拡張可能なセルフホスト型AIプラットフォームです。ローカルのOllamaモデルやOpenAI互換API向けのブラウザベースインターフェースに加え、検索拡張生成(一般にRAGと呼ばれます)に対応した組み込み推論エンジンを提供します。

個人用のAIワークスペースとして使うことも、チーム向けに展開することもできます。会話機能に加えて、ノート、共有チャンネル、永続メモリ、カレンダー、スケジュール済み自動化、画像生成連携、音声・ビデオ通話、分析、モデル評価、きめ細かなアクセス制御を備えています。

Open WebUIのデモ

主な機能

  • 柔軟なモデル接続:ローカルのOllamaモデルと、LMStudio、GroqCloud、Mistral、OpenRouter、vLLMなどのOpenAI互換サービスを併用できます。
  • ローカルRAG:チャットにドキュメントを追加したり、#コマンドでナレッジライブラリからファイルを取得したりできます。ハイブリッド検索、リランキング、複数の抽出エンジン、9種類のベクトルデータベースに対応しています。
  • モデルとエージェント:カスタム指示、ナレッジ、ツール、動的変数、ユーザーまたはグループ単位のアクセスルールを使って、ベースモデルをラップできます。
  • 拡張性:Filters、Actions、Pipes、Tools、Skillsを追加したり、MCP、MCPO、OpenAPIのツールサーバーに接続したりできます。
  • コラボレーション:ノート、リアルタイムチャンネル、スレッド、リアクション、ピン留め、共有カレンダー、AI支援スケジューリングを利用できます。
  • 複数モダリティ:音声認識、音声合成、音声・ビデオ通話、画像生成・編集エンジンを設定できます。
  • 管理:ロール、グループ、権限、認証、利用状況分析、モデル評価、ストレージ、可観測性を管理できます。
  • 柔軟なデプロイ:pip、uv、Docker、Docker Compose、Kubernetes、Kustomize、Helmを使ってインストールできます。
  • レスポンシブなインターフェース:デスクトップやモバイルでOpen WebUIを使用したり、Progressive Web Appとしてインストールしたりできます。

インストール方法を選択する

ローカルですぐに試す場合は、pipまたはDockerを使用します。pipではPythonからOpen WebUIを直接起動でき、Dockerでは分離された環境にデプロイできるため、標準イメージ、CUDA対応イメージ、Ollama同梱イメージを簡単に選択できます。

重要:すべてのDockerコマンドでopen-webui:/app/backend/dataをマウントしてください。この永続ボリュームにより、コンテナを交換または削除した際にもデータベースやその他のアプリケーションデータが保護されます。

方法1:Python pipでインストールする

プロジェクトで説明されているpipインストールには、Python 3.11が必要です。続行する前に、環境で正しいPythonバージョンが使用されていることを確認してください。

  1. パッケージをインストールします:

    pip install open-webui
  2. サーバーを起動します:

    open-webui serve
  3. ブラウザーでhttp://localhost:8080を開きます。

方法2:DockerでOpen WebUIを実行する

ホストコンピューター上のOllamaに接続する

Dockerと同じコンピューター上ですでにOllamaが実行されている場合は、標準のOpen WebUIイメージを起動し、コンテナからホストに接続できるようホストマッピングを追加します:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

コンテナの起動後、http://localhost:3000にアクセスします。

別のサーバー上のOllamaに接続する

OLLAMA_BASE_URLにリモートOllamaサービスのアドレスを設定します:

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

https://example.comを実際のOllamaサーバーURLに置き換えます。

Nvidia GPUサポートを有効にする

Open WebUIにはCUDAタグ付きイメージが用意されています。実行する前に、LinuxまたはWSLにNvidia CUDAコンテナツールキットをインストールしてください:

docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

OpenAI APIのみを使用する

Ollamaが不要な場合は、OpenAI APIキーを標準イメージに渡します:

docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

your_secret_keyを適切な認証情報に置き換えます。Open WebUIは、その他のOpenAI互換APIにも接続できます。プロバイダー固有の設定については、プロジェクトのドキュメントを参照してください。

Open WebUIとOllamaを1つのコンテナで実行する

:ollamaイメージにはOpen WebUIとOllamaが同梱されています。Ollamaモデル用に1つのボリューム、Open WebUIアプリケーションデータ用に別のボリュームを使用します。

GPUでOllamaを同梱する

docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

CPUのみでOllamaを同梱する

docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

コンテナの起動後、http://localhost:3000を開きます。

基本的な使い方

  1. インターフェースを開く:pip セットアップにはポート 8080、上記の標準 Docker コマンドにはポート 3000 を使用します。

  2. 利用可能なモデルを使用する:設定済みの Ollama または OpenAI 互換接続で公開されているモデルとの会話を開始します。

  3. より充実したプロンプトを作成する:応答は Markdown と LaTeX に対応しているため、構造化された説明、コード、表、数式の記述に適したインターフェースです。

  4. デバイス間で続ける:レスポンシブインターフェースはデスクトップとモバイルで動作し、Progressive Web App に対応しているため、アプリのような操作感を実現できます。

RAG でドキュメントを使用する

ドキュメントを会話に直接追加するか、# コマンドでライブラリから取得します。Open WebUI はコンテンツを抽出してインデックス化し、関連する文章を取得してモデルのコンテキストに挿入できます。RAG スタックは BM25 とベクトルのハイブリッド検索、再ランキング、フルコンテキストモードに対応しています。

大規模なデプロイでは、対応するベクトルデータベースとして ChromaDB、PGVector、Qdrant、Milvus、Elasticsearch、OpenSearch、Pinecone、S3Vector、Oracle 23ai などを利用できます。

Web サイトをチャットに取り込む

# コマンドの後に URL を続けると、Web サイトのコンテンツを会話に取り込めます。必要に応じてモデルが Web コンテンツを取得できるように Open WebUI を設定することもできます。

複数のモデルを比較する

マルチモデル会話では、複数のモデルと並行してやり取りできます。推論、文体、プロバイダーの挙動を比較したい場合に便利です。管理者は組み込みのアリーナ、A/B テスト、ELO ベースのリーダーボードをモデル評価に利用することもできます。

高度な設定のヒント

専門モデルとエージェントを作成する

ベースモデルにカスタム指示、ツール、知識を組み合わせて、専門エージェントを作成できます。動的変数とユーザー単位またはグループ単位のアクセス制御により、チームごとにエージェントを調整できます。コミュニティプリセットはOpen WebUI Communityからインポートすることもできます。

プラットフォームを拡張する

Open WebUI は Filters、Actions、Pipes、Tools、Skills に対応しています。MCP、MCPO、OpenAPI ツールサーバーを通じて外部サービスに接続できます。これらの拡張ポイントにより、カスタム統合、承認フロー、レート制限、追加のデータ接続を実現できます。

チームおよびエンタープライズデプロイを計画する

マルチユーザー環境では、ロール、グループ、権限を使用してアクセスを制御します。Open WebUI は LDAP と Active Directory の統合、信頼済みヘッダーおよび OAuth ベースのシングルサインオン、Okta、Azure AD、Google Workspace などの ID プロバイダー向け SCIM 2.0 プロビジョニングに対応しています。

ストレージには、暗号化を任意で適用できる SQLite または PostgreSQL を使用できます。ファイルはローカル、S3、Google Cloud Storage、Azure Blob Storage に保存できます。Redis ベースのセッションと WebSocket 対応により、ロードバランサーの背後でマルチワーカーおよびマルチノードのデプロイを実現でき、OpenTelemetry はトレース、メトリクス、ログを提供します。

完全にオフラインで運用する

オフライン環境で Open WebUI を実行する場合は、HF_HUB_OFFLINE を 1 に設定して、インターネットからモデルをダウンロードしようとする動作を防ぎます。

export HF_HUB_OFFLINE=1

オフラインデプロイでも、必要なすべてのモデル、依存関係、ローカルサービスを環境内で利用できるようにする必要があります。

開発用イメージは注意して試す

:dev イメージには不安定な最先端の変更が含まれており、バグや未完成の機能が存在する可能性があります。そのリスクを受け入れられる場合にのみ使用してください。

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --add-host=host.docker.internal:host-gateway --restart always ghcr.io/open-webui/open-webui:dev

Ollama 接続エラーのトラブルシューティング

Docker でよくある問題として、コンテナ内から Open WebUI が 127.0.0.1:11434 または host.docker.internal:11434 の Ollama に接続できない場合があります。対応システムで文書化されている回避策の一つは、ホストネットワークを使用することです。

docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main

このコマンドを使用した場合は、ポート 3000 ではなく、http://localhost:8080 で Open WebUI にアクセスします。

それでも接続に失敗する場合は、Ollama が実行中であることを確認し、アドレスを検証して、Open WebUI のトラブルシューティングドキュメントを参照してください。Docker 環境では、追加のネットワーク設定が必要になる場合があります。

メンテナンスとセキュリティ

  • デプロイを置き換えたりアップグレードしたりする際は、公式の更新ガイドに従ってください。

  • アプリケーションデータの損失を防ぐため、アップグレード中も永続 Docker ボリュームを接続したままにしてください。

  • コードベースには複数のライセンスに基づくコンポーネントが含まれており、現在の Open WebUI ライセンスコードにはブランディング要件もあるため、プロジェクトのライセンスとライセンス履歴を確認してください。

  • 脆弱性の疑いがある場合は、公開コミュニティチャンネルではなく、プロジェクトのGitHub 責任ある情報開示プログラムを通じて機密扱いで報告してください。

まとめ

Open WebUIは、管理下のインフラストラクチャを通じて、ローカルおよびホスト型AIモデルを実行できる柔軟なインターフェースを提供します。Python 3.11または永続的なDockerデプロイメントから始め、OllamaやOpenAI互換APIに接続したうえで、RAG、エージェント、プラグイン、コラボレーション、分析、スケーラブルな本番サービスへと拡張できます。その他のデプロイ方法については、公式の導入ドキュメントをご覧ください。