跳转至

Rsshub 私有路由配置说明

预计阅读时长 : 4 分钟

文件映射

以 Docker Compose 部署为例,使用私有路由需要映射路由空间和注册文件到容器中 /app/lib 下对应的路径。

docker-compose.yml
1
2
3
volumes:
    - {/path/of/your/private}:/app/lib/private
    - {/path/of/your/protected-router.js}:/app/lib/protected-router.js

如果是在本地进行调试,则需要在 /lib 文件夹下新建 /private 文件夹,存放新的路由空间,并修改 protected-router.js 文件注册新的路由。

创建规则

因为私有路由不涉及到对外的分享,所以路由空间下不用创建 maintainer.js,也不用创建 radar.js 文件。此外,由于私有路由会单独通过 protected-router.js 文件单独注册,因此也不需要创建 router.js 文件。

所有,私有路由必须要创建的只有 RSS 源规则文件,其规则要求和公开路由的规则一致,详情请查看 制作自己的 RssHub 路由 ⧉

注册路由

通过修改 protected-router.js 文件,可以单独注册和管理私有路由。

注册私有路由的语法和公开路由一致,详情请查看 router.js 配置说明 ⧉

这里注意一下,注册私有路由的时候,需要在路由路径前加上 /private 字段,以指向正确的路由空间路径。

1
2
3
4
5
6
7
const Router = require('@koa/router');
const router = new Router();

// NYTimes
router.get('/nytimes/:channel?', require('./private/nytimes/channel'));

module.exports = router;

为了保护私有路由,可以在 protected-router.js 文件中为路由添加 Auth 授权认证。

const Router = require('@koa/router');
const router = new Router();

const auth = require('koa-basic-auth');
// 修改为自己的用户名和密码
const config = { name: 'rss', pass: 'hub' };
router.use('/(.*)', auth(config));

// NYTimes
router.get('/nytimes/:channel?', require('./private/nytimes/channel'));

module.exports = router;

访问路由

访问私有路由的方式和公开路由基本一致,但需要在路径中的路由空间前添加 /protected 字段。

https://rsshub.example.com/protected/nytimes

如果添加了授权认证,则需要在链接中添加用户名和密码。

https://rss:hub@rsshub.example.com/protected/nytimes

测试说明

在浏览器中测试需要授权认证的私有路由时,经常会遇到浏览器缓存的问题导致失败,推荐使用在终端中使用 curl 进行测试。

终端测试
curl -u rss:hub https://rsshub.example.com/protected/nytimes