Skip to content

Latest commit

 

History

354 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

OpenList 是一个有韧性、长期治理、社区驱动的 AList 分支,旨在防御基于信任的开源攻击。

本仓库(OpenList-TSWorker)是官方 OpenListTeam/OpenList 项目的 TypeScript 移植版

基于 Cloudflare Workers / EdgeOne Cloud Function 运行

License Build status latest version

discussions Downloads


关于本移植版

OpenList-TSWorker 是官方 OpenListTeam/OpenList(Go 后端,位于 OpenList-Backends)的 TypeScript 移植版,将后端从 Go 重写为运行于 Cloudflare Workers 上的 TypeScript 服务,前端保持一致的界面与交互体验。

  • 上游源码:https://github.com/OpenListTeam/OpenList
  • 本项目仅对上游进行技术栈移植(Go → TypeScript / Cloudflare Workers),不改动功能语义与数据模型。
  • 本项目遵循与上游一致的 AGPL-3.0 开源许可证。

免责声明

OpenList 是一个由 OpenList 团队独立维护的开源项目,遵循 AGPL-3.0 许可证,致力于保持完整的代码开放性和修改透明性。

我们注意到社区中出现了一些与本项目名称相似的第三方项目,如 OpenListApp/OpenListApp,以及部分采用相同或近似命名的收费专有软件。为避免用户误解,现声明如下:

  • OpenList 与任何第三方衍生项目无官方关联。

  • 本项目的全部软件、代码与服务由 OpenList 团队维护,可在 GitHub 免费获取。

  • 项目文档与 API 服务均主要依托于 Cloudflare 提供的公益资源,目前无任何收费计划或商业部署,现有功能使用不涉及任何支出。

我们尊重社区的自由使用与衍生开发权利,但也强烈呼吁下游项目:

  • 不应以“OpenList”名义进行冒名宣传或获取商业利益;

  • 不得将基于 OpenList 的代码进行闭源分发或违反 AGPL 许可证条款。

为了更好地维护生态健康发展,我们建议:

  • 明确注明项目来源,并以符合开源精神的方式选择适当的开源许可证;

  • 如涉及商业用途,请避免使用“OpenList”或任何会产生混淆的方式作为项目名称;

  • 若需使用本项目位于 OpenListTeam/Logo 下的素材,可在遵守协议的前提下进行修改后使用。

感谢您对 OpenList 项目的支持与理解。

功能

技术栈(本移植版)

后端

  • 运行环境:Cloudflare Workers(Edge Computing)
  • Web 框架:Hono.js
  • 数据库:Cloudflare D1(SQLite)/ 支持 MySQL、MariaDB、PostgreSQL、SQL Server
  • 缓存:Cloudflare KV(可选)
  • 语言:TypeScript
  • 构建工具:Wrangler、esbuild

前端

  • 框架:React 19 + TypeScript
  • UI 库:Ant Design / Material-UI
  • 构建工具:Vite

项目结构

OpenList-TSWorker/
├── src/                      # 后端源码(TypeScript / Cloudflare Workers)
│   ├── admin/               # 系统管理模块
│   ├── binds/               # OAuth 绑定管理
│   ├── crypt/               # 加密配置管理
│   ├── drive/               # 云存储驱动
│   ├── fetch/               # 离线下载管理
│   ├── files/               # 文件操作管理
│   ├── group/               # 用户组管理
│   ├── mates/               # 元数据配置管理
│   ├── mount/               # 挂载路径管理
│   ├── oauth/               # OAuth 认证管理
│   ├── saves/               # 数据持久化
│   ├── share/               # 分享管理
│   ├── system/              # 系统信息
│   ├── tasks/               # 任务管理
│   ├── token/               # Token 管理
│   ├── users/               # 用户管理
│   └── index.ts             # 主入口文件
├── pages/                    # 前端源码
├── prisma/                   # Prisma 数据模型
├── migrations/               # 数据库迁移
├── schema.sql               # 数据库结构
├── wrangler.jsonc           # Cloudflare Workers 配置
└── package.json             # 项目依赖

快速开始

完整部署说明请参考上游官方文档:https://doc.oplist.org

前置要求

  • Node.js 18+
  • Cloudflare 账号(用于部署到 Workers)

本地开发

# 1. 安装后端依赖
npm install

# 2. 安装前端依赖
npm run install:page

# 3. 配置 wrangler.jsonc(填写 JWT_SECRET、KV/D1 绑定)

# 4. 启动后端开发服务器
npm run dev

# 5. 在另一个终端启动前端开发服务器
npm run dev:page

生产部署

# 一键部署(前端构建 + 后端部署到 Cloudflare Workers)
npm run deploy

文档

Demo

讨论

如有一般性问题请前往 Discussions 讨论区,Issues 仅用于错误报告和功能请求。

许可证

OpenList 是基于 AGPL-3.0 许可证的开源软件。

免责声明

  • 本项目为免费开源软件,旨在通过网盘便捷分享文件,主要用于 Go 语言的下载与学习。
  • 使用本软件时请遵守相关法律法规,严禁任何形式的滥用。
  • 本软件基于官方 SDK 或 API 实现,未对其行为进行任何修改、破坏或干扰。
  • 仅进行 HTTP 302 跳转或流量转发,不拦截、存储或篡改任何用户数据。
  • 本项目与任何官方平台或服务提供商无关。
  • 本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性或特定用途的适用性。
  • 维护者不对因使用或无法使用本软件而导致的任何直接或间接损失负责。
  • 您需自行承担使用本软件的所有风险,包括但不限于账号被封、下载限速等。
  • 本项目遵循 AGPL-3.0 许可证,详情请参见 LICENSE 文件。

联系我们

贡献者

我们衷心感谢原项目 AlistGo/alist 的作者 Xhofe 及所有其他贡献者。

感谢这些优秀的人:

Contributors

About

(WIP) Service Worker Backend for OpenList

Resources

Contributing

Stars

122 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages