Foxel
统一管理多源存储 + AI 语义搜索的私有云盘,支持自然语言找文件、RBAC 权限和 MCP Age
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
统一管理多源存储 + AI 语义搜索的私有云盘,支持自然语言找文件、RBAC 权限和 MCP Age
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你只记得一张照片里的大致氛围——「那次露营的篝火晚会」——但想不起文件名、拍摄日期、甚至是在哪块云盘存的。传统搜索束手无策,而 Foxel 可以。只需输入「篝火露营照片」,它就能从你的整个私有存储网络中把这张照片捞出来。这背后依赖的,正是 AI 语义搜索能力。
个人和团队的数据分散化早已是普遍痛点。Google Drive、百度网盘、夸克、OneDrive、Telegram……每个平台都是一座信息孤岛。Foxel 的出现,尝试用「统一抽象层」来解决这个问题:无论数据实际存储在何处——本地磁盘、S3 兼容存储、百度/夸克等国内网盘,甚至 Telegram——用户都通过同一个界面访问、管理和搜索它们。
该仓库由独立开发者 DrizzleTime 维护,采用 MIT 协议开源,当前最新版本为 v2.2.2,主打「AI 驱动的私有云存储」定位,在 GitHub 收获 1037 颗星。
图1:Foxel 中文管理界面
Foxel 的虚拟文件系统(Virtual FS)层对下屏蔽了各种存储后端的差异,对上提供统一操作接口。团队成员可以在同一个界面中同时浏览 S3 中的项目文档、夸克网盘里的家庭照片,以及本地 NAS 上的备份文件,而无需在多个平台间切换。
这是 Foxel 区别于其他云盘产品的核心能力。系统内置向量数据库(支持 Milvus Lite / Milvus Server / Qdrant),配合可配置的 Embedding 服务(如 OpenAI、Claude、DeepSeek、Ollama 等),对上传的文件内容进行语义索引。用户不再需要精确的文件名——输入「第二季度财务报告」「露营篝火照片」这类自然语言描述,系统即可返回相关内容。 值得注意的是,AI 搜索功能需要额外配置 Embedding 服务(本地 Ollama 或云端 API),Foxel 本身不内置模型,但这也意味着它可以灵活接入任何主流 AI 服务商。
Foxel 的存储适配器体系非常完整:
domain/adapters/registry.py),新增存储类型只需实现标准接口,无需修改核心代码。常见的图片、视频、PDF、Office 文档均可直接在浏览器内预览,无需下载。预览功能通过 processors/ 模块实现,支持图片缩略图生成(thumbnail.py)等文件处理能力。
企业级功能毫不含糊:内置 Admin/User/Viewer 三种角色,支持自定义角色+细粒度路径权限规则(通配符/正则),配合完整的审计日志(谁、何时、从哪个 IP、操作了什么)。数据安全不依赖存储平台自身的安全机制,而是由 Foxel 统一管控。
通过 manifest.json 声明式注册,运行时加载 React 前端组件和自定义后端路由,无需 fork 核心代码即可扩展功能。插件架构是 Foxel 长期可扩展性的基础设施。
Foxel v2.x 引入了 MCP(Model Context Protocol)集成,内置 AI Agent 可调用 VFS 操作工具、网页抓取工具、文件处理工具。这意味着用户可以通过自然语言对话完成文件整理、内容搜索、甚至自动化工作流编排,而无需编写代码。
后端采用 Python 3.14(前沿版本),基于 FastAPI 构建异步 REST API,使用 Tortoise ORM 操作 SQLite 数据库,整体轻量但功能完整。入口文件 main.py 中同时注册了 API 路由、SPA 静态文件服务(SPAStaticFiles)和 CORS 中间件,Uvicorn 作为 ASGI 服务器运行。
架构上采用经典的领域驱动设计(DDD)分层:
domain/ 下每个子目录代表一个业务域(auth、role、permission、share、adapters、ai、tasks 等)api.py(接口层)、service.py(业务逻辑)、types.py(Pydantic 模型)三件套api/routers.py 统一汇总所有路由
这种结构职责清晰,新增功能只需在一个子目录下实现即可,不污染核心代码。前端采用 React 19 + TypeScript + Vite 构建,配合 Ant Design 组件库。vite.config.ts 配置了 React 插件,代码结构遵循 React 生态最佳实践。Dockerfile 中的多阶段构建将前端 Bun 构建流程独立,确保最终镜像只包含生产资源。
Dockerfile 设计考究:
oven/bun:1.2-slim 打包 Bun + npm 安装 + Vite 构建python:3.14-slim,通过 uv 安装所有依赖dist/ 复制到后端镜像,由 FastAPI 的 StaticFiles 提供 SPA 服务
最终镜像通过 compose.yaml 以服务方式运行,暴露 8088 端口(默认),一个 docker-compose up -d 即可完成全部部署。domain/ai/ 目录下包含:
inference.py:推理调用封装vector_providers/:向量数据库适配(Milvus / Qdrant)service.py:AI 服务编排
支持多 Embedding 服务并行配置,由用户选择使用哪个(OpenAI / Claude / DeepSeek / Ollama 等),vector_providers 则负责向量存储与检索。domain/tasks/ 实现了异步任务调度:基于 croniter 的定时任务 + 内存任务队列(task_queue.py),支撑文件索引、备份、定时任务等后台处理,不阻塞主请求。
官方推荐 Docker Compose 方式,只需三步:创建数据目录 → 下载 compose.yaml → docker-compose up -d。官方提供了国内镜像(ghcr.nju.edu.cn),国内用户也能快速拉取。默认账号 admin/admin,首次登录需完成初始化配置。
部署不含 AI 搜索功能所需的 Embedding 服务——这是有意设计。如果需要语义搜索,需要额外配置 Ollama(本地)或其他 Embedding API。
Foxel 代表了一种趋势:AI Native 的基础设施软件。传统云盘只是「存储+同步」,而 Foxel 将语义搜索、MCP Agent、插件生态深度整合进存储层,让数据不仅能「存」,更能「被理解」和「被主动服务」。随着本地大模型能力的增强,这类产品的想象空间正在快速扩大。