开始 可运行的演示
可运行的演示
apps/ 下的一个文件夹,从仓库根目录启动。除了真实存储桶的账号,其他都不需要任何账号。本页内容
Playground
在这台电脑上运行的网盘:文件内容在 storage/files 中,条目在 SQLite 中,服务器与页面在同一进程。
http://localhost:5180是 React 版网盘;/vanilla.html不使用框架;/headless.html完全由 hooks 构建。?as=bea表示另一个人,便于测试共享;?lang=es、?lang=zh和?theme=dark顾名思义。- 助手工具位于
/api/mcp:claude mcp add --transport http rebofiles http://localhost:5180/api/mcp。 - Word 文档会在 Rebodocs 编辑器中打开,⌘S 会把它保存为下一个版本。
演示
首页上的网盘,保存在页面中:Acme 的文件在这里生成,Claude 通过 MCP 工具重命名其中一个文件,工具调用也在页面中应答。
它基于 createMemoryClient 构建,因此不需要服务器,浏览器测试也是通过它进行的。
真实存储桶
连接 Cloudflare R2、AWS S3、MinIO 或 Backblaze 的网盘,条目存放在这台电脑的 SQLite 中。
把 apps/storage/.env.example 复制为 .env 并填写,为存储桶设置 apps/storage/cors.json 中的跨域规则,然后运行 npm run storage:check,在页面尝试之前先从 Node 走一遍文件的完整流程。存储一页介绍具体做法。这里启用了全部功能:用 ?as=bea 与 Bea 共享(她与 Carl 同在 group:team)、带密码的链接、评论、由服务器生成的 PDF 第一页、文件检查,以及 /api/mcp 上的助手。
文档
用 Rebodocs 完整处理 Word 文档:新建文档、多人同时编辑的编辑器、查看器和 PDF。地址为 http://localhost:5184。
以 ?as=ana 打开一个文档,共享给 bea 后再以 ?as=bea 打开:双方都能看到对方的光标和输入的内容,两人都离开后会保存一个版本。此外,网盘的其他功能也都已开启:历史中的比较、副本、文件收集(?link=)、服务器为每个文件生成的内容(用 ffmpeg 处理视频、OCR),以及演示在 /api/hooks 接收的 webhook。房间的实现在 apps/documents 的 server/collab.ts 中。
桌面端
基于 Tauri 的独立窗口网盘,可连接 playground 或任意服务器。
需要在 Mac 上安装 Rust 和 Xcode 命令行工具。npm run build:desktop 会生成 ReboFiles.app;Server → Sync a Folder… 让电脑上的文件夹与网盘保持一致(同步文件夹)。桌面端与其他来源一页介绍服务器需要什么。
本网站
首页(内含演示)以及这些页面:基于 Next.js 和 Tailwind,构建为静态文件,提供英文、西班牙文和中文。/demo/ 以三种形式展示网盘,每种一个标签页:开箱即用的 <FileDrive>、它的紧凑布局,以及完全由 headless hooks 构建的创意套件风格界面。