[Sub-Store Cloudflare Workers版本] 开源的订阅转换、分发和管理工具

0xPoker 2026-06-20 21:44 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出




1.背景(纯看使用请跳过)


前几天一口气从佬友那边买了好几个订阅,加上自己原本就有的那些,一下子堆在一起,突然就有点“怎么这么多了”的感觉,管理起来也挺麻烦的。


本来想着找个开源工具来统一整理一下,但又不太想再单独折腾一台小主机去跑服务。后来就顺着需求去看了一下,发现了这个项目 Yu9191/sub-store-workers


实际用了一下之后,感觉还是有一些小细节不太符合我的使用习惯,就顺手改了改,简单做了点调整之后基本就能满足自己的需求了,顺便也给原项目提了个 PR,当作顺手贡献一下。


修改版在这里 ------> *********/sub-store-workers,要是原作者合并pr了以后也可以直接原项目使用。


2.简介


将 Sub-Store 后端部署到 Cloudflare Workers / Pages,无需服务器,免费使用。



  • 零服务器:运行在 Cloudflare 边缘网络

  • KV 持久化:数据存储在 Cloudflare KV

  • 完整功能:复用原始后端全部业务逻辑(订阅管理、格式转换、下载、预览等)

  • 预编译解析器:peggy 文法在构建时编译,避免运行时 eval()


以下为修改后新增的功能:





  • 脚本过滤 / 操作支持:通过 QuickJS WASM 沙箱在 Workers 运行时执行用户脚本,支持 Script Filter 和 Script Operator(含快捷脚本与函数式脚本),弥补了原仓库因 Workers 禁止 eval / new Function 而无法使用脚本操作的限制

  • 脚本引擎可切换wrangler.toml 中通过 [vars] SCRIPT_ENGINE 控制脚本引擎,设为 "quickjs" 启用,未设置则禁用并返回引导提示 (如果是Worker paid套餐还有另一种实现方式)

  • OpenAPI 适配层补全:修复 Workers 版 OpenAPI 缺失 warn 方法导致解析订阅时 I.warn is not a function 报错的问题


3.部署方式



  • 第一步:克隆仓库


git clone https://github.com/sub-store-org/Sub-Store.git
git clone https://github.com/490694561/sub-store-workers.git

# 使得目录层级如下
# parent/
# ├── Sub-Store/ ← 原始后端源码
# └── sub-store-workers/ ← 本项目

cd sub-store-workers
npm install



  • 第二步:登陆CF


npx wrangler login



  • 第三步:初始化kv空间


npx wrangler kv namespace create SUB_STORE_DATA


按照 wrangler.toml.example 创建 wrangler.toml,之后将返回的 id 填入 wrangler.toml 的如下图位置处:


[[kv_namespaces]]
binding = "SUB_STORE_DATA"
id = "你的KV命名空间ID"



  • 第四步:构建和部署



这里我只说Workers的部署方式,Pages我没弄成功,一直说我没权限。

区别在于 *.workers.dev 的域名可能被堵,如果绑上自定义域名则可以不考虑Pages直接使用。



开始部署:


# Workers 部署(含 Cron Triggers)
npm run deploy


部署完成之后设置访问密码(实际上就是一个路径):

Cloudflare Worker Secret 的 SUB_STORE_FRONTEND_BACKEND_PATH



踩了一个坑,手动去改那个secret值必须要在最前面加 / ,类似于 /password



也可以直接生成:


# Windows
npm run rotate-secret

# Linux / macOS
npm run rotate-secret:sh



  • 第五步:打开前端连接你才部署的后端


打开 Sub-Store 前端,后端地址格式:


你的域名/你的密码

# 比如:
https://sub-store-workers.your.workers.dev/aBc123XyZ
https://xxx.xxx.xxx/aBc123XyZ


部署完后访问 https://你的域名/你的密码/api/utils/worker-status,应返回:


{ "kv": { "bound": true }, "auth": { "backendPathConfigured": true } }


4.使用截图


前端连接后端:



订阅的管理面板1:



对节点进行脚本过滤:



过滤后的结果:



多个后端管理:



5.致谢


基于 Sub-Store 项目和 Yu9191/sub-store-workers 项目,感谢原作者及所有贡献者。




有问题可以站内私信反馈附日志或者佬友自己修。

最新回复 (1)
  • XY666 06-20 22:16
    2

    不错不错。我一直用这个项目订阅我的自建节点

* 帖子来源Linux.do
返回