~/ / 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
估算結果
- 模型權重
- 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 WebUI | docker 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 指向另一台伺服器。如果這麼做,請把該連線也視為你私人網路的一部分。
資料來源
接著閱讀
- 在 Ollama 前面放 nginx:基本驗證、HTTPS 與串流設定從外部安全地連到 Ollama:以 nginx 作為代理、基本驗證、HTTPS、串流與逾時設定,以及防火牆規則,內容皆出自官方文件。
- 在自己的程式中呼叫本機模型:Ollama 的結構化輸出與 OpenAI-compatible API用 JSON Schema 限制本機模型的輸出,並從 OpenAI 風格的用戶端呼叫 Ollama:官方文件怎麼說,以及哪些功能不支援。
- 本機模型能做什麼?Ollama 的 tools、thinking、vision 與 embedding,以及 VPS 跑得動什麼tools、thinking、vision、embedding:Ollama 模型庫中的標籤代表什麼、哪些模型帶有這些標籤,以及下載大小有多大。
- 在 VPS 上安裝 Ollama 並讓它持續運作:安裝、systemd 服務、設定與更新在 Linux VPS 上安裝 Ollama 並讓它持續運作:依官方文件整理安裝指令、systemd 服務、環境變數、模型儲存位置與更新方式。