⏱️ クイックスタート
- 管理者作成: Open WebUIで最初に作成されたアカウントには管理者権限が付与され、ユーザー管理やシステム設定をコントロールします。
- ユーザー登録: その後の登録は保留状態で始まり、アクセスには管理者の承認が必要です。
- プライバシーとデータセキュリティ: すべてのデータ(ログイン情報を含む)はローカルデバイスにのみ保存されます。Open WebUIは厳密な機密性を保証し、外部リクエストは一切実行されないため、プライバシーとセキュリティが強化されます。
- すべてのモデルはデフォルトで非公開です。 モデルはグループを介して、または公開されることでのみ共有されます。グループに割り当てられたモデルは、そのグループのメンバーのみが表示できます。モデルが公開されると、そのインスタンス内の誰もがそれを見ることができます。
以下から好みのインストール方法を選択してください:
- Docker: 公式にサポートされ、ほとんどのユーザーに推奨されます
- Python: リソースが少ない環境や手動セットアップを希望する方に適しています
- Kubernetes: スケーリングとオーケストレーションを必要とする企業向けの展開に最適
- Docker
- Python
- Kubernetes
- サードパーティ
- Docker
- Docker Compose
- Podman
- Docker Swarm
Dockerでのクイックスタート 🐳
以下のステップに従ってDockerを使ってOpen WebUIをインストールします。
ステップ1: Open WebUIイメージを取得
まず、GitHub Container Registryから最新のOpen WebUI Dockerイメージを取得します。
docker pull ghcr.io/open-webui/open-webui:main
ステップ2: コンテナを実行
デフォルト設定でコンテナを実行します。このコマンドにはデータを永続的に保存するため のボリュームマッピングが含まれています。
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
重要なフラグ
- ボリュームマッピング (
-v open-webui:/app/backend/data
): データを永続的に保存します。これによりコンテナ再起動時のデータ損失を防ぎます。 - ポートマッピング (
-p 3000:8080
): ローカルマシンのポート3000でWebUIを公開します。
GPUサポートを使用する場合
Nvidia GPUサポートを利用するには、--gpus all
をdocker run
コマンドに追加します。
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
シングルユーザーモード(ログインの無効化)
シングルユーザー設定でログイン画面をスキップするには、WEBUI_AUTH
環境変数をFalse
に設定します。
docker run -d -p 3000:8080 -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
この変更後、シングルユーザーモードとマルチアカウントモードを切り替えることはできません。
高度な設定: 別サーバー上のOllamaへの接続
Open WebUIを別ホストにあるOllamaサーバーに接続するには、OLLAMA_BASE_URL
環境変数を追加します。
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
WebUIにアクセスする
コンテナが稼働した後、以下のURLからOpen WebUIにアクセスできます。
Dockerの各フラグの詳細は、Dockerのドキュメントを参照してください。
更新中
ローカルのDockerインストールを最新バージョンに更新するには、Watchtowerを使用するか、手動でコンテナを更新する方法があります。
オプション1: Watchtowerを使用
Watchtowerを使用すると、更新プロセスを自動化できます:
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
(open-webui
を異なるコンテナ名に置き換えてください。)
オプション2: 手動更新
-
現在のコンテナを停止して削除します:
docker rm -f open-webui
-
最新バージョンをプルします:
docker pull ghcr.io/open-webui/open-webui:main
-
コンテナを再起動します:
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
どちらの方法でも、Dockerインスタンスを最新のビルドで更新して稼働させることができます。
Docker Compose セットアップ
Docker Composeを利用することで、複数のコンテナを使用するDockerアプリケーションの管理が簡単になります。
Dockerがインストールされていない場合は、こちらのDockerインストールチュートリアルをご確認ください。
Docker Composeには追加パッケージdocker-compose-v2
が必要です。
警告: 古いDocker Composeチュートリアルではバージョン1の構文が参照されることがあり、docker-compose build
のようなコマンドが使われています。バージョン2の構文を利用してください。例えばdocker compose build
のようにスペースを使用します(ハイフンではなくスペースに注意してください)。
docker-compose.yml
の例
Docker Composeを使用してOpen WebUIを設定する例の構成ファイルは以下の通りです:
version: '3'
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
サービスの起動
サービスを開始 するには、以下のコマンドを実行してください:
docker compose up -d
ヘルパースクリプト
コードベースにはrun-compose.sh
という便利なヘルパースクリプトが含まれています。このスクリプトは、デプロイメントに含めるDocker Composeファイルを選択し、セットアッププロセスを効率化するのに役立ちます。
注意: Nvidia GPUをサポートするには、イメージをghcr.io/open-webui/open-webui:main
からghcr.io/open-webui/open-webui:cuda
に変更し、以下の内容をdocker-compose.yml
ファイルのサービス定義に追加してください:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
この設定により、アプリケーションが利用可能な場合にGPUリソースを活用できるようになります。
Podmanの使用
Podmanは、OCIコンテナを開発、管理、実行するためのデーモンレスなコンテナエンジンです。
基本コマンド
-
コンテナを実行する:
podman run -d --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
-
実行中のコンテナの一覧:
podman ps
Podmanでのネットワーキング
ネットワーク問題が発生した場合、slirp4netnsを使用してポッドのネットワーク設定を調整し、コンテナがコンピューターのポートにアクセスできるようにしてください。
slirp4netnsをインストールしていることを確認し、存在する場合はpodman rm
で以前のコンテナを削除し、次のコマンドで新しいコンテナを開始します。
podman run -d --network=slirp4netns:allow_host_loopback=true --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
PC上でOllamaを 使用している場合(コンテナ内で実行していない場合)、
open-webui内に入ったら、[設定] > [管理設定] > [接続] に移動し、新しいOllama API接続をhttp://10.0.2.2:[OLLAMA PORT]
として作成します。デフォルトでは、Ollamaのポートは11434です。
Podmanのドキュメントを参照して、高度な設定を確認してください。
Docker Swarm
このインストール方法はDocker Swarmに関する知識を必要とします。スタックファイルを使用してDocker Swarm内で3つの別個のコンテナをサービスとしてデプロイします。
これには、ChromaDB、Ollama、およびOpenWebUIの分離されたコンテナが含まれます。 さらに、セットアップを詳しく説明するために事前設定された環境変数が含まれています。
ハードウェア構成に基づいて適切なコマンドを選択してください:
-
開始前:
ボリューム用のディレクトリをホスト上で作成する必要があります。または、カスタムの場所やボリュームを指定できます。
現在の例では
docker-stack.yaml
と同じディレクトリ内の孤立したdata
ディレクトリを使用しています。-
例:
mkdir -p data/open-webui data/chromadb data/ollama
-
-
GPU対応:
Docker-stack.yaml
version: 3.9
services:
openWebUI:
image: ghcr.io/open-webui/open-webui:main
depends_on:
- chromadb
- ollama
volumes:
- ./data/open-webui:/app/backend/data
environment:
DATA_DIR: /app/backend/data
OLLAMA_BASE_URLS: http://ollama:11434
CHROMA_HTTP_PORT: 8000
CHROMA_HTTP_HOST: chromadb
CHROMA_TENANT: default_tenant
VECTOR_DB: chroma
WEBUI_NAME: Awesome ChatBot
CORS_ALLOW_ORIGIN: "*" # 現在のデフォルトですが、ライブ前に変更する必要があります
RAG_EMBEDDING_ENGINE: ollama
RAG_EMBEDDING_MODEL: nomic-embed-text-v1.5
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE: "True"
ports:
- target: 8080
published: 8080
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
chromadb:
hostname: chromadb
image: chromadb/chroma:0.5.15
volumes:
- ./data/chromadb:/chroma/chroma
environment:
- IS_PERSISTENT=TRUE
- ALLOW_RESET=TRUE
- PERSIST_DIRECTORY=/chroma/chroma
ports:
- target: 8000
published: 8000
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
healthcheck:
test: ["CMD-SHELL", "curl localhost:8000/api/v1/heartbeat || exit 1"]
interval: 10s
retries: 2
start_period: 5s
timeout: 10s
ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
resources:
reservations:
generic_resources:
- discrete_resource_spec:
kind: "NVIDIA-GPU"
value: 0
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama-
追加要件:
- CUDAが有効であることを確認します。OSとGPUの手順に従ってください。
- Docker GPUサポートを有効にする方法については、Nvidia Container Toolkitを参照してください。
- GPUでDocker Swarmを構成する方法についてはこちらのガイドに従ってください
/etc/nvidia-container-runtime/config.toml
で_GPUリソース_を有効にし、swarm-resource = "DOCKER_RESOURCE_GPU"
をコメントアウト解除してGPUリソース広告を有効にします。各ノードのこれらのファイルを更新した後、Dockerデーモンを再起動する必要があります。
-
-
CPU対応:
docker-stack.yaml
内のOllamaサービスを変更し、generic_resources:
の行を削除します。ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama -
Dockerスタックのデプロイ:
docker stack deploy -c docker-stack.yaml -d super-awesome-ai
- uv
- Conda
- Venv
- 開発
uv
によるインストール
uv
ランタイムマネージャーは、Open WebUIのようなアプリケーションのためにPython環境管理をシームレスに行います。以下の手順に従って開始してください:
1. uv
をインストール
お使いのオペレーティングシステムに適したインストールコマンドを選んでください:
-
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. Open WebUIを実行
uv
をインストールしたら、Open WebUIの実行は簡単です。以下のコマンドを使用し、データの損失を防ぐためにDATA_DIR
環境変数を設定してください。各プラットフォームでの例を示しています:
-
macOS/Linux:
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
-
Windows (PowerShell):
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
Pythonで更新
ローカルにインストールされている Open-WebUI パッケージを最新バージョンに更新するには、以下の簡単な手順に従ってください:
pip install -U open-webui
-U
(または --upgrade
)フラグを使用すると、pip
が利用可能な最新バージョンにパッケージをアップグレードします。
これで完了です! Open-WebUI パッケージが更新され、すぐに使用できる状態になりました。
Condaでインストール
-
Conda環境を作成する:
conda create -n open-webui python=3.11
-
環境をアクティベートする:
conda activate open-webui
-
Open WebUIをインストールする:
pip install open-webui
-
サーバーを起動する:
open-webui serve
Pythonで更新
ローカルにインストールされている Open-WebUI パッケージを最新バージョンに更新するには、以下の簡単な手順に従ってください:
pip install -U open-webui
-U
(または --upgrade
)フラグを使用すると、pip
が利用可能な最新バージョンにパッケージをアップグレードします。
これで完了です! Open-WebUI パッケージが更新され、すぐに使用できる状態になりました。
仮想環境の使用
venv
を使用してPythonの仮想環境を作成します。
手順
-
仮想環境を作成する:
python3 -m venv venv
-
仮想環境を有効化する:
-
Linux/macOSの場合:
source venv/bin/activate
-
Windowsの場合:
venv\Scripts\activate
-
-
Open WebUIをインストールする:
pip install open-webui
-
サーバーを開始する:
open-webui serve
Pythonで更新
ローカルにインストールされている Open-WebUI パッケージを最新バージョンに更新するには、以下の簡単な手順に従ってください:
pip install -U open-webui
-U
(または --upgrade
)フラグを使 用すると、pip
が利用可能な最新バージョンにパッケージをアップグレードします。
これで完了です! Open-WebUI パッケージが更新され、すぐに使用できる状態になりました。
開発セットアップ
貢献を希望する開発者は、高度なトピックの開発ガイドをチェックしてください。
- Helm
- Kustomize
Kubernetes用Helmのセットアップ
HelmはKubernetesアプリケーションの管理を支援します。
前提条件
- Kubernetesクラスターがセットアップされています。
- Helmがインストールされています。
手順
-
Open WebUI Helmリポジトリを追加:
helm repo add open-webui https://open-webui.github.io/helm-charts
helm repo update -
Open WebUI Chartをインストール:
helm install openwebui open-webui/open-webui
-
インストールの確認:
kubectl get pods
:::警告
Open WebUIをクラスタ環境で複数のノード/Pod/ワーカーを使用してスケールする場合、NoSQLキー値データベースのセットアップが必要です。 全てのサービスインスタンスで同じ値に設定しなければならない環境変数があります。これを怠ると、一貫性の問題、不正なセッション、その他の問題が発生します!
:::
WebUIへのアクセス
クラスター外部からOpen WebUIにアクセスするためにポートフォワーディングまたはロードバランシングを設定します。
KubernetesのためのKustomizeセットアップ
KustomizeはKubernetes YAML構成をカスタマイズするためのツールです。
前提条件
- Kubernetesクラスタがセットアップ済み。
- Kustomizeがインストールされている。
手順
-
Open WebUI Manifestsをクローンする:
git clone https://github.com/open-webui/k8s-manifests.git
cd k8s-manifests -
Manifestsを適用する:
kubectl apply -k .
-
インストールの確認:
kubectl get pods
:::警告
Open WebUIを複数のノードやポッド、ワーカーを使用するクラスタ環境でスケールさせる場合、NoSQLキー値データベースをセットアップする必要があります。 すべてのサービスインスタンス間で同じ値に設定する必要があるいくつかの環境変数があります。これが正しく設定されない場合、一貫性の問題、セッションのエラー、その他の問題が発生する可能性があります!
:::
WebUIにアクセスする
クラスタ外部からOpen WebUIにアクセスするために、ポート転送やロードバランシングを設定してください。