toolkitbox

~/ / AI 文章 / 在 VPS 上跑本機 LLM / 在 VPS 上用 Docker 執行 Open WebUI,並連接 Ollama

在 VPS 上用 Docker 執行 Open WebUI,並連接 Ollama

對於在自己伺服器上執行的模型,最簡單的使用方式就是瀏覽器裡的聊天視窗。Open WebUI 就是這樣的介面之一,它的文件說明了如何用 Docker 啟動它,以及如何連接 Ollama。本文依照官方快速入門與連線指南,一步一步說明,並標出兩份指南在連線描述上不同的地方。

發布: · 約 5 分鐘讀完 · 已於 2026-10-26 對照 Open WebUI 官方文件確認。指令、映像檔標籤與設定會隨版本而改變,在伺服器上執行任何指令之前,請先在最新的文件中確認。

先確認記憶體

Open WebUI 是在同一台伺服器上額外執行的程式,而文件並未提供它所需的記憶體數字。根據快速入門,標籤為 main 的標準映像檔內含語音轉文字與嵌入模型。請先估算你的模型所需的記憶體,並為介面與作業系統預留空間。

試試看: Local LLM Memory Estimator

模型

Ollama 標籤 qwen3:8b,量化 Q4_K_M,下載大小 5.2 GB。

估算結果

模型權重
4.84 GiB
KV cache
0.56 GiB
保留量
1.00 GiB
合計
6.41 GiB (6.88 GB)
容得下的最小常見記憶體容量
8 GiB

這是估算值。其中不包含執行環境的運算緩衝區,並假設每一層的 KV 形狀都相同。在選擇方案之前,請先量測實際執行的情況。

模型資料確認日期:2026-10-26。

資料來源: Ollama library · 模型設定 (config.json) · Ollama FAQ

所有處理都在你的瀏覽器中進行,不會上傳任何內容。

用 Docker 啟動

快速入門中,Open WebUI 的網址是 http://localhost:3000,並以一行 docker run 指令執行。請把 your-secret-key 換成你自己產生的值,例如使用指南提供的指令來產生。

步驟指令
產生密鑰openssl rand -hex 32
啟動 Open WebUIdocker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main
查看日誌docker logs -f open-webui
  • -p 3000:8080 會把主機的 3000 連接埠對應到容器的 8080 連接埠。
  • 磁碟區 open-webui 存放你的對話、使用者與設定。指南指出,它在更新後會保留下來,而且絕對不要在沒有它的情況下執行。
  • WEBUI_SECRET_KEY:指南指出要設定一次後就固定使用,因為沒有固定的密鑰時,每次重新建立容器都會讓所有人登出,而換上新的密鑰也會讓所有人登出。
  • 映像檔標籤:main 是標準映像檔,cuda 加入了 NVIDIA GPU 支援且需要 --gpus all,ollama 則把 Ollama 一併包進同一個容器。

第一個帳號就是管理員

第一個畫面會提示建立管理員帳號。根據指南,這第一個帳號就是管理員,負責管理使用者以及整個實例的所有設定,而一旦管理員帳號建立完成,註冊功能就會自動關閉。

我們的建議,並非文件中的說明:請在容器啟動後立刻建立管理員帳號,在告訴任何人網址之前先完成,因為第一個連上該頁面的人就能建立它。

連接 Ollama:文件中的兩種方式

我們查閱的 Open WebUI 頁面以兩種不同的方式描述這個連線。請使用與你所執行版本相符的頁面,並在設定、管理、連線中確認你的版本提供哪種類型。

連線頁面的說明
Ollama API 協定在 Settings > Admin > Connections 的 Manage Ollama API Connections 中設定。頁面指出常見的連接埠是 11434,並說明當 Open WebUI 在 Docker 中執行、Ollama 在主機上執行時,要使用 http://host.docker.internal:11434。
OpenAI 類型的連線新增一個 OpenAI 類型的連線,Base URL 填 http://localhost:11434/v1,API 金鑰可填任意文字。頁面指出 Ollama 不會檢查該金鑰,但欄位不能留空,並說填入 ollama 即可。
  • 已下載的模型會被自動探索,並出現在模型選擇器中。你也可以用以逗號分隔的清單加以限制。
  • 你可以新增多個 Ollama 實例。頁面指出請求會以隨機選擇的方式分配,各實例之間的模型 ID 必須完全一致,而 remote/ 這類前綴可以用來區分模型名稱相同的實例。
  • 對於速度很慢或無法連上的端點,頁面建議設定 AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST=3(預設為 10 秒),以加快故障轉移。
  • 如果連線失敗,頁面指出網路設定錯誤是最常見的原因,並指向其疑難排解指南。

我們查閱的頁面並未說明,容器是否能連上只監聽 127.0.0.1 的 Ollama,也沒有涵蓋如何放寬 Ollama 的位址。根據 Ollama 的 FAQ,Ollama 預設綁定 127.0.0.1。我們的建議:除非有防火牆規則把存取限制在你所使用的位址,否則不要把 Ollama 開放給整個網路。

更新與移除

工作快速入門中的指令
手動更新docker rm -f open-webui,接著 docker pull ghcr.io/open-webui/open-webui:main,再執行和先前相同的 docker run 指令
用 Watchtower 更新docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once open-webui
解除安裝docker rm -f open-webui,接著 docker rmi ghcr.io/open-webui/open-webui:main,再執行 docker volume rm open-webui

移除磁碟區會刪除你的對話、使用者與設定。指南指出你的資料就在磁碟區中,因此更新時請保留它。

保持私密

  • 快速入門中示範了一種使用 WEBUI_AUTH=False 的變化做法。我們的建議,並非文件中的說明:不要在任何人都能連上的伺服器上使用它。
  • 在分享網址之前,請先在 3000 連接埠前面設好 HTTPS 與防火牆規則,並且不要把密鑰放進任何你要提交的內容中。
  • 快速入門也示範了如何用 OLLAMA_BASE_URL 讓 Open WebUI 指向另一台伺服器。如果這麼做,請把該連線也視為你私人網路的一部分。

資料來源

接著閱讀