RSSHub icon indicating copy to clipboard operation
RSSHub copied to clipboard

允许加载自定义的本地/个人/私有路由

Open ihaettypo opened this issue 9 months ago • 11 comments

这是一个什么样的功能?

对于一些实验性的路由,或者只适合自己使用的,对于docker部署的方案希望能够支持方便的加载方式,比如bind一个文件/文件夹专门存放这种,避免等待漫长的PR过程,或者不适合/适用PR的情况。

根据搜索,似乎以前的版本是支持这种途径的:https://github.com/DIYgod/RSSHub/discussions/8853#discussioncomment-8565929 ,不知道出于何种原因去掉了支持。

而 https://github.com/DIYgod/RSSHub/discussions/16660#discussioncomment-10690363 这里的解释是让自行编译image,但是这样效率较低,从外部加载自定义文件这种在别的项目也有先例,比如可以参考 https://github.com/html2rss/html2rss-web 的处理方式,同样是提供website转rss的框架,自行编写规则。

这个功能可以解决什么问题?

实验性的路由,或者只适合自己使用的、不适合提PR的路由,无法方便快捷地投入使用。

额外描述

No response

这不是重复的功能请求和 RSS 提案

ihaettypo avatar Mar 13 '25 05:03 ihaettypo

有同样的需求,老版本用protected做了几个本地的私有路由,新版本没找到,一直没更新到新版本

appleftg avatar Mar 22 '25 06:03 appleftg

有同样的需求

sunkunkun avatar Apr 14 '25 02:04 sunkunkun

有同样的需求,老版本用protected做了几个本地的私有路由,新版本没找到,一直没更新到新版本

哪个版本可以支持私有自定义路由啊?

shadowascetic avatar Apr 21 '25 07:04 shadowascetic

有同样的需求,老版本用protected做了几个本地的私有路由,新版本没找到,一直没更新到新版本

哪个版本可以支持私有自定义路由啊?

还在用着diygod/rsshub:stable-2024-03-01

appleftg avatar Jun 08 '25 12:06 appleftg

有同样的需求,老版本用protected做了几个本地的私有路由,新版本没找到,一直没更新到新版本

哪个版本可以支持私有自定义路由啊?

还在用着diygod/rsshub:stable-2024-03-01

看了下 https://github.com/DIYgod/RSSHub/discussions/8853 这里的思路。 新版本的路由直接复制到本地,方便后续修改,然后Docker Compose部署的时候通过volumes 映射一下,不知道行不行,需要大佬实践一下

AprilLemon avatar Jun 09 '25 02:06 AprilLemon

有同样的需求,老版本用protected做了几个本地的私有路由,新版本没找到,一直没更新到新版本

哪个版本可以支持私有自定义路由啊?

还在用着diygod/rsshub:stable-2024-03-01

看了下 #8853 这里的思路。 新版本的路由直接复制到本地,方便后续修改,然后Docker Compose部署的时候通过volumes 映射一下,不知道行不行,需要大佬实践一下

尝试了volumes映射不行,添加自定义路由后,需要重新构建镜像,然后才能用。可能是json需要重新构建吧,不是很懂

sunkunkun avatar Jun 23 '25 07:06 sunkunkun

有同样的需求,老版本用protected做了几个本地的私有路由,新版本没找到,一直没更新到新版本

哪个版本可以支持私有自定义路由啊?

还在用着diygod/rsshub:stable-2024-03-01

看了下 #8853 这里的思路。 新版本的路由直接复制到本地,方便后续修改,然后Docker Compose部署的时候通过volumes 映射一下,不知道行不行,需要大佬实践一下

尝试了volumes映射不行,添加自定义路由后,需要重新构建镜像,然后才能用。可能是json需要重新构建吧,不是很懂

是的。目前我的方案,就是本地改完的js文件,copy到容器里面,再容器里重新打包前端项目,然后重启一下容器

AprilLemon avatar Jun 23 '25 07:06 AprilLemon

https://github.com/SettingDust/RSSHub/blob/master/docker-compose.local.example.yml

目前的解决方案是直接从本地构建镜像,新建一个文件夹并符号链接内容到 lib/routes,这样访问路径会类似 /private/XxXxXx/XxXxXx,现在的 production 需要有一个构建好的路由索引文件来提高速度

  • 如若引入一个额外的的路由索引路径(现在只有 lib/routes,添加如lib/routes-private)来方便添加私有路由,构建路由的代码需要变更,因为这里硬编码了路由路径,且依旧需要重新构建镜像来使用新的构建好的索引文件,并不理想
  • registry.ts 引入一个无论如何都使用 directoryImport 的文件夹,这个方案是我觉得最好的,不过都需要有人花时间写代码

SettingDust avatar Jul 07 '25 01:07 SettingDust

https://github.com/SettingDust/RSSHub/blob/master/docker-compose.local.example.yml

目前的解决方案是直接从本地构建镜像,新建一个文件夹并符号链接内容到 lib/routes,这样访问路径会类似 /private/XxXxXx/XxXxXx,现在的 production 需要有一个构建好的路由索引文件来提高速度

  • 如若引入一个额外的的路由索引路径(现在只有 lib/routes,添加如lib/routes-private)来方便添加私有路由,构建路由的代码需要变更,因为这里硬编码了路由路径,且依旧需要重新构建镜像来使用新的构建好的索引文件,并不理想
  • registry.ts 引入一个无论如何都使用 directoryImport 的文件夹,这个方案是我觉得最好的,不过都需要有人花时间写代码

本地构建镜像太慢了。得等好久好久。

AprilLemon avatar Jul 07 '25 02:07 AprilLemon

那可以修改后构建索引挂载路由索引到 docker 容器,

SettingDust avatar Jul 07 '25 02:07 SettingDust

或者最简单但是会牺牲一些启动速度的方式,把 NODE_ENV 改成 development,把路由文件夹映射到 host 上应该就可以了

SettingDust avatar Jul 07 '25 02:07 SettingDust