• 🎉小站の店正式开业试营运,欢迎大家捧场&反馈
  • 订阅小站 TG频道获取更多小福利
  • 欢迎访问小站,如果您觉得本站还不错,请Ctrl+D 收藏本站
  • 任何虚假邮箱的留言评论将一律不通过,你的邮箱不会被公开,请放心留言交流
  • 网站今后如果无法访问,请自行使用代理访问
小站公告
  1. 🎉小站の店正式开业试营运,欢迎大家捧场&反馈
  2. 订阅小站 TG频道获取更多小福利
  3. 欢迎访问小站,如果您觉得本站还不错,请Ctrl+D 收藏本站
  4. 任何虚假邮箱的留言评论将一律不通过,你的邮箱不会被公开,请放心留言交流
  5. 网站今后如果无法访问,请自行使用代理访问

THE JOURNAL · Tech

免费搭建专属subconverter订阅转换服务并支持自动更新

CrazyJoe5,955 阅读♡ 19 赞19 条讨论

阅读原文 · 关注 Telegram 频道

免费搭建专属subconverter订阅转换服务并支持自动更新

前期准备

  1. Github账户
  2. Vercel账户
  3. 域名「可选」

搭建教程

创建token

首先我们打开我们的Github页面,点击右上角Profile头像,选择Settings设置

点击左侧栏的 Developer settings - Personal access tokens - Generate new token

在Note处给token一个描述名称,Expiration过期时间可依据自己需求选择,之后勾选第一个选项: repo 并点击 Generate token

注意复制和保存自己的token,只会显示一次

具体图示可参见官方教程页面:创建个人访问令牌

Fork项目

首选我们打开 zhongfly 大佬的 now-subconverter 并点击右上角的fork,复制一份项目到自己的Github账户

免费搭建专属subconverter订阅转换服务并支持自动更新

再打开其 sub-web 同样点击右上角fork一份到自己的Github仓库

配置Github Actions

依次打开我们刚刚fork后的两个项目,点击右上角 Settings - Actions - Actions permissions,确认 Actions permission 下 Allow all actions 已勾选

回到我们fork后的sub-web仓库,点击右上角 Settings - Secrets - New repository secret ,添加一个名为 REPO_TOKEN ,值为之前生成的token

修改配置

首先在now-subconverter项目下的 /.github/workflows/main.yml 文件中, env 部分的参数为自动触发时默认使用的参数; workflow_dispatch 部分的参数为手动触发时默认使用的参数

相关参数说明如下:

  • message
    • 提交更新说明的内容
  • branch
    • release:从release中下载稳定版本,可用下面的tag参数指定版本
    • action:从最新代码所关联github action的Artifacts里下载已经编译好的
    • build:拉取最新代码自己编译
  • tag
    • 指定下载的版本,latest为自动选择最新版本
  • modify_method
    • sed:在Modify pref.ini by sed步骤中,用sed命令修改配置文件
      • 在 /.github/workflows/main.yml 中 Modify pref.ini by sed 部分,使用sed命令修改subconverter的默认配置pref.ini的方法,参照相关部分将其值改为自己所需的内容即可「如你需要使用自己的域名,可以将其添加到 managed_config_prefix 部分」
    • files:使用本项目中/files文件夹中的文件覆盖
      • 将你要使用的配置文件(包括但不限于pref.ini)放入now-subconverter仓库的files目录下,任务运行时会自动将files目录下所有文件复制到subconverter内「如你需要使用自己的域名,可以将其添加到 managed_config_prefix 部分」

免费搭建专属subconverter订阅转换服务并支持自动更新

之后我们在now-subconverter项目下的 /.github/workflows/sub-web.yml 文件中25行,将其修改为你的sub-web项目地址;51行的commit信息可以自定义修改。「相关行数可能随着文件修正发生变化,请根据实际所在行数为准」

最后我们在sub-web项目下的 /.github/workflows/build.yml 文件中39行,将 webhook_url 中这部分地址 .../zhongfly/now-subconverter/... 修改为你自己的项目地址

为了使用我们自己的订阅转换前端,我们还需要对我们fork的 sub-web进行修改配置。我们打开我们fork后的sub-web项目,并且更改 .env 和 src/views/Subconverter.vue 文件

我们选择项目根目录下的 .env 并根据自己需求修改「下面是一些相关参数的含义」:


– VUE_APP_PROJECT:前端项目地址,即点击前端网页Github图标会跳转的地址
– VUE_APP_BOT_LINK:TG链接,即点击前端网页TG图标会跳转的地址
– VUE_APP_BACKEND_RELEASE:后端项目地址,无需修改
– VUE_APP_SUBCONVERTER_REMOTE_CONFIG:远程配置,无需修改
– VUE_APP_SUBCONVERTER_DEFAULT_BACKEND:API后端地址,请修改成我们自己想用的转换网址
– VUE_APP_MYURLS_DEFAULT_BACKEND:短链接后端,如果你有自己的短链转换服务,可修改
– VUE_APP_CONFIG_UPLOAD_BACKEND:文本托管后端,如果你有自己的,可修改

免费搭建专属subconverter订阅转换服务并支持自动更新

我们再打开 src/views/Subconverter.vue 文件,主要只需修改customBackend和backendOptions选项,将自己的后端地址和说明添加进去。如果你不确定书写格式,建议直接修改其中一个地址为你自己的即可

再将backendOptions中与customBackend对应部分的值修改成我们自己想用的后端地址

免费搭建专属subconverter订阅转换服务并支持自动更新

编译

当我们将所有需要修改的选项全部修改完成后,在部署前,我们需要编译一份我们修改后的新的sub-web到我们的项目,我们回到fork的now-subconverter项目,并且点击项目名称下的Actions选项,在左边的All workflows下选择 update sub-web,点击Run workflow进行编译,等待几分钟之后即可编辑完成。如果编译失败可以点击workflow进行查看具体的报错信息并进行相应的搜索排错。

免费搭建专属subconverter订阅转换服务并支持自动更新

部署

首先我们打开 https://vercel.com/dashboard 并选择用GitHub账户登录。登录完成后选择 New Project - Import Git Repository

我们选择我们的now-subconverter项目,点击Import – Deploy「跳过创建Team账户的选项」

免费搭建专属subconverter订阅转换服务并支持自动更新

部署完成后,我们点击 Go to dashboard,选择Settings – Domains – 选择自动分配的域名 – 点击Edit,将自动分配的域名改为我们想使用的自己的域名「需和fork项目修改中的前后端域名一致」

免费搭建专属subconverter订阅转换服务并支持自动更新

之后我们按照提示进入我们的DNS服务商后台添加相应的CNAME记录,在这里我使用的是Cloudflare,添加如下并关闭黄色小云朵

免费搭建专属subconverter订阅转换服务并支持自动更新

当解析成功后,我们回到Vercel后台,等待其确认变更,就会看到我们添加的自己的域名已成功配置并可以使用

免费搭建专属subconverter订阅转换服务并支持自动更新

视频教程

Youtube

Bilibili

参考链接

zhongfly/now-subconverter

zhongfly/sub-web

创建个人访问令牌

Blogsue


xzの小站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:免费搭建专属subconverter订阅转换服务并支持自动更新

如果这一期对你有帮助

每一次支持,都在帮助这个小站继续更新。量力而行,感谢相伴。

支付宝 支付宝支持作者二维码或图片 一杯咖啡,也是鼓励
微信 微信支持作者二维码或图片 一杯咖啡,也是鼓励
PayPal PayPal支持作者二维码或图片 一杯咖啡,也是鼓励 前往支持 ↗

THE CONVERSATION

一起聊聊19

认真分享 · 友善交流

留下你的想法

无需注册。邮箱不会公开,不会发送订阅或回复邮件。游客评论审核后展示。

支持 **加粗**、*斜体*、`代码`、引用、列表与链接。不支持任意 HTML。

点击发布评论后将自动进行 Cloudflare Turnstile 验证,必要时会提示交互。

读者讨论

最新话题优先 · 回复按时间排列
  1. 233游客

    铁子,now-subconverter这个项目关闭了怎么破?有替代方案?

    回复 ↗
    1. CrazyJoe作者

      很久没关注了,我用到的其实很少。可以用原subconverter后端+sub-web前端自己搭就好,或者也可以使用网上很多人搭好的。如果稍微有些顾虑的话,可以选择一些比较知名的大佬的后端

      回复 ↗
      1. 233游客

        我只是增加自己改的远程配置,话说github上可以docker部署的项目是可以fork一份改完从新打包再docker部署吗?

        回复 ↗
  2. 233游客

    铁子,建完了,但是看了下前端网页里的生成类型没有clash新参数和clashR新参数是什么情况?

    回复 ↗
    1. CrazyJoe作者

      用Clash默认Clash就行,我在最新版CFW里面用默认配置没任何问题

      回复 ↗
  3. WhiteAlbum游客

    博主你好,我想在远程配置那里,添加自己的远程配置,应该怎么操作呢。

    回复 ↗
    1. CrazyJoe作者

      照着更新后的教程一步步操作即可。写的应该算挺清楚的了,添加自己的远程配置是指自己的后端还是自己创建的规则组?
      自己的后端的话,按文章里的修改相关api网址的地方改为你自己的即可。如果是说想自动拉取自己创建的规则组,没研究过,建议去看ACL4SSR规则组是怎么写的,然后把程序对应地址改为你自己的规则组地址

      回复 ↗
      1. WhiteAlbum游客

        谢谢,你让我得到了启发。

        回复 ↗
  4. 111游客

    大佬,我想在规则(远程配置)里添加自己的clash规则,该如何进行操作呢?

    回复 ↗
    1. CrazyJoe作者

      对应不同的规格格式,在下载下来的配置文件的rules里添加就可以了吧。
      你如果指的是,在在线转换的过程中,自动将自己定义的一部分规则添加到配置列表里,这一套好像不行。。。因为远程配置拉的是ACL的库。。。

      回复 ↗
  5. cong游客

    感谢博主的教程,已经搞好了。但是有个疑问,他这个订阅链接是在哪里转换的,在自己这边还是在tindy或者acl那边,我自己这里实在是没找到转换的日志。那如果在别人那里的话,自己搭这个api就没啥必要了呀。

    回复 ↗
    1. CrazyJoe作者

      Subconverter后端服务运行在哪里,订阅就在哪里转换的。
      所以不是在这些规则提供方,如果是跟着教程的话,那就是在Vercel的服务器上

      回复 ↗
  6. shadows游客

    简略写了一下
    https://mirro-blog.vercel.app/#/posts/4

    回复 ↗
  7. shadows游客

    编译这一步,正确的方式是修改sub-web前,修改https://github.com/zhongfly/sub-web/blob/master/.github/workflows/build.yml#L39
    改成你自己now-subconverter项目地址。之后提交commit,就会自动触发now-subconverter中的Update sub-web这一action。压根就不需要你去手动运行。
    既然说了手动运行,那么手动更新sub后端(subconverter)这一最重要的操作最好也介绍一下,毕竟很多人都不会去搞自动编译更新sub。而你说的sub-web只不过是生成订阅转换链接的前端页面而已…真正进行订阅转换的是subconverter啊。

    回复 ↗
    1. CrazyJoe作者

      感谢耐心指正。本着能用就行的原则,所以将就了,鼓捣出来能让人都用上自己的订阅转换就是好事。
      其实我也知道全自动的这部分,我肯定是没理解透彻的,因为没任何基础和参考材料,所以我才在文末留了大佬的blog内容,供那些有心研究的人去弄下。
      手动更新确实麻烦些,但是大佬的这个项目,我感觉比在VPS上搭方便多了,感谢付出及指正。
      回头会试试照你说的修改下,能自动触发sub-web这个之后,自动触发subconverter是不是必须按照你的blog里面用IFTTT和Cloudflare workers较复杂的方式?

      还有如果因为我的错误流程和操作,会对大佬本身的账户或者项目产生任何提示和烦人的通知的话,请告知,会及时修正

      回复 ↗
      1. shadows游客

        修改自己的sub-web项目自动触发自己的now-subconverter不需要复杂的其他东西(不涉及wiki中的内容)
        正确的方式:
        1,点击你的仓库右上角的 Settings,找到 Secrets 这一项,添加一个名为REPO_TOKEN的变量,值是有repo权限的github token(生成方法https://docs.github.com/cn/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token)

        2,修改https://github.com/zhongfly/sub-web/blob/master/.github/workflows/build.yml#L39
        改成你自己now-subconverter项目地址

        不修改的话github action里最后一个操作没用而已,对我没有什么影响

        建议看一下github action,估计十几分钟就大致了解…看下它的触发方式,你就知道怎么改成定时运行更新了。

        回复 ↗
        1. CrazyJoe作者

          感谢耐心指正,回头尝试下( ̄︶ ̄)↗ 

          回复 ↗
  8. shadows游客

    我一直都懒得写使用说明,因为觉得实际上没什么人会用我这个…
    大部分都没有问题,但是有几处地方没说清楚
    1,managed_config_prefix这个,一般来说不用修改,因为是只有surge会使用这个值(在main.yml和sub-web.yml中均有)
    2,为什么我要在前述的yml中修改配置文件?主要是考虑到能够保证当subconverter更新配置文件内容后(比如增加新的设置项),能不需要修改就可以继续运行。
    3,编译这一步实际是不需要的,因为sub-web项目中的设置好了github action,每次commit会自动推送到now-subconverter项目(然而你不修改就会变成对我的now-sub项目进行错误的请求)…而文章中对项目中涉及的github action实在是不够清楚…使得很多功能都没有说清楚,特别是运行github action前要去设置好必须的secret才行

    回复 ↗
    1. CrazyJoe作者

      是原作者嘛?乱填的邮箱我后台给编辑掉了,防止系统将错误的邮箱关联。我觉得你的这个很方便啊,至于提及的几个问题:
      1. 之前在使用VPS搭建的时候,大部分教程也是通用都改的,所以这里就给改掉了,使用上应该没啥影响
      2. 根据你的第二点,应该都修改yml还是好些的
      3. Github Actions我其实没太研究,因为大佬你这边也没写详细的教程,所以我是自己摸索的,git clone那一步我修改成了fork后自己仓库的地址了,之后立即编译一下,是为了能直接在视频里展现修改后的结果。看到大佬说是支持自动编辑的,但是当时没太注意或者去等待自动编译,直接手动执行看结果的。你说的其它功能和设置secret都是我不知道的部分

      回复 ↗