【Ollama】Ollama + Open WebUIの連携セットアップ完全手順

OllamaとOpen WebUIの連携セットアップ完全手順

1. 導入

ローカル環境で大規模言語モデル(LLM)を手軽に実行・管理できるツールとして、Ollamaの人気が高まっています。しかし、Ollamaの標準CLIインターフェースでは、会話履歴の管理や複数モデルの切り替え、プロンプトの実験などにやや不便さを感じるユーザーも少なくありません。そこで、直感的なWebベースのグラフィカルインターフェース(GUI)を提供するOpen WebUI(旧称:Ollama WebUI)との連携が強力な解決策となります。本ガイドでは、この2つのツールをシームレスに連携させ、ブラウザから快適にローカルLLMを操作する環境の構築手順を詳細に解説します。

2. 原因説明:なぜ連携セットアップが必要か?

Ollama単体では、モデルのプル、実行、基本的な対話は可能ですが、その操作はすべてターミナル上のコマンドラインに依存します。これにより、以下のような課題が生じます:

  • ユーザビリティの低さ: 非技術者やGUIを好むユーザーにとって障壁が高い。
  • 機能制限: チャット履歴の永続化・検索、複雑なプロンプトテンプレートの管理、画像やファイルのアップロードといった高度な機能が不足している。
  • モデル管理の煩雑さ: 複数のモデルを試す際の切り替えや比較が手間である。

Open WebUIは、これらの課題を解決するオープンソースのフロントエンドです。OllamaのREST APIを活用し、ChatGPTライクな洗練されたUIを提供します。セットアップの主な「原因」は、OllamaサービスとOpen WebUIコンテナ(またはPythonアプリ)が適切に通信できていないこと、および必要なネットワーク設定やモデル準備が完了していないことにあります。

3. 解決方法:ステップバイステップ完全セットアップガイド

ここからは、Dockerを使用した最も一般的で再現性の高いセットアップ方法を紹介します。前提として、マシンにDocker(およびDocker Compose)がインストールされている必要があります。

ステップ1: Ollamaのインストールと基本設定

まず、Ollamaを公式手順に従ってインストールし、起動します。

# Linux/macOSの場合のインストール例(公式スクリプト使用)
curl -fsSL https://ollama.com/install.sh | sh

# インストール後、サービスを起動
ollama serve &
# または、システムサービスとして起動(システムによる)
# sudo systemctl enable ollama
# sudo systemctl start ollama

# テスト用に軽量モデル(例:Llama 3.2)をプルして実行
ollama pull llama3.2
ollama run llama3.2
# 簡単なプロンプト("Hello"など)で応答があれば成功。`/bye`で終了。

Ollamaがデフォルトでlocalhost:11434でAPIを提供していることを確認します。

ステップ2: Open WebUIのDockerコンテナ起動

次に、Dockerを使用してOpen WebUIを起動します。Ollamaのホストにアクセスするため、適切な環境変数を設定します。

# 最も基本的な実行コマンド
docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  ghcr.io/open-webui/open-webui:main

ポイント解説:

  • -p 3000:8080: ホストマシンの3000番ポートをコンテナの8080番ポートにマッピング。ブラウザではhttp://localhost:3000にアクセス。
  • -v open-webui:/app/backend/data: チャット履歴や設定を永続化するボリューム。
  • -e OLLAMA_BASE_URL=...: ここが最重要設定。コンテナ内からホストのOllamaサービスに接続するためのURL。
    • macOS/Windows (Docker Desktop): http://host.docker.internal:11434 が使用可能。
    • Linux: ホストのネットワークを共有する--network=hostオプションを使うか、http://172.17.0.1:11434(Dockerのデフォルトブリッジゲートウェイ)を指定する必要がある場合があります。

ステップ3: Docker Composeを使った高度な設定(推奨)

管理性と再現性を高めるために、docker-compose.ymlファイルを作成する方法が強く推奨されます。

# docker-compose.yml
version: '3.8'

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - ./data:/app/backend/data # カレントディレクトリのdataフォルダに永続化
      - ./custom-icons:/app/backend/public/icons # カスタムアイコン(オプション)
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
      - WEBUI_SECRET_KEY=your_secret_key_here # セキュリティ強化(任意)
      - ENABLE_SIGNUP=false # サインアップを無効化(管理者のみ)
    restart: unless-stopped
    networks:
      - webui-network
    # Linux環境でホスト接続に問題がある場合の追加設定(例)
    # extra_hosts:
    #   - "host.docker.internal:host-gateway"

networks:
  webui-network:
    driver: bridge

設定ファイルを保存したディレクトリで、以下のコマンドを実行します。

docker-compose up -d

ステップ4: 初期設定とモデル連携確認

ブラウザで http://localhost:3000 を開きます。

  1. 最初のアクセス時、管理者アカウント(ユーザー名: admin, パスワード: admin)でログインするよう促されます。ログイン後、必ずパスワードを変更してください。
  2. 左側のナビゲーションバーにある「モデル」アイコン(ロボットの形)をクリック。
  3. 表示される画面で、Ollamaが実行しているホスト(OLLAMA_BASE_URL)が正しく接続されているか確認します。「利用可能なモデル」の横にある更新ボタンをクリックします。
  4. ステップ1でプルしたllama3.2モデルがリストに表示されれば、連携成功です。表示されない場合は、Ollamaサービスが起動しているか、OLLAMA_BASE_URLの設定を再確認してください。

これで、Open WebUIのチャットインターフェースから、直接llama3.2モデルを選択して会話を開始できます。さらに、Open WebUI内から新しいモデルをプルすることも可能です。

ステップ5: トラブルシューティング(よくある問題)

セットアップ中に問題が発生した場合、以下の点を確認してください。

# 1. Ollamaサービスの状態確認
ollama list # モデル一覧を表示
curl http://localhost:11434/api/tags # APIが応答するか確認

# 2. Open WebUIコンテナのログ確認
docker logs open-webui

# 3. コンテナ内からOllamaホストへの接続テスト(Linuxで問題がある場合)
# 実行中のopen-webuiコンテナ内に入る
docker exec -it open-webui /bin/bash
# コンテナ内でcurlを実行
apt-get update && apt-get install -y curl # 必要ならcurlをインストール
curl http://host.docker.internal:11434/api/tags
# "Connection refused" などのエラーが出る場合はネットワーク設定を見直す。

Linux環境での特記事項: Docker DesktopではなくネイティブのDocker Engineを使用している場合、host.docker.internalが解決できないことがあります。その場合は、docker-compose.ymlextra_hostsディレクティブ(コメントアウト済み)を有効化するか、ホストのIPを直接指定する(例: -e OLLAMA_BASE_URL=http://192.168.1.x:11434)方法を検討してください。

4. まとめ

OllamaとOpen WebUIの連携セットアップは、ローカルLLMの利用体験を劇的に向上させる「決定版」ソリューションです。本ガイドで解説したDockerを用いた方法により、複雑な依存関係を気にすることなく、数分でプロフェッショナルなチャットインターフェースを構築できます。セットアップの核心は、Open WebUIコンテナからOllamaのAPIエンドポイント(OLLAMA_BASE_URL)へ確実に接続させることです。環境に応じた適切なホスト指定を行うことで、ほとんどの問題は解決します。この環境が整えば、モデルの実験、プロンプトエンジニアリング、長文の編集など、創造的な作業に集中できるようになるでしょう。

🔧 快適な開発環境のために

本記事の手順をスムーズに進めるために、以下のスペックを推奨します。

この記事は役に立ちましたか?