天下没有免费的午餐。
RSS能够快速聚合自己想要的消息,可是很多网站出于各种原因并不提供RSS源。所以需要像RSShub这样的生成器来生成自己所需的RSS源。
安装NodeJS
NodeJS如果需要版本控制的话,最好使用nvm
来安装。不过由于只是单纯的使用,所以直接使用包管理器安装即可。
如果需要较新或者对某版本有偏好,可以采用NodeSource
提供的版本:
1
2
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs
在Debian上需以root
用户执行命令。然后安装yarn
替代npm
:
1
2
3
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
apt-get update && sudo apt-get install yarn
部署安装
下载RSShub
源码至想要的目录:
1
git clone https://github.com/DIYgod/RSSHub.git
下载完成后安装所需依赖:
1
yarn install
安装过程大概不会超过2分钟;以后更新源代码之后需重新执行安装步骤。
安装完成之后执行:
1
yarn start
在浏览器中打开http://127.0.0.1:1200/
或http://IP:1200/
,访问成功则安装完成。
Systemd配置
为了让RSShub
在退出终端后继续运行并方便之后的管理,使用Systemd
对其进行操作。
执行vi /etc/systemd/system/rsshub.service
创建对应文件,可参考以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Rsshub
After=network.target
Wants=network.target
[Service]
Type=simple
WorkingDirectory=/home/RSSHub
ExecStart=/bin/bash -c 'yarn start'
Restart=on-failure
#User=nobody
#Group=nogroup
[Install]
WantedBy=multi-user.target
User
和Group
可以省略,如需配置请注意权限问题。
然后执行以下命令:
1
2
3
systemctl daemon-reload ##重载Systemd脚本
systemctl enable rsshub.service ##开机启动访问
systemctl start rsshub.service
如果需要自动更新源码等功能,则需另外配置资源钩子。
Nginx配置
为了避免每次输入IP的麻烦和安全性,配置Nginx作为代理;可以采用二次目录或者二级域名。
参考示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name rsshub.example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
ssl_certificate /var/www/ssl/fullchain.cer;
ssl_certificate_key /var/www/ssl/example.com.key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_dhparam /var/www/ssl/dhparam.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:1200;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Nginx还有许多可以配置的相关选项,如有需要可以自行添加。
Rsshub简单配置
1
2
listenInaddrAny: parseInt(process.env.LISTEN_INADDR_ANY) || 0
debugInfo: process.env.DEBUG_INFO || false
不允许公网连接;关闭调试信息。
其中一些网站需要配置用户名、密码、API或者COOKIE才能生成对应的RSS链接;需要配置的选项均可在config.js
内找到。
如果使用Systemd
进行管理,则应在脚本内添加Environment
加入所需的环境变量方可生效:
1
Environment=LISTEN_INADDR_ANY=0 YOUTUBE_KEY=youtube_date_v3
其它参数配置参见官方文档。
垃圾Heroku,浪费时间。
本文采用CC BY-NC-ND 4.0许可协议进行许可,转载请注明出处。
本文最后更新时间为:2019-09-11-Wednesday-06:11:23 PM