Open WebUI 自架實測:把 AI 聊天室搬進自己伺服器,引擎自己接

Open WebUI 是 GitHub 上超過 15.6 萬顆星的自架 AI 聊天介面,支援 Ollama 與任何 OpenAI 相容端點。我們用 Docker 實測一條指令就能架好、對話資料落在自己的資料庫、繁中介面完整;授權在 2025 年 4 月加入品牌條款,50 人以下內部使用免費,白牌與企業功能走付費授權。

用 AI 摘要這篇文章:

自架 AI 聊天介面這個品類,2026 年已經長出了事實標準。Open WebUI 在 GitHub 累積超過 15.6 萬顆星,PyPI 套件一個月被下載約 130 萬次,新版 v0.12.3 在 2026 年 10 月 16 日發布,我查證的這一週開發分支幾乎天天有提交,單日最高超過一百筆。網路上流傳的中文介紹多半寫於它還只是個陽春聊天殼的階段,功能清單和授權狀態都與現況有一段距離。我把官方 Docker 映像檔實際架了一台、註冊帳號、把它接到一個我自己寫的假模型引擎上完整對話一輪之後,讀法要修正成:這是一套給組織用的多使用者平台,免費範圍比多數人以為的大,但「開源」兩個字在 2025 年 4 月之後要重新讀,而且預設安裝並非完全離線。

先把結論放在前面。不論個人多大的團隊,把它架在內部用都不必付費,條件只有一個:別動它的品牌標示;50 人以下的小部署,連品牌都可以換。需要付費的是「拿掉名字換上你的」這件事在大規模場景的版本,而企業版沒有公開報價,只對法人報價。這條線來自它的授權條款第 4 條,後面會把條文攤開來讀。

一條指令架起來的,是多使用者平台的形狀

實測用的指令就是官方文件那一條:docker run -d -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main。映像檔約 1.46GB,拉完後容器開機大約半分鐘,/health 端點回應 200 就代表就緒。這裡沒有任何帳號註冊、授權金鑰或官網連線的前置動作。

第一個值得記下的行為:在全新實例上,第一個完成註冊的帳號會自動成為管理員。我註冊完用 API 查自己的角色,回來就是 admin。這代表如果你把埠號開到公網才去慢慢研究設定,誰先註冊誰就先拿到管理權。自架的第一課是先自己註冊,再談開放。

第二個值得記下的行為藏在資料卷裡。掛上去的 volume 中有一顆 SQLite 資料庫 webui.db,我實際數過,裡面有 48 張資料表:聊天、使用者、資料夾、知識庫、頻道、頻道成員、行事曆、API 金鑰、權限授予等。這個形狀已經說明了它的定位:對話內容、組織成員、共用知識庫全部收在同一套系統裡,預設就是多使用者模式(環境變數 WEBUI_AUTH 預設為 True),個人用反而是把大系統當記事本。

介面語言也不是門檻。內建 64 種語系,繁體中文(zh-TW)完整可用,我把實測實例切過去,從側欄、輸入框到管理設定頁全部是繁中。

Open WebUI 繁體中文聊天介面截圖,模型選單顯示自架實測掛上的自訂引擎模型Pin
Open WebUI v0.12.3 的繁體中文介面,模型選單已掛上自訂的 OpenAI 相容引擎(圖片來源:TechMoon 以官方 Docker 映像檔自架實測)。

管理後台的選單更直接暴露了它想服務的對象。實測實例的管理設定頁分三層:系統類有一般設定、驗證、介面;AI 類有連線、模型、子代理;工具類有外部功能、文件、音訊。對照資料庫裡的群組與權限授予資料表,這是照著「公司裡有一群人共用一套 AI 設施」的想像蓋出來的軟體:管理員集中管理引擎連線與模型清單,一般使用者登入就有得用,付費 API 金鑰不必散落在每個人手上。家裡一個人用,這些能力大部分會閒置;十人工作室共用一組金鑰,它的價值才會整個打開。企業版文件列出的客戶案例也都在這個尺度:三星半導體自架內部平台、日本安斯泰來製藥三千多名員工架了四百多個自訂模型、德國美因茨大學服務三萬多名學生(此為官方自行披露的案例數字)。

它自己不是大腦:接上一個假引擎,完整跑一輪

Open WebUI 官方支援的引擎清單很長:Ollama 的本機模型、OpenAI,以及任何 OpenAI 相容的 API 端點。為了驗證「介面與引擎到底分得多開」,我做了一個有點極端的實驗:在容器外的電腦上起了一個只會回聲的假 OpenAI 相容端點(總共不到一百行 Python,只提供模型清單和一個把訊息原樣回覆的對話端點),再把它掛進 Open WebUI 的連線設定。

結果很乾淨:設定儲存後,介面的模型選單立刻列出我假造的兩個模型名稱;接著從介面送出一句話,訊息進到 Open WebUI、轉交給我的假端點、假端點回聲、答案出現在聊天視窗。整條路沒有接觸任何真正的 AI 服務,對話卻完整走完。這證實了它的架構立場:Open WebUI 本身是介面層,模型引擎全部是可替換的外接件。打個比方,它像播放器,引擎像影片檔;播放器負責管理介面、使用者、對話紀錄與權限,影片檔放哪一家都行。

Open WebUI 管理設定頁連線設定截圖,顯示 OpenAI 相容端點與 Ollama 端點管理Pin
管理後台的連線設定頁,同一頁管理多個引擎端點,使用者層級的直接連線預設關閉(圖片來源:TechMoon 以官方 Docker 映像檔自架實測)。

這也是它最實際的價值:已經有 OpenAI 或其他相容服務金鑰的人,不必另外裝本機模型就能先架起來用;想完全離線的人接 Ollama;兩種路線將來互換時,介面、帳號與累積的對話紀錄都留在原地。這種「引擎自選」的使用方式,跟我們之前介紹過的行動端 BYOK 客戶端思路相同,差別在 Open WebUI 把它做成了整台伺服器。順帶一提,全新實例在還沒接任何引擎時,模型選單就是空的,接上第一個端點才開始有東西可選,方向感很清楚:先決定要用誰的大腦,再開始聊天。

部署形態也不只 Docker 一條路。想連 Ollama 一起打包的人,官方另提供把兩者綁在同一個映像檔的 :ollama 版本(分 GPU 與純 CPU 兩種);不想碰容器的人可以用 pip install open-webui 直接裝在 Python 3.11 到 3.12 的環境(PyPI 對 Python 版本有明確上下限,裝之前先確認);文件還列了 Kubernetes 的 Helm 部署給要橫向擴充的團隊。此外它有一個社群市集,讓人分享提示詞、模型設定檔、工具與函式,官網首頁宣稱有超過 51 萬名社群成員(此為官方行銷數字,量級參考即可)。

「開源」在 2025 年 4 月之後,要照條文重新讀

時間線先講清楚。專案 2023 年 10 月誕生,早期先後採用 MIT 與 BSD 三條款等寬鬆授權。2025 年 4 月中,一個提交訊息寫著 chore: license "branding" clause 的變更把授權換成「Open WebUI License」,GitHub 從此將它歸類為 Other,不是任何 OSI 認證的開源授權。PyPI 套件頁倒是誠實,授權欄直接寫 Open WebUI License。

爭議點在第 4 條品牌條款,我把它讀完後的白話版本是:你可以自由使用、修改、重散布這套軟體,但不得改動、移除或遮蔽「Open WebUI」的名稱、標誌與識別元素,除非符合三種情形之一。第一種,這個部署在任意連續 30 天內的直接使用者不超過 50 人(條文寫的是個別自然人且能直接存取應用,所以算的是人頭,不是帳號數或營利與否);第二種,取得著作權人的書面許可;第三種,取得明確允許改品牌的企業授權。條款還把違反品牌條款明定為實質違約,並要求貢獻者簽署貢獻者授權協議,讓專案公司對程式碼保有商業化的彈性。換句話說,這是一家想兼顧免費社群與企業生意的美國公司(Open WebUI Inc.)寫出來的授權,方向已經跟純社群專案不同。

換個角度看,這個條款幾乎不影響一般使用:內部要用、要改程式、甚至公司拿來賺錢,只要品牌留著,任何規模都免費;30 天內直接使用者 50 人以下的部署,甚至連品牌都能換。被畫出來付費牆的只有一種組合:大規模部署又想拿掉名字換上自己的,那要書面許可或企業授權。企業版頁面把白牌改造、以及 Terminals 終端機功能列為企業獨佔項目,價格不公開,只留銷售聯絡管道,而且明講只發授權給登記的法人組織、不接受個人信箱。官方企業文件也把免費使用的界線寫得很直白:內部使用、品牌原樣保留,免費。

同品類裡它並非唯一選擇,但把授權條款當成選擇自架軟體的第一關,Open WebUI 是個現成的例子:條款讀完才會知道「免費」的範圍畫在哪裡,而不是靠別人轉述。

預設不是完全離線:首啟的兩通對外電話

舊介紹常說它「完全離線操作」。我看完啟階段的容器紀錄,預設行為其實有兩通對外電話。

第一通打給 HuggingFace。首次開機時,容器從 huggingface.co 下載 sentence-transformers/all-MiniLM-L6-v2 這個嵌入模型,一共 30 個檔案,用來在本機做文件檢索(RAG)的向量化,服務的正是前面看到的知識庫功能:你把文件收進知識庫,它負責把內容轉成向量供檢索,而這一步在使用者自己的機器上完成。這裡有個值得知道的容量事實:映像檔出廠就內建了嵌入與語音模型快取(我量到嵌入約 122MB、語音轉文字的 Whisper 約 141MB),但首次開機仍把該模型庫收錄的多種格式整包抓齊,嵌入快取因此長到約 923MB,磁碟空間抓 2GB 以上再來自架會比較從容。對完全空氣隔離的環境,把快取預先放好就能離線開機。

第二通打給 GitHub。環境變數 ENABLE_VERSION_UPDATE_CHECK 預設為 true,使用者登入後,後端會代為查詢 api.github.com 上的最新版資訊(程式裡寫死 1 秒逾時,失敗就安靜略過),用意在介面上提示有新版可更新。

兩通電話都有一致的關法:環境變數 OFFLINE_MODE=true 會一次切斷版本查詢並叫 HuggingFace 相關程式庫進入離線模式。另外值得給設計加分的是遙測態度:OpenTelemetry 的追蹤、指標、日誌等四個開關全部預設關閉,要自架者主動設定才會啟用,屬於 opt-in 設計,我在映像檔內的設定程式碼逐一確認過。稽核日誌也一樣收斂:預設只寫進本機的 audit.log 檔案,內容等級預設為 NONE,不會把請求內容寫出來。所以精確的說法是:它能離線,但預設安裝有兩條輕量外連,要離線環境的人記得設 OFFLINE_MODE。

順帶一個隱私層面的提醒:引擎接誰,對話就流到誰那裡。介面與帳號資料確實都在你的機器上,但你接的是雲端 API 時,訊息內容照樣離開你的伺服器前往該供應商;要讓內容全程留在內網,引擎也得選本機的 Ollama 或自架相容服務。這兩層要分開看,才知道「資料不出門」的四個字成立到哪裡。

對外開放之前,先看一下它的安全維護節奏

把它架在組織內部是一回事,把埠號開到網際網路是另一回事。這套系統的攻擊面不小:GitHub 上的安全通告到 10 月下旬已累積 166 則;我用 API 逐頁取回最新一百則來看,1 則評為 critical、35 則 high,其中 critical 那則是 LDAP 空密碼登入繞過(通報編號 CVE-2026-44551,2026 年 5 月發布)。9 月底到 10 月的修補還包括讓任意網站有機會偷走登入者 session token 的跨站問題,以及終端機功能的權限管理漏洞。

這些通告有兩面。壞消息是功能做得多(檔案、頻道、終端機、API 金鑰),可以出錯的介面就多,被停用的帳號仍能透過還開著的終端機連線執行指令這種邊角案例都修過;好消息是它有完整的通報與修補機制,v0.12.0 到 v0.12.3 在半個月內連發四版,發布頻率對得起它的規模。隱私能力也在往組織場景補齊:實測前一週發布的 v0.12.3 就把私訊與私密群組頻道的端對端加密聊天列為頭條新功能,同一版還加了多實例部署共用的 Redis 串流減量。實務結論就一句:自架不等於免維護,對外開放的實例要跟著更新,搭配前面提過的先自己註冊拿走管理員帳號,再考慮開放註冊。

最小部署與搬家:指令、連接埠與那顆資料庫

給要動手的人一份最小可行組合。

docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  -e WEBUI_SECRET_KEY=$(openssl rand -hex 32) \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

三個細節值得知道。埠號 3000 是你這台機器的對外埠,容器內固定跑 8080。資料卷 /app/backend/data 裝的就是那顆 SQLite 與上傳檔案,官方文件提醒別在沒有資料卷的狀態下跑,否則容器重建對話全消失;備份與搬家基本上就是備份這個卷。WEBUI_SECRET_KEY 決定登入憑證的簽章,不設的話容器重建後所有使用者都會被登出,先設好可以省一次麻煩。

還有一個部署時就要做的選擇:映像檔標籤。文件範例用 :main,永遠拿到最新版,配合它半個月連發四版的節奏,等於把升級時程交給上游;如果這台機器要服務別人,我會改用版本標籤(例如 :v0.12.3,兩種寫法的標籤都存在),把「什麼時候升級」留在自己手裡,看到安全通告再決定要不要動。個人玩的機器用 :main 沒什麼問題,兩種策略對應兩種責任態度。

更新流程也圍繞同一個卷:拉新映像檔、刪掉舊容器、用同一條指令重開,資料卷原封不動,對話紀錄與帳號就接著用。想改成單機免登入模式的話,文件提供 WEBUI_AUTH=False 環境變數,但官方在快速開始文件對這個開關標了不可逆的警告,動手前想清楚;另外原始碼裡有個硬檢查,開著帳號系統卻沒設 WEBUI_SECRET_KEY 時容器會直接拒絕啟動,這正是前面建議先設好金鑰的原因。

如果你本機已經跑著 Ollama,加上 --add-host=host.docker.internal:host-gateway 讓容器看得見它,Open WebUI 會自動偵測;沒有 Ollama 也完全不妨礙,就像前面實測的那樣,任何 OpenAI 相容端點都能當引擎。想在手機上用,它同時是 PWA,裝到主畫面後就是一個全螢幕的聊天 App。

品牌條款的 50 人線,實務上這樣算

回到授權,把決策整理成對照表再看會更具體。

使用情境授權需求附帶條件
個人與家庭自用免費品牌要留要換都可以,50 人以下適用例外條款
團隊內部使用,不限人數免費品牌原樣保留即可,涵蓋營利公司內部使用
對外提供服務,品牌照舊免費條款管的是品牌,不是服務對象
白牌改造,30 天內直接使用者 50 人以內免費授權第 4 條例外 (i) 明文允許
白牌改造且規模超過 50 人企業授權或取得書面許可;報價制,僅限登記法人
企業獨佔功能(Terminals 終端機)企業授權官方企業文件明列獨佔

最後那個 50 人怎麼算:滾動 30 天內的直接使用者人數,看的不是峰值也不是帳號總數,而且這個數字只在你想動品牌時才相關。這段是條文解讀,真正簽約前仍以官方書面回覆為準。

兩個讀者常問的問題順手回答。第一,Open WebUI 跟之前介紹過的 OpenUI 不是同一個東西:後者是輸入一句描述就生網頁元件的開源介面產生器,前者是自架 AI 聊天平台,搜尋時常被名字搞混。第二,不裝 Ollama 可以嗎?可以,只要手上有任何 OpenAI 相容的 API 端點與金鑰就能開始用,本機模型是選項而非前提。

如果你對自架這條路的興趣不只是聊天介面,同樣是開源自架、把公司文件收進可問答知識庫的 Onyx,或是把筆記庫開放給 AI 讀寫的 Fast Note Sync,都值得放進同一張評估清單裡一起比較。

整體判斷:Open WebUI 把「自架一套看起來像 ChatGPT 的系統」這件事做到了近乎免費且一小段指令就通的程度,資料落地、引擎自選、繁中介面齊備,這些都是實測屬實的部分;要付代價的地方同樣明確,白牌改造才會碰到的 50 人門檻、需要跟上的安全更新節奏,以及它其實是個多使用者平台的複雜度。先在內部用 Docker 架一台、拿現有金鑰接上引擎玩一輪,再決定要不要升級成團隊的正式設施,是最穩的第一步。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 2021

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...