Foxel 開源私有雲端硬碟:檔案留在你機器,AI 搜尋自帶模型

Foxel 是 1,048 顆星的 MIT 開源私有雲端硬碟,把本機、S3、WebDAV 與各家雲端硬碟收進單一入口,再掛上 AI 語意搜尋。實測官方 demo 發現搜尋開箱是空的,模型要自己填;被索引的圖片與文字會離開你的伺服器,真正支援語意索引的也只有圖片與純文字檔。部署前該知道的邊界都在這裡。

用 AI 摘要這篇文章:

Foxel 是一個用 Python 加 React 寫的開源私有雲端硬碟,2025 年 5 月出現在 GitHub,MIT 授權,到 2026 年 8 月累積約 1,048 顆星。它想解決的問題很常見:檔案散落在本機硬碟、S3、WebDAV、Google Drive、OneDrive 和一堆雲端硬碟服務裡,每次找東西都要先想起它放在哪。Foxel 把這些後端全部掛進同一個介面,再往上加了帳號權限和 AI 語意搜尋。

不過動手之前有幾件事值得先知道。AI 搜尋開箱是空的,你要先填自己的模型金鑰;被索引的圖片和文字會離開你的伺服器;真正吃得下語意索引的檔案格式,也比官方宣稱的少一截。這些邊界,原始碼和官方 demo 裡都對得上。

和 AList 差在哪:掛載清單再多走兩步,檔案真的落進你的機器

自架檔案聚合這個賽道上,多數人第一個想到的是 AList。AList 的強項是把各家雲端硬碟和協定掛載成一份清單,串流影片時大多直接把流量轉回原站,本機不做太多事。Foxel 的定位明顯不同,它往儲存層走:檔案上傳之後落在你自己機器的 data 目錄,配 SQLite 資料庫管理中繼資料,從儲存、權限到索引都由這一套系統自己扛。

從原始碼的 adapter 目錄實際數下來,Foxel 支援 13 種儲存後端:本機、S3 相容、WebDAV、SFTP、FTP、Google Drive、OneDrive、Dropbox、夸克、PikPak、Telegram、AList,甚至還有 Foxel 對 Foxel 的站對站同步。夸克和 PikPak 這兩個中國大陸常用的雲端硬碟服務都在清單裡,對岸讀者會覺得貼心,台灣使用者則多半只會用到前半段。介面裡的儲存掛載頁可以同時掛多個後端,每個掛載點各自設定路徑,存取權限則由前述路徑層級的規則控制。

Foxel 的儲存掛載頁面,列出已掛載的儲存後端與新增掛載的按鈕Pin
儲存掛載頁:demo 掛了本機與 S3 兩個掛載點,實際支援的後端共 13 種

檔案總管本身是常見的雙欄設計,左側導覽列把處理器、自動任務、任務佇列、分享、離線下載、儲存掛載、應用中心、使用者管理一路排下來,主畫面支援清單和格子兩種呈現,上傳、新建資料夾、排序都在同一排按鈕裡。官方 demo 的 v2.2.2 環境裡放了幾個測試資料夾和 png、doc、pdf 檔案,操作起來流暢度沒有明顯問題,畢竟只是幾個檔案的量級。

Foxel 官方 demo 的檔案總管介面,左側導覽列包含處理器、自動任務、離線下載、儲存掛載等功能,主畫面以格子呈現檔案Pin
Foxel v2.2.2 官方 demo 的檔案總管,側欄把任務、掛載、應用中心等管理功能全部排進同一個介面

權限這層做得比想像中認真。內建 Admin、User、Viewer 三種角色,也能自訂角色,授權規則細到路徑層級,支援萬用字元和正規表示式,每個使用者動作都會寫進稽核日誌,連來源 IP 和耗時都記。對家庭或小團隊來說,這已經摸到輕量商用雲端硬碟的門檻。

AI 搜尋開箱是空的,第一件事是填自己的模型金鑰

Foxel 最有記憶點的賣點是 AI 語意搜尋,用自然語言描述去找檔案,而不是比對檔名。實際登入官方 demo(帳號密碼都是 admin)操作一輪後,我發現一個官方文件沒有明講的事實:語意搜尋預設是空的。

demo 的搜尋框有「智慧搜尋」和「檔名搜尋」兩種模式,智慧搜尋就是向量模式,也是預設值。輸入「城市」送出,畫面安安靜靜地回報沒有結果。直接查後端 API 才看到原因:系統裡六種 AI 能力,對話、視覺、嵌入、重排、語音、工具,全部是 null;供應商清單裡只有一條 DeepSeek 紀錄,API 金鑰欄位是空的。AI 設定頁的介面也印證了這件事,模型區塊顯示目前沒有任何模型,六種能力的預設模型下拉選單全是待選狀態。

Foxel 的 AI 設定頁面,供應商清單只有一條 DeepSeek 紀錄,模型區顯示沒有任何模型,三個預設模型下拉選單都是待選狀態Pin
官方 demo 的 AI 設定頁:供應商有 DeepSeek 條目但沒有填金鑰,模型清單是空的,預設模型選單全部待選

demo 裡還有一個值得記下來的細節。檔名搜尋模式不需要 AI,理論上該永遠可用,但我用檔名模式搜「城市」,一樣是空的,而畫面上明明有一個叫「城市」的資料夾。合理的推測是兩種搜尋都依賴事先建好的索引,demo 上的索引任務從來沒有跑過。這對自架者的啟示是:把檔案傳上去只是第一步,索引相關的自動任務設定好、真的跑過一輪,搜尋才會有東西。

換句話說,Foxel 的 AI 是自帶金鑰(BYOK)的設計。它支援四種 API 格式:OpenAI 相容、Gemini、Anthropic、Ollama。你填哪家的 base URL 和金鑰,它就用哪家,程式碼裡沒有預設啟用的供應商,也沒有綁定任何官方付費服務;設定頁倒是內建了 OpenAI、DeepSeek、SiliconFlow、Ollama 等八個供應商範本,一鍵帶入位址,金鑰仍然要自己填,demo 裡那條 DeepSeek 紀錄就是這樣來的。想完全不讓內容離開機器,把供應商指到自架的 Ollama 端點就可以。這種設計在近一年的自架工具裡越來越常見,像是 Input 0 的語音轉文字也走同樣路線,本機能做的不外送,需要 AI 的部分由你決定交給誰。

代價是第一次啟用的體驗。想讓「找一張海邊的照片」這種搜尋生效,你得先到 AI 設定頁新增供應商、填金鑰、同步模型、再指派視覺和嵌入模型,少一步都不行。設定頁列了六種模型能力,不過就搜尋這條路徑來說,真正會被用到的只有視覺和嵌入兩種,重排能力的函式在原始碼裡寫好了卻還沒接進搜尋流程,屬於留了位置的設計。

圖片是這樣被找到的:AI 先看圖寫描述,再用文字找文字

讀原始碼可以完整看到一張圖片被索引的過程。索引器先判斷副檔名,遇到 jpg、jpeg、png、bmp 這四種圖檔,會先把圖壓縮、轉成 base64,送到你設定的視覺模型,請模型用文字描述這張圖的內容,再拿這段描述去做文字嵌入,向量和 AI 生成的描述一起存進本機的向量資料庫,預設是嵌入式的 Milvus Lite,也可以換成 Qdrant 或 Milvus Server。純文字檔則是被切成一段一段分別嵌入,每一段帶著在檔案裡的起始位置,搜到時能對回原文。

搜尋的時候,你輸入的那句話同樣會送去做嵌入,再和資料庫裡的向量比對。所以嚴格說,Foxel 的圖片語意搜尋找的是 AI 看圖寫下的描述,兩層模型接力,視覺模型負責看圖,嵌入模型負責算距離。這個機制也解釋了搜尋品質的變數:描述寫得好不好,直接取決於你接的視覺模型好不好。

檔案格式的支援範圍就藏在同一個判斷式裡。會被建立向量索引的只有那四種圖檔,加上 txt 和 md 兩種純文字檔;遇到 PDF、Word、Excel 或其他格式,程式會走另一條分支,只建檔名索引,介面訊息的意思是這類型暫不支援向量索引。官方 README 和官網都寫著可以用自然語言搜尋「圖片、文件等非結構化內容」,對照原始碼,那個「文件」實際上只到純文字檔為止。如果你的檔案庫以 PDF 為主,語意搜尋幫不上忙,這類需求可以看看 Mango Finder 這類本機檔案搜尋工具的路線。

私有雲的例外條款:這些東西會離開你的伺服器

把上面的機制串起來,會看到一個值得停下來想清楚的點:檔案存放確實私有,索引和搜尋卻不是。開啟向量索引後,圖片的壓縮副本會送到視覺模型,文字檔的分段內容會送到嵌入模型,之後每一次搜尋,你輸入的查詢字串也會送出去。除非供應商填的是自架 Ollama,否則這三條路都通向外部服務。

這不是藏起來的行為,程式碼裡明明白白,但宣傳頁上的「私有雲」三個字容易讓人忽略它的存在。實際使用時有幾種應對:隱私敏感的目錄不要開索引,只對圖片庫這類無妨的內容開;或者整套都指到自架模型,把例外條款收掉。向量資料庫預設在本機,AI 生成的描述和向量不會放在別人那裡,這點和內容外送是兩回事,值得分開評估。

對外連線還有幾條固定的路。自架實例啟動時會先同步一次公告,之後每 24 小時向 foxel.cc 拉一次;應用中心的插件清單和圖標來自 center.foxel.cc 和 foxel.cc;預覽 Office 文件時走 Microsoft Office Online;影片庫抓 TMDB 詮釋資料。前端程式碼裡沒有埋遙測或廣告 SDK,這些連線都是功能性的,但完全離線內網部署的使用者要知道它們存在,預覽和索引各自有各自的外送路徑,隱私評估時要分開算。

一個容器就能跑,但金鑰要自己換

部署本身相當輕。官方 compose 檔只定義一個服務,拉 ghcr.io 上的映像檔、開一個埠、掛一個 data 目錄就結束,向量資料庫和應用都包在同一個容器裡。第一次啟動會引導你建立管理員帳號。

有兩個細節值得在啟動前處理。compose 檔裡附了範例性質的 SECRET_KEY 和暫時連結金鑰,官方強烈建議換成自己隨機產生的值,照辦即可。環境需求方面,後端要求 Python 3.14 以上、前端是 React 19,都偏新,好在 Docker 映像檔把環境包好了,絕大多數人不需要碰系統的 Python。容器時區預設 Asia/Shanghai,不在意就罷了,在意記得改。

整體能力的其他部分,像是公開或加密的分享連結、離線下載、背景任務中心、水印處理器,還有把整個站當成 S3 端點或 WebDAV 網路磁碟掛載的協定映射,在 demo 介面裡都看得到對應的頁面。比較少人提的還有兩個:一個是共同觀影房,用 WebSocket 同步多人的播放進度;另一個是內建 AI 助理,從原始碼看它配了檔案操作、網頁抓取、處理器呼叫等工具,接上對話模型後可以在檔案環境裡執行任務。

應用中心值得單獨看一眼。內建六個官方應用:文字編輯器、PDF 檢視器、Office 文件檢視器、Markdown 編輯器、圖片檢視器和影片媒體庫,圖片檢視器處理部分 RAW 檔、EXIF 資訊也看得到,影片庫會從 TMDB 抓電影電視劇的詮釋資料。其中 Office 檢視器的說明寫明預覽經由 Microsoft Office Online,這一點和上一節直接相關:預覽 Word 或 PowerPoint 時,文件內容走的是微軟的線上服務。這些功能在 demo 都有對應頁面,穩定度就得自己扛,這也是所有自架工具共同的代價,NocoDB 那篇談過的授權與自架責任邊界在這裡同樣適用。

一千顆星、一個人寫的專案:動手前要算的成本

專案體質是最後一個要攤開的面向。GitHub 上的貢獻紀錄只有兩個名字:作者 DrizzleTime 的 54 次提交,加上 dependabot 的 14 次依賴更新。發版節奏看得出週期性,2026 年 3 月連發 v2.1.0 和 v2.1.1,5 月初三週內連發 v2.2.0、v2.2.1、v2.2.2,之後就停在 5 月 10 日這版。main 分支倒是有東西,6 月 20 日加入的 OpenAI 協定強化還沒隨任何版本發布,7 月以來的提交全是依賴升級。社群經營以微信群和 Telegram 為主,文件和介面以簡體中文為底、提供語言切換。一個人維護的專案不代表不好,它同時代表決策快、方向一致,以及巴士係數等於一的現實,資料放進去之前,這一點要算進成本。

綜合下來,Foxel 適合這樣的人:家裡或機房有一台常開機器,想把本機和多個雲端檔案收進單一入口,願意自己管模型金鑰,並且能接受用圖片描述當搜尋仲介的機制。反過來說,如果需求是團隊協作、文件版本控、行事曆這類完整生態,Nextcloud 仍然是不同量級的答案;如果只想要一個把各家雲端硬碟串起來看的清單,AList 更輕。至於把機密文件放進去又開索引,那就不該是任何工具的用法。

想先摸摸看,官方 demo 開著 admin 帳號可以進去點一輪;要自己架,一份 compose 檔加兩個換掉的金鑰就是起點。至於 AI 搜尋值不值得開,判斷標準很簡單:你想像一下那些圖片配上文字描述後送到你填的那家模型服務,這個畫面你能接受,就開。

Sliven 褚崇名
Sliven 褚崇名

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

文章: 983

發佈留言

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


Share to...