✕
开启精彩搜索
热门搜索
emby EMBY 解析 免流 源码 IPV6 阿里 阿里云 青龙 音乐 网心 网心云 webdav 阿里云盘 unraid 洗白 Rclone 刮削 云梦

OpenList-Worker 部署教程:在边缘计算平台上搭建你的聚合网盘

OpenList 是一个支持数十种网盘挂载、文件预览、下载与分享的多功能目录列表工具。而 OpenList-Worker 是官方项目的 TypeScript + Serverless 移植版——后端由 Go 重写为运行在边缘计算平台上的 TypeScript 服务,前端保持一致的界面与交互体验。

简单来说:你可以在 Cloudflare Workers、腾讯云 EdgeOne、阿里云 ESA 等平台上,零服务器成本地跑起一个属于自己的聚合网盘。


一、OpenList-Worker 是什么

它基于 Cloudflare Workers / EdgeOne Cloud Function / 阿里云 ESA 运行,核心特性包括:

  • 78 个存储驱动:国内网盘(阿里云盘、夸克、百度网盘、115、123 云盘、天翼云盘、迅雷、PikPak 等)、国际网盘(Google Drive、OneDrive、Dropbox、MEGA 等)、对象存储(S3 兼容、Cloudflare R2、WebDAV、FTP、SFTP 等)、代码托管(GitHub、GitHub Releases)等。
  • 文件管理能力:统一目录树浏览,图片/视频/音频/文档/代码/压缩包在线预览,跨存储上传、批量下载、流式传输、带有效期与密码的分享链接。
  • 外部接口:WebDAV、S3 兼容协议,以及可被 AI 助手集成的 MCP 端点。
  • 权限与认证:RBAC 权限控制、账号密码 + TOTP / WebAuthn / SSO / LDAP。
  • 数据存储:以 Cloudflare D1(SQLite)为主,也支持 KV / Blob / Durable Objects 与外部 MySQL / MariaDB。

技术栈方面,后端使用 Hono.js + TypeScript,前端为 SolidJS + Hope UI,构建工具是 Wrangler 与 esbuild。


二、部署前准备

无论选择哪种方式,你都需要:

  1. 一个对应平台的账号(Cloudflare / EdgeOne / 阿里云 ESA)。
  2. 一个 JWT_SECRET:至少 16 位的随机字符串,用于 JWT 令牌签名与加密。这是部署时的必填项,请提前生成好。
  3. 如果走手动部署路线,还需要 Node.js 18+(推荐使用 pnpm)。

三、方式一:一键部署(推荐新手)

项目为各平台提供了官方一键部署按钮,操作最为简单。

3.1 部署到 Cloudflare Workers

  1. 先 Fork 本项目到你自己的 GitHub 账号(Cloudflare 平台要求必须先 Fork,再连接仓库部署,不能直接点按钮)。
  2. 在 Cloudflare 控制台连接你的仓库进行部署。
  3. 部署过程中填写 JWT_SECRET(≥16 位随机串)。
  4. 数据存储默认自动选择平台自带的持久化后端(Cloudflare 上即 D1)。
  5. 部署完成后,首次访问站点会进入安装向导,按提示完成初始化并设置账号密码。

3.2 部署到腾讯云 EdgeOne Makers

EdgeOne 提供国际站与中国站两个一键部署按钮,点击后按引导操作即可,同样需要在部署时填写 JWT_SECRET,完成后通过安装向导初始化。

3.3 部署到阿里云 ESA

在阿里云控制台的「边缘计算和 AI → 函数和 Pages」中导入本仓库,然后按引导完成部署与初始化。

💡 提示:三个平台的一键部署流程高度一致——点按钮(或导入仓库)→ 填 JWT_SECRET → 等待部署 → 访问站点走安装向导。真正的差异只在控制台入口。


四、方式二:手动部署(适合本地开发与自定义)

如果你需要本地调试、修改代码,或想更精细地控制部署过程,可以选择手动部署。

4.1 本地开发

# 1. 安装依赖
pnpm install

# 2. 按需配置 wrangler.jsonc 中的绑定与变量
#    JWT_SECRET 参考 .dev.vars.example

# 3. 启动开发服务器(自动拉取官方前端并运行 Worker)
pnpm run dev:unified

# 或者只运行 Worker(不拉取前端)
pnpm run dev:worker

4.2 生产部署

# 一键部署:构建前端产物 → 部署到 Cloudflare Workers
# (KV 绑定由 wrangler 自动预配)
pnpm run deploy

# 或直接部署 Worker(跳过前端构建)
pnpm run deploy:worker

五、部署后的配置变量

部署完成后,请关注以下环境变量(完整列表见仓库的「配置变量」文档):

变量 默认值 说明
JWT_SECRET (无) 必填,JWT 令牌签名密钥(≥16 字符)
DB_FORMAT map 数据格式:map(Json)/ key(分 key)/ sql(关系表)
DB_DRIVER auto 存储驱动:auto / blob / cfkv / kv / d1 / do / mysql
DB_CIPHER none 敏感字段落盘算法,如 aes-256-gcm

其中 DB_DRIVER 默认为 auto,会自动选择平台自带的持久化后端;如果你有外部 MySQL / MariaDB,也可以显式指定。


六、首次访问与初始化

部署完成后,第一次打开站点会进入安装向导,你需要:

  1. 完成基础初始化配置;
  2. 设置管理员账号密码。

此后即可登录后台,开始添加存储驱动、挂载网盘、配置文件预览与分享等功能。


七、几个容易踩坑的点

1. 匿名访问不是开关,而是一个账号

新装默认要求登录,guest 账号默认禁用。如果你希望访客可以匿名只读浏览,做法是:进入「用户管理」启用 guest 账号即可。没有额外的站点开关,也不是 Cloudflare 控制台的环境变量——是否允许匿名,只取决于 guest 账号本身是否启用(与 Go 版行为一致)。

2. Cloudflare 必须先 Fork

在 Cloudflare 平台部署时,不能直接点按钮了事,需要先 Fork 项目,再连接你的仓库进行部署。

3. 健康检查

部署后可通过 /health 或 /healthz 健康探针检查服务运行状态。

4. 数据存储的选择

Cloudflare 平台以 D1(SQLite)为主,同时也支持 KV / Blob / Durable Objects 或外部 MySQL / MariaDB。默认 auto 会帮你选择平台自带的持久化后端,一般无需手动干预。


八、遇到问题怎么办

  • 🐛 Bug 或功能请求:前往项目的 Issues 提交。
  • 💬 一般性问题与交流:前往 Discussions 讨论区。
  • 项目还提供 Telegram 交流群与频道,以及全球/中国 Demo 可供先体验效果。

结语

OpenList-Worker 把原本需要一台服务器常驻的 OpenList,压缩进了边缘计算的 Serverless 运行时里——没有服务器运维负担,按平台免费额度基本可以零成本起步。对于想把散落在各个网盘里的文件统一管理起来、又不想折腾服务器的用户来说,这是一个相当省心的方案。

选一个你顺手的平台,生成一串 JWT_SECRET,点下部署按钮,剩下的交给安装向导就好。

💬 评论区 0