Open WebUI 封面圖:自架 AI 對話平台

Open WebUI:自架 AI 聊天平台,部署與對外開放的安全設定

內容概述

Open WebUI 是一個可擴展、功能豐富且使用者友善的自架 AI 平台,設計上可完全離線運作。

它支援多種大型語言模型(LLM)執行器,如 Ollama 和相容於 OpenAI 的 API,並內建檢索增強生成(RAG)引擎,為 AI 部署提供完整的解決方案。

應用場景

Open WebUI 適用於需要自架 AI 解決方案的各種情境,包括:

  • 企業內部部署,確保資料隱私和安全。
  • 教育機構用於教學和研究,無需依賴外部服務。
  • 開發者測試和開發自訂 AI 模型。
  • 需要離線運作的遠端或受限環境。

技術特點

  • 簡易安裝:可透過 pip、uv、Docker 或 Kubernetes(kubectl、kustomize 或 helm)安裝,並提供 :ollama 和 :cuda 標籤的映像檔。
  • Ollama/OpenAI API 整合:輕鬆整合相容於 OpenAI 的 API,與 Ollama 模型進行多樣化對話。可自訂 OpenAI API URL,以連接 LM Studio、GroqCloud、Mistral、OpenRouter 等服務。
  • 細緻的權限和使用者群組:管理員可建立詳細的使用者角色和權限,確保安全的使用環境。
  • 響應式設計:在桌上型電腦、筆記型電腦和行動裝置上皆能流暢使用。

其他整合

Open WebUI 支援多種整合,包括:

  • 工具(Tools):可匯入社群網站上的各種工具,並指派給支援函式呼叫的 LLM,擴充功能。
  • 管線(Pipelines):提供模組化、可自訂的工作流程,與任何支援 OpenAI API 規格的用戶端相容,輕鬆擴充功能並整合自訂邏輯。

安裝步驟

以下是使用 Docker 安裝 Open WebUI 的步驟(Ollama 已安裝在同一台主機上):

  1. 拉取 Open WebUI 映像檔:
docker pull ghcr.io/open-webui/open-webui:main
  1. 執行容器:
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

上述指令會在本機的 3000 埠提供 WebUI,資料保存在名為 open-webui 的 Docker 資料卷中。若 Ollama 安裝在另一台伺服器,可加上 -e OLLAMA_BASE_URL=https://example.com 指定位址。

:main 標籤永遠指向最新版本,可能包含不相容的變更;團隊或正式環境建議固定版本,例如 ghcr.io/open-webui/open-webui:v0.12.4。

存取和操作

安裝完成後,可透過瀏覽器前往 http://localhost:3000 存取 Open WebUI。

第一位註冊的帳號會自動成為管理員,之後系統會自動關閉註冊功能;若管理員重新開放註冊,新帳號預設為「pending」狀態,需經管理員核准才能使用。

若出現無法連線到 Ollama 的錯誤,通常是容器內無法連到主機的 127.0.0.1:11434,可改用 --network=host 參數執行(此時改為透過 http://localhost:8080 存取)。

對外開放前的安全設定

官方文件說明 Open WebUI 是為私有、可信任的網路設計,對外開放前請先完成以下設定:

  • 先建立管理員帳號:部署完成後立即註冊第一個帳號(即管理員),避免他人搶先註冊;請使用 v0.9.0 以上版本(已修正首位管理員建立的競態問題 CVE-2026-45675)。
  • 放在 VPN 或有驗證的反向代理後方:官方建議使用 VPN(WireGuard、Tailscale)、零信任存取代理(Cloudflare Access 等),或具備驗證與 IP 白名單的反向代理。
  • 以 HTTPS 對外:Open WebUI 不自行處理 TLS,需由 Nginx、Caddy 等反向代理提供 HTTPS,並設定 WEBUI_SESSION_COOKIE_SECURE=true。
  • **設定固定的 WEBUI_SECRET_KEY:**用於簽署登入權杖;多台執行個體時必須使用相同金鑰,可用 openssl rand -base64 32 產生。
  • 限制 CORS:CORS_ALLOW_ORIGIN 預設為 *,請改為您的網域,例如 https://chat.yourcompany.com。
  • 維持註冊關閉與 pending 預設角色:除非必要,不要開放 ENABLE_SIGNUP,並保留 DEFAULT_USER_ROLE=pending。

小技巧

  • 更新容器:更新前先備份資料卷並閱讀 Release Notes。若要用 Watchtower 自動更新,官方文件指出原本的 containrrr/watchtower 已停止維護,請改用 nickfedor/watchtower:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once open-webui
  • 啟用 GPU 支援:若有 NVIDIA GPU,安裝 NVIDIA Container Toolkit 後,可使用 --gpus all 參數執行 :cuda 映像檔,以提升效能。
  • 連接 Ollama 或 OpenAI 相容服務:以環境變數 OLLAMA_BASE_URL 指定 Ollama 位址;以 OPENAI_API_BASE_URL 連接不同的 OpenAI 相容服務。

教學影片

影片來源:The Personal AI Architecture/YouTube

參考連結

成本與風險摘要

  • 適用對象與規模:想為個人、團隊或企業內部提供自架 ChatGPT 式介面的使用者;單機 Docker 即可運作,多台執行個體需共用金鑰與資料庫。
  • 成本(硬體、訂閱、授權):軟體免費自架,授權為 Open WebUI License,需保留「Open WebUI」品牌標示(詳見官方 LICENSE)。Open WebUI 本身只是介面,模型推論的硬體或 API 費用另計。
  • 維護時間:需定期更新容器、備份資料卷;:main 可能帶來不相容變更,固定版本可降低升級風險。
  • 資安注意事項:部署後立即建立管理員、以 HTTPS 與 VPN/驗證代理對外、設定 WEBUI_SECRET_KEY 與 CORS、保持註冊關閉。
  • 常見誤區:直接把 3000 埠開放到網際網路;或以為原版 Watchtower 仍可使用(已停止維護)。
  • 不建議使用的情況:沒有人力處理更新與備份、卻要直接對公網開放服務;或需要移除 Open WebUI 品牌的商業產品。
  • 測試日期與版本號:資料查核日期:2026-10-28;Open WebUI v0.12.4。
返回頂端