Open WebUI をセルフホスト:モデルの接続、アカウント管理、会話の保存

Zenavo のテンプレートで Open WebUI をデプロイし、OpenAI 互換のモデル API を接続します。管理者アカウントの登録とアクセス制限、ボリュームのバックアップとアップグレードまでを説明します。

この記事は English、简体中文、繁體中文、Español、Bahasa Indonesia でもお読みいただけます。

すでに各社のモデル API キーを持っていて、自分や少人数のチーム向けにウェブのチャット画面を用意したいなら、Open WebUI は単一コンテナで動かせる手軽な選択肢です。複数ユーザーのアカウント、会話履歴、ドキュメントのアップロード、モデルの切り替えが最初からそろっています。

この記事では、Zenavo の Open WebUI テンプレートを使って自分のサーバーにデプロイし、外部のモデル API を接続します。PostgreSQL、Redis、S3 互換ストレージまで備えたマルチユーザー環境と比較したい場合は、LobeHub のガイドもご覧ください。

テンプレート自体にローカルモデルや GPU 推論は含まれません。サーバー、Zenavo プラットフォーム、上流のモデル API の料金はそれぞれ別です。

Open WebUI をデプロイする

まず Zenavo に Linux サーバーを接続し、Open WebUI テンプレートを開いて、サーバーを選んでデプロイします。

現在のテンプレートの設定は次のとおりです。

設定 値・用途
イメージ ghcr.io/open-webui/open-webui:main
HTTP ポート 8080
永続ボリューム /app/backend/data。SQLite データベース、アップロードしたファイル、設定がここに保存されます
WEBUI_SECRET_KEY プロジェクト作成時に自動生成され、ログインセッションの署名に使われます
ENABLE_OLLAMA_API false。初期状態ではローカルの Ollama 接続を無効にし、外部 API をそのまま使います
テレメトリー変数 SCARF_NO_ANALYTICS、DO_NOT_TRACK、ANONYMIZED_TELEMETRY を初期状態で無効化
メモリ 約 2 GB の確保を推奨

main タグは上流の更新に追従します。長く安定して使う場合は、サービスの 設定 → ソース でイメージを動作確認済みの固定バージョン(例:ghcr.io/open-webui/open-webui:v0.6.5)に変更してください。

ドメインを設定し、すぐに管理者アカウントを登録する

open-webui サービスの ネットワーク タブでポート 8080 にドメイン(例:chat.example.com)を割り当て、DNS にサーバーを指す A レコードを追加して HTTPS が有効になるのを待ちます。手順はドメインと HTTPS をご覧ください。

ドメインが有効になったら、すぐにサイトを開いて最初のアカウントを登録してください。 Open WebUI では最初に登録したユーザーが管理者になります。登録を終える前に他の人がアクセスすると、先に管理者を作られてしまいます。

ログインしたら、管理者パネル → 設定 → 一般(Admin Panel → Settings → General) を開き、新規ユーザーの登録ポリシーを確認します。

  • 自分だけで使う場合:新規登録(Enable New Sign Ups)をオフにします。
  • チームで使う場合:新規ユーザーの初期ロール(Default User Role)を「承認待ち(pending)」にしておき、承認したアカウントだけがモデルを使えるようにします。

モデル API を接続する

管理者パネル → 設定 → 外部接続(Connections) を開き、OpenAI API の欄にプロバイダーの Base URL と API キーを入力して保存します。チャット画面左上のモデル選択欄にモデル一覧が表示されます。

よくある接続方法:

  • 公式または互換 API に直接つなぐ:プロバイダーが案内する OpenAI 互換の Base URL(多くは末尾が /v1。/v1 が二重にならないよう注意)と API キーを入力します。
  • 自作ゲートウェイ経由でつなぐ:New API、Magpie、または LiteLLM を動かしている場合は、Base URL をそのゲートウェイに向けることで、OpenAI、Anthropic、Gemini、DeepSeek などを1つの接続先にまとめられます。Open WebUI と同じ Zenavo プロジェクト内にあるなら、http://new-api.zenavo.internal:3000/v1 のようにプライベートネットワーク経由で直接接続できます。
  • Web 検索やチャットアプリ連携を追加する:モデルに最新 Web ページを検索させたい場合は同じプロジェクトに SearXNG を追加でき、Telegram・Discord・Slack から AI アシスタントを呼び出したい場合は OpenClaw と組み合わせられます。

チームで共有する場合は、管理者設定の Models で一般ユーザーに公開するモデルを絞っておくと、高価なモデルの誤用を防げます。

バックアップとアップグレード

Open WebUI のアカウント、会話履歴、ナレッジベースのファイル、接続設定はすべて /app/backend/data ボリュームにあります。また、サービスの 変数 タブにある WEBUI_SECRET_KEY はセッション保護に使われるため、デプロイ後に変更せず、控えをパスワードマネージャーに保管してください。

open-webui サービスの バックアップと復元 タブでボリュームをバックアップします。

  1. 誰も使っていない時間帯を選び、プロジェクトを停止します(ボリュームのバックアップにはプロジェクトの停止が必要です)。
  2. バックアップを作成し、完了したらプロジェクトを再起動します。
  3. バックアップを1つダウンロードして手元に保管します。会話履歴や保存した API キーが含まれるため、厳重に管理してください。

詳しい手順はバックアップと復元をご覧ください。アップグレードの前にはボリュームをバックアップし、Open WebUI のリリースノートを読んでからイメージタグを変更します。メジャーアップグレードではデータベース構造が移行されることがあるため、元の状態に戻すにはアップグレード前のバックアップを使います。

よくある質問

接続を保存したのにモデル一覧が空のままです Base URL の末尾がプロバイダーの指定どおり(多くの OpenAI 互換 API では /v1)になっているか、API キーが有効か確認してください。/v1/models による一覧取得に対応していないプロバイダーでは、接続設定にモデル ID を手動で入力します。

メッセージを送ると 401 または 404 エラーが出ます 401 は API キーの誤り・期限切れ・モデル権限の不足、404 は Base URL に /chat/completions まで書いてしまっているか、/v1 が抜けているケースがほとんどです。

環境変数を変えて再起動したのに、画面の設定が変わりません Open WebUI は管理画面の設定を一度データベースに保存すると、環境変数よりもデータベースの値を優先します。変更するときは Web の 管理者パネル → 設定 から直接変更して保存してください。

ローカルの Ollama を接続できますか? できます。テンプレートでは Ollama がない環境でエラーが出続けないよう、初期状態で ENABLE_OLLAMA_API=false にしています。同じプロジェクトやネットワーク内で Ollama を動かす場合は、ENABLE_OLLAMA_API=true に変えて OLLAMA_BASE_URL を指定してください。

まずは Open WebUI テンプレートから始めましょう。ドメインを割り当てて管理者アカウントを登録し、登録制限をかけたうえでモデル API を接続し、バックアップを整えてください。