OpenList 是一个多功能的目录列表工具,支持数十种网盘文件挂载和文件预览/下载/分享等功能
本仓库是官方 OpenListTeam/OpenList 项目的 TypeScript + Serverless 架构移植版
基于 Cloudflare Workers / EdgeOne Cloud Function / Alibaba Cloud ESA 运行
📘 使用文档 · 🌏 使用文档(中国大陆) · ⚖️ 使用条款 · 🔒 隐私政策
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch
点击下方按钮,即可将本项目一键部署到对应平台:
Important
OpenList 是一个运行于边缘计算平台的多存储聚合文件列表与管理系统,可将分散在不同网盘、对象存储与协议服务中的文件统一到一个界面,进行浏览、预览、下载与管理。
OpenList-Worker 是官方 OpenListTeam/OpenList 项目的 TypeScript + Serverless 移植版,后端由 Go 重写为运行于 Workers 的 TypeScript 服务,前端保持一致的界面与交互体验。
内置 78 个存储驱动,开箱即用地挂载各类存储后端:
- 国内网盘:阿里云盘(开放平台/分享)、夸克网盘(开放平台/UC TV 版)、百度网盘(相册)、115 网盘(开放平台/分享)、123 云盘(开放平台/分享)、天翼云盘(189/PC/TV)、中国移动云盘(139/和彩云)、沃家云盘、迅雷云盘、腾讯微云、蓝奏云、城通网盘、PikPak(分享)、豆包网盘、光亚盘、超星小组网盘、联想 NAS 分享、Teambition 网盘、WPS 网盘、阿里文档、HalalCloud、MediaTrack 等
- 国际网盘:Google Drive(相册)、OneDrive(应用/分享链接)、Dropbox、MEGA、MediaFire、Proton Drive、Yandex Disk、Degoo、Bunny Storage、TeraBox 等
- 对象存储:S3 兼容(AWS/OSS/COS/MinIO 等)、Cloudflare R2(Workers Binding 直连或 S3 API)、又拍云 USS、Azure Blob、WebDAV、FTP、SFTP、SMB、IPFS 等
- 代码托管:GitHub、GitHub Releases、CNB Releases
- 网盘程序:OpenList(分享)、AList V3、Cloudreve V3/V4、Kodbox(可道云)、Seafile、Teldrive、Febbox 等
- 其他驱动:网易云音乐、Misskey、Emby、Cloudflare 图床等
除上述真实存储外,还提供 Local、Alias、UrlTree、AutoIndex、Strm、Crypt、Virtual、Chunk 等虚拟/功能型驱动,可用于本地挂载、地址别名、URL 列表、加密存储与分片等场景。
- 文件浏览:统一的目录树浏览,支持图片、视频、音频、文档、代码、压缩包等格式在线预览。
- 上传下载:跨存储的上传、批量下载、流式传输与直链跳转。
- 文件分享:生成带有效期、密码与权限控制的分享链接,支持匿名访问与目录分享。
- 全文搜索:在已索引的存储中快速检索文件。
- 离线任务:后台任务队列,支持批量操作与异步处理。
- 外部接口:将聚合存储以 WebDAV 或 S3 兼容协议对外暴露,便于挂载到第三方工具。
- MCP 服务:提供 Model Context Protocol 端点,可被 AI 助手等客户端集成调用。
- 并发去重:同一时刻相同的目录列表 / 元信息请求只向上游网盘发起一次,其余请求复用同一结果,避免无谓的限流与 CPU 消耗。
- 权限管理:基于角色的访问控制(RBAC),支持用户分组、目录级读写权限与配额。
- 认证方式:内置账号密码,支持TOTP验证、WebAuthn/FIDO登录、SSO单点登录与 LDAP 目录认证。
- 安全加固:JWT 会话、CSRF 防护、点击劫持防护(X-Frame-Options)、内容安全策略(CSP)。
- 健康检查:提供
/health存活探针与/healthz就绪探针,可用于监控与告警。
- 运行平台:Cloudflare Workers、腾讯云 EdgeOne Makers、阿里云 ESA、Vercel / AWS Lambda 及 Node.js 容器环境。
- 数据存储:Cloudflare D1(SQLite)为主,也支持 KV / Blob / Durable Objects 与外部 MySQL / MariaDB。
- 一键部署:支持 EdgeOne、Cloudflare Workers 的一键部署按钮 + 安装向导。
- Node.js 18+(推荐使用 pnpm)
- Cloudflare 账号(用于部署到 Workers)
# 1. 安装依赖
pnpm install
# 2. 按需配置 wrangler.jsonc 中的绑定与变量(JWT_SECRET 见 .dev.vars.example)
# 3. 启动开发服务器(自动拉取官方前端并运行 Worker)
pnpm run dev:unified
# 或仅运行 Worker(不拉取前端)
pnpm run dev:worker# 一键部署:构建前端产物 → 部署到 Cloudflare Workers(KV 绑定由 wrangler 自动预配)
pnpm run deploy
# 或直接部署 Worker(跳过前端构建)
pnpm run deploy:worker- 运行环境:Cloudflare Workers / EdgeOne 云函数 / 阿里云 ESA(Edge Computing)
- Web 框架:Hono.js
- 数据库:Cloudflare D1(SQLite)/ KV / Blob / Durable Objects,或外部 MySQL / MariaDB
- 语言:TypeScript
- 构建工具:Wrangler、esbuild
- 框架:SolidJS + TypeScript(官方 OpenList-Frontend)
- UI 库:Hope UI
- 构建工具:Vite
部署完成后首次访问站点会自动进入安装向导,在浏览器中设置管理员账号与密码即可完成初始化;如需跳过向导,配置 ADMIN_PASS 即可自动初始化 admin。
绝大多数部署不需要任何额外配置:数据存储默认走 DB_DRIVER=auto,会自动选择平台可用的持久化后端(Cloudflare Workers → KV / D1 / DO,EdgeOne / ESA → Blob)。建议显式配置的只有一项:
| 变量 | 说明 |
|---|---|
JWT_SECRET |
JWT 令牌签名密钥(≥16 字符,推荐 openssl rand -hex 32 生成),同时用于定时任务鉴权。未配置时会在初始化时自动生成并持久化 |
JWT_SECRET请以 Secret(而非普通变量)方式配置:普通变量可能在平台重新部署时被仓库内的配置覆盖,Secret 不会被覆盖。
其余变量均有合理默认值,需要时再调整:
| 变量 | 默认值 | 说明 |
|---|---|---|
ADMIN_PASS |
— | 跳过安装向导,以该密码自动初始化 admin |
DB_FORMAT |
map |
数据存储格式:map(整对象 JSON)/ key(分 key)/ sql(关系表,与 Go 后端一致) |
DB_DRIVER |
auto |
存储驱动:auto / blob / cfkv / kv / d1 / do / mysql;显式指定后不做回退 |
DB_CIPHER |
none |
敏感字段落盘算法(默认不加密),如 aes-256-gcm |
CACHE_ENABLED / CACHE_DRIVER |
true / db |
文件树缓存与下载链接缓存,默认复用业务数据后端 |
ALLOW_URLS |
— | CORS 允许白名单(逗号分隔,不设则仅同源) |
MAX_UPLOAD / MAX_UPPART |
26214400 / 16777216 | 整体上传 / 分片上传大小上限(字节) |
ASSET_URLS |
— | 前端静态资源 CDN 地址,支持 $version 占位符 |
完整环境变量(含缓存 CACHE_*、字段加密 DB_CIPHER、并发去重 SINGLEFLIGHT、cfkv / MySQL 连接配置等)与各平台部署步骤,请参阅文档站:
在使用过程中遇到问题,可通过以下渠道获取帮助:
- 🐛 提交 Bug 或功能请求:请前往 Issues
- 💬 一般性问题与交流:请前往 Discussions 讨论区
OpenList 是基于 AGPL-3.0 许可证的开源软件。
🌐 @GitHub ·
感谢以下项目及其贡献者: