自架 LobeHub:多人共用的 AI 對話平台,串接自己的模型 API
用 Zenavo 的範本把 LobeHub 連同 PostgreSQL、Redis 和 RustFS 檔案儲存部署到自己的伺服器上,綁定兩個網域,註冊後限制可註冊的電子郵件,串接 OpenAI、Claude 等模型服務商,並做好備份和升級。
本文亦提供 English、简体中文、日本語、Español 和 Bahasa Indonesia。
LobeHub(前身為 LobeChat)是一個開源的 AI 對話平台:支援 OpenAI、Anthropic、Google、DeepSeek 等數十家模型服務商,有多使用者帳號、對話紀錄、檔案上傳、知識庫和智慧代理。介面完整,很適合為團隊或家人架設一個共用的 AI 入口。
伺服器端版本需要資料庫和檔案儲存,從零開始自己架設要設定不少東西。Zenavo 的 LobeHub 範本把這些都打包好了,本文從部署一路走到備份。如果只想用單一容器和 1 個網域架設更輕量的聊天介面,也可以參考 Open WebUI。
伺服器、Zenavo 平台和模型服務商的 API 分別計費;LobeHub 本身不提供模型,對話會送到你設定的服務商。
範本包含什麼
開啟 LobeHub 範本,部署後專案裡會有四個服務:
| 服務 | 用途 |
|---|---|
| lobehub | 應用程式本身,映像檔 lobehub/lobehub:2.3.3,HTTP 連接埠 3210 |
| postgresql | 帳號、對話、設定和加密儲存的 API Key,附全文搜尋擴充(ParadeDB,PostgreSQL 17) |
| redis | 快取和工作階段 |
| rustfs | 相容 S3 的檔案儲存,存放上傳的圖片和檔案;連接埠 9000 是 S3 API,9001 是管理主控台 |
範本建議預留 2 GB 記憶體。資料庫密碼、登入加密金鑰(AUTH_SECRET)和 API Key 的加密金鑰(KEY_VAULTS_SECRET)都會在部署時自動產生。
準備兩個網域
LobeHub 需要兩個公開網址:
- 應用程式網址,例如
https://chat.example.com,用來開啟 LobeHub; - 檔案儲存網址,例如
https://files.example.com,瀏覽器上傳和檢視圖片時會直接存取它。
先在 DNS 為這兩個子網域新增指向伺服器的 A 記錄。接著在 Zenavo 中連接一台 Linux 伺服器,開啟範本,填入這兩個網址(結尾不要加斜線),選擇伺服器並部署。
綁定網域
部署後分別綁定:
- 在 lobehub 服務的 網路 頁,為
3210連接埠綁定chat.example.com; - 在 rustfs 服務的 網路 頁,為
9000連接埠綁定files.example.com。
網域必須和部署時填寫的一致。等 HTTPS 生效後開啟 https://chat.example.com。步驟見網域文件。
9001 是 RustFS 的管理主控台,不需要、也不建議綁定公開網域。
註冊帳號,然後限制註冊
開啟應用程式,用電子郵件和密碼註冊第一個帳號。
範本預設允許任何人註冊。如果只給團隊或家人內部使用,請在 lobehub 服務的 變數 中新增允許註冊的電子郵件或網域,儲存後重新啟動:
AUTH_ALLOWED_EMAILS=example.com,friend@gmail.com
可以填完整的電子郵件,也可以只填網域,以逗號分隔。之後不在名單上的電子郵件就無法註冊。
需要電子郵件驗證或找回密碼時,再設定 SMTP:
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=noreply@example.com
SMTP_PASS=你的 SMTP 密碼
AUTH_EMAIL_VERIFICATION=1
使用 465 連接埠時,把 SMTP_SECURE 改成 true。不設定 SMTP 也能正常註冊和登入,只是無法寄出驗證信和重設密碼的信。
串接模型
有兩種方式,可以同時使用。
每個人填自己的 Key。 登入後開啟 設定 → AI 服務商,選擇服務商,填入 API Key,必要時填寫代理位址,再點檢查。Key 會用 KEY_VAULTS_SECRET 加密後存進資料庫,其他使用者看不到。
由管理員統一提供。 在 lobehub 服務的 變數 中設定服務商的 Key,所有使用者都能直接使用,不必自己填:
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
DEEPSEEK_API_KEY=sk-...
相容 OpenAI API 的服務商或閘道,可以用 OPENAI_PROXY_URL 改位址,例如指向你自架的 New API、Magpie 或 LiteLLM 閘道 https://api.example.com/v1,再用閘道為 LobeHub 單獨發一把有額度限制的金鑰。想為 LobeHub 加上免費的即時聯網搜尋,還可以在同一個專案裡加入自架的 SearXNG 元搜尋引擎;想把個人助理接進 Telegram 或 Discord,可搭配 OpenClaw。
統一提供的 Key 會被所有能登入的人使用,並消耗你的額度。 設定之前,請先依照上一節限制註冊。
關於上傳的檔案
上傳的圖片和檔案存放在 rustfs 的 lobe 儲存桶裡。範本把這個儲存桶設為公開可讀,讓瀏覽器可以直接顯示圖片:知道檔案網址的人不需要登入就能開啟它。網址裡含有隨機路徑,不會被列出或搜尋到,但請不要上傳你無法接受被人透過連結開啟的敏感檔案。
送給模型的圖片會轉成 base64 直接放進請求裡(範本設定了 LLM_VISION_IMAGE_USE_BASE64=1),所以模型服務商不需要能存取你的檔案網域。
備份
需要備份的有兩部分:
- postgresql:帳號、對話、設定和加密的 Key 都在這裡。在它的 備份與還原 中隨時都能備份,不必停機,也可以設定自動備份。
- rustfs:上傳的檔案。這是磁碟區備份,需要專案處於停止狀態,適合在維護時段進行。
還有一樣東西要另外保存:lobehub 服務變數裡的 KEY_VAULTS_SECRET。把資料庫還原到新的部署時,必須使用同一個值,否則存在資料庫裡的 API Key 將無法解密。部署後不要修改它。
備份要實際還原並核對過才算可靠。重要的資料,請再下載一份備份自行保存。
升級
範本固定使用 lobehub/lobehub:2.3.3。升級前先讀 LobeHub 的發行說明,備份 postgresql,再到 lobehub 服務 設定 的 來源 中把映像檔標籤改成新版本並部署。資料庫結構會在啟動時自動遷移,所以升級前務必先備份。
常見問題
開啟頁面後,登入跳轉出錯?
檢查 lobehub 綁定的網域是否與部署時填寫的應用程式網址完全一致,包括 https://,而且結尾沒有斜線。如果改過網域,請在 lobehub 服務的 變數 裡把 APP_URL(檔案儲存網址則是 S3_ENDPOINT)改成新網址,再重新啟動。
上傳圖片失敗?
多半是 files.example.com 沒有綁定到 rustfs 的 9000 連接埠,或 HTTPS 憑證還沒生效。在瀏覽器直接開啟這個網域,能連上(即使顯示錯誤訊息)就代表綁定正確。
AI 回覆是空的或出現錯誤?
先在 設定 → AI 服務商 裡點檢查,確認 Key 和模型可以使用。使用第三方代理時,留意位址是否需要以 /v1 結尾。
需要多大的伺服器? 範本建議為 LobeHub 預留 2 GB 記憶體,加上 PostgreSQL、Redis 和 RustFS,建議使用 4 GB 記憶體以上的伺服器。模型推論在服務商那端進行,不會占用你伺服器的 CPU。
從 LobeHub 範本開始:準備好兩個網域,部署後先限制註冊,再串接模型。
這是 coding agent 讀到的內容,網址是 https://zenavo.app/zh-TW/blog/self-host-lobehub.md。
無法載入 Markdown,請直接開啟: https://zenavo.app/zh-TW/blog/self-host-lobehub.md