OtterHub:基于 Cloudflare + Telegram 的免费私人云盘部署指南

OtterHub:基于 Cloudflare + Telegram 的免费私人云盘部署指南

✦ 为什么选择 OtterHub?

在尝试过各种图床和轻量分享方案后,我一直在寻找一个真正适合长期自用的私人云盘:要足够简单、完全免费、大文件支持良好,且不依赖复杂的服务器运维。

OtterHub 完美契合了我的需求:

  • 零成本存储:利用 Telegram Bot API 作为无限存储后端。
  • Serverless 架构:跑在 Cloudflare Pages 上,无需维护服务器。
  • 大文件友好:支持分片上传(实测 100MB+)与 HTTP Range 视频流预览。
  • 极简私密:JWT 密码锁,UI 清爽,像水獭藏鱼一样安全。

✦ 我的部署架构

虽然官方推荐 GitHub 联动部署,但作为实用主义者,我选择了更自主的 wrangler CLI 路线:

  1. 计算层:Cloudflare Pages(处理逻辑与路由)。
  2. 索引层:Cloudflare KV(存储文件元数据)。
  3. 存储层:Telegram 频道(实际存放文件二进制数据)。
  4. 前端:Next.js 构建的响应式 Web 界面。

✦ 部署全过程记录

如果你也想打造一个同款网盘,可以参考我的步骤:

1. 准备工作

  • Cloudflare: 获取 API Token 和 Account ID。
  • Telegram: 找 @BotFather 创建一个新的 Bot,并获取你的 Chat ID(文件存放的私聊或频道)。
  • 环境: 需要 Node.js 18+(我在手机 Proot 环境下使用了 v24.19.0)。

2. 构建与配置

克隆源码后进行本地编译:

npm install
npm run build # 生成 frontend/out 静态资产

在 Cloudflare 控制台创建 KV 命名空间 oh_file_url 并绑定到项目。

3. 环境变量注入

设置以下关键变量:

  • PASSWORD: 你的网盘登录密码。
  • TG_BOT_TOKEN: 你的 Bot 令牌。
  • TG_CHAT_ID: 你的 TG 账号 ID。

4. 解决国内访问问题(关键)

Cloudflare 默认域名在国内常有干扰。经过测试,我对比了多个域名的连通性:

  • *.pages.dev: 连通性一般。
  • *.eu.cc / *.ccwu.cc: 容易被运营商 DNS 污染。
  • *.cc.cd: 目前解析最稳,直连速度非常理想。

最终我将其绑定到了:https://pan.rwpt.cc.cd


✦ 使用体验

目前 OtterHub 已平稳运行,我用它来存放日常的一些技术文档和私人小视频。

  • 优点:上传逻辑顺滑,视频预览不卡顿,关键是完全不用掏一分钱。
  • 提示:如果遇到 ERR_CONNECTION_CLOSED,建议检查浏览器的 QUIC 设置或调整分流规则,确保直连没被掐断。

“像水獭一样,把文件悄悄藏好,需要时再拿出来 🦦”


✦ 相关链接