RSS的使用与Tiny Tiny RSS Selfhost自建


RSS 是对你信任的网站的订阅,微博是对你信任的人的订阅,即刻是对你感兴趣的话题的订阅。

RSS 的介绍

维基百科zh.wikipedia.org/wiki/RSS

RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章、新闻、音频或视频的网摘。RSS文件(或称做摘要、网络摘要、或频更新,提供到频道)包含全文或是节录的文字,再加上发布者所订阅之网摘数据和授权的元数据。

社交媒体混乱的时间线、聚合阅读工具烦人的算法推荐,都让我们无法高效地获取需要的信息。RSS 将信息的选择权交还给了用户,但 RSS 并不是什么新玩意,20多年前就有了。RSS可以让我们高效的获取感兴趣的信息。

互联网的信息是庞杂的,甚至可以说是无限的,随着我们关注量的上升,我们关注的内容会越来越多,可能每天要去打开几十几百个网站或APP。手机里的有些 APP,收藏夹里的某些网站,也许就是为了看一小部分的内容,但是我们不得不装上它。通过 RSS 我们就可以将它们聚合在一起,还免受广告和追踪的困扰。也许对于一些内容还有即时推送的要求,有些网站和APP可能并没有推送,但是我们又需要即时收到推送(比如停水通知),这时如果通过 RSS 联动 IFTTT 便可以做到即时推送。可见 RSS 可以有提高信息获取效率、时效性高、便于管理、无广告等优点。

RSS工具

RSSHub

RSSHub docs

万物皆可 RSS

RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源

在使用一段时间后你可能会发现有很多网站和想订阅的内容没有提供 RSS,因为 RSS 不利于投放广告、收集数据等商业行为,越来越多的网站不再提供 RSS,甚至还反爬虫。幸好,我们还有 RSSHub 项目(反爬严格的网站也需要自建,RSSHub 文档有自建教程)。RSSHub 项目由 DIYgod 发起,经过许多开发者一年多的活跃开发,现在已经支持很多网站的 RSS 输出。具体支持那些网站可以查阅文档

RSSHUB

RSSHub Radar

RSSHub 项目,作者开发了相应的浏览器插件 -- RSSHub Radar。浏览器插件可以帮助你快速发现和订阅当前网站 RSS ,RSSHub 项目网站上也提供了很多可以直接拿来用的方式,例如订阅 B 站某 UP 主的投稿等,具体的请参看 https://docs.rsshub.app/social-media.html 后食用。

例如blog.17lai.site支持的订阅

Tiny Tiny RSS

可以Selfhost部署的RSS聚合客户端,支持多用户注册。

FEEDX

FEEDX 是一个个人站,主打一些网站的全文 RSS,但质量上乘,没有 RSS 的话留言站长也会考虑做 RSS。

与其他 APP 联动

IFTTT

IFTTT,是一个新生的网络服务平台,通过其他不同平台的条件来决定是否执行下一条命令。即对网络服务通过其他网络服务作出反应。IFTTT得名为其口号“if this then that”。

维基百科zh.wikipedia.org/wiki/IFTTT

IFTTT 是一款可玩性很高的软件,其中便包含着 RSS Feed(有简单的关键词过滤功能),可以做到停水通知(×××有更新...)发送邮件或通知等功能。

Telegram bot

Telegram 是一款国外的即时通讯聊天工具,除了加密、简洁流畅、跨平台、消息记录永久保存等优点外,我最喜欢的还是 Telegram bot 的功能。Telegram 里有各种各样的 bot,可以满足许多的需求,比如 十分钟邮箱、油管下载、听歌等 bot,RSS 订阅 bot 也十分多(IFTTT 同样有 Telegram bot)。这里就推荐一款最近才出现在眼前的 RSS bot:flowerss bot。优点是可以将 RSS 内容转换成 telegraph 来支持 Telegram 的应用内 instant view(即时预览用过的都说好!),还可以为 Group 和 Channel 订阅 RSS 消息。支持 Docker 部署。

RSS 也许还有更多有趣好玩的方式,期待更多的骚操作被广大网友发现

Tiny Tiny RSS Selfhost 搭建

搭建要求

  1. 一台服务器(我是 Debian 10,以它为例),能连上外网最好
  2. 知道 Linux 基本命令

安装方式

  1. 传统方式安装,通过 git clone 的方式安装 TTRSS,这种方式安装比较慢,而且难度比较大,这里不介绍这种方式,如果有兴趣的话可以去官方 wiki 瞅瞅。
  2. Docker 安装,可以将 Docker 看作 虚拟机,但是又有占用小、启动快等优点,这里采用的是 @HenryQW 的通过 docker-compose 部署。戳这里查看文档

开始安装

安装 Docker

首先升级系统到最新

apt update && apt upgrade

可以选择使用一键脚本安装 Docker,优点是方便快速,缺点是有可能不稳定,如果使用此方法运行下面的命令后跳过后面的步骤直接到下一步。想一步步安装的请无视。

curl https://get.docker.com/ | sh

然后安装一些软件包使 apt 支持 https

apt install \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg2 \
  software-properties-common

添加 Docker 官方的 GPG 密钥

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

添加 Docker CE 稳定版的库(nightlytest 版本可通过替换 stable 实现),这里是 amd64 架构的,其他架构自行替换。

sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/debian \
  $(lsb_release -cs) \
  stable"

接下来更新 apt 包索引

apt update

安装最新的 Docker CE 和 containerd(非必选)

apt install docker-ce docker-ce-cli containerd.io

测试 docker 是否安装成功

docker run hello-world

将 Docker 加入开机自启

systemctl enable docker

成功运行示意图

安装 docker-compose

安装 docker-compose 最新版的命令可以在这里查看:https://github.com/docker/compose/releases

通过 docker-compose 部署

下载 docker-compose.yml 至任意目录或者新建 docker-compose.yml 拷贝我的内容进去。

注意事项:

  1. 包含了:TTRSSPostgreSQLMercury Parser APIOpenCC API 四个镜像,后面两个为可选项,可以安装也可以不安装。
  2. 请务必更改 postgres 用户密码。
  3. 默认通过 181 端口访问 TTRSS,
  4. 默认账户:admin 密码:password,请第一时间更改。
docker-compose.yml
version: '3'

services:
  database.postgres:
    image: postgres:alpine
    container_name: postgres
    restart: always
    environment:
      - PG_PASSWORD=password # 务必修改密码!
      - DB_EXTENSION=pg_trgm
    volumes:
      - ./postgres/data/:/var/lib/postgresql/ # 将数据库数据保存到当前目录的 postgres/data/ 文件夹中

  service.rss:
    image: wangqiru/ttrss:latest
    container_name: ttrss
    restart: always
    ports:
      - 181:80
    environment:
      - SELF_URL_PATH=http://localhost:181/ # 更改为你自己的域名或者 IP!
      - DB_HOST=database.postgres # 数据库地址
      - DB_PORT=5432 # 数据库端口
      - DB_NAME=ttrss # 数据库名称
      - DB_USER=postgres # 数据库用户名
      - DB_PASS=password # 务必修改密码(应与上面修改的密码相同)
      - ENABLE_PLUGINS=auth_internal,fever # 在系统层面启用的插件名称(为所有用户启用),auth_internal 为必选
    stdin_open: true
    tty: true
    command: sh -c 'sh /wait-for.sh database.postgres:5432 -- php /configure-db.php && exec s6-svscan /etc/s6/'

  service.mercury: # 在插件页 API 地址填写 `service.mercury:3000` 启用插件
    image: wangqiru/mercury-parser-api:latest
    container_name: mercury
    restart: always
    expose:
      - 3000

  service.opencc: # 在插件页 API 地址填写 `service.opencc:3000` 启用插件
    image: wangqiru/opencc-api-server:latest
    container_name: opencc
    restart: always
    environment:
      - NODE_ENV=production
    expose:
      - 3000

支持的环境变量列表:

  • SELF_URL_PATH: TTRSS 实例地址
  • DB_HOST: 数据库地址
  • DB_PORT: 数据库端口
  • DB_NAME: 数据库名字
  • DB_USER: 数据库用户名
  • DB_PASS: 数据库密码
  • ENABLE_PLUGINS: 在系统层面启用的插件名称,其中 auth_internal 为必须启用的登录插件
  • SESSION_COOKIE_LIFETIME: 使用网页版登陆时 cookie 过期时间,单位为小时,默认为 24 小时

修改完成后在同目录下运行 docker-compose up -d 等待部署完成即可。此时通过域名(域名需解析到这个 VPS)或 ip 加刚刚设置的端口已经可以开始使用 TTRSS 了,出来登录的界面后先去改个密码,然后来开启 HTTPS 访问。

Tips: TTRSS是每日构建,有时候构建出来的镜像没法使用,还不如固定一个Docker版本

配置 HTTPS

首先安装 nginx 并将其加入开机自启:

apt install nginx
systemctl enable  nginx

然后编写 ttrss 反向代理配置文件

新建 /etc/nginx/conf.d/ttrss.conf 并将一下内容写入,注意替换域名。

nano /etc/nginx/conf.d/ttrss.conf
/etc/nginx/conf.d/ttrss.conf
upstream ttrssdev {
  server 127.0.0.1:181;
}

server {
    listen 80;
    server_name  youdomain.com;
    #return 301 https://youdomain.com$request_uri;
    #rewrite ^(.*)$ https://$host$1 permanent;
}

server {
    listen 443 ssl;
    gzip on;
    server_name  youdomain.com;

    access_log /var/log/nginx/ttrssdev_access.log combined;
    error_log  /var/log/nginx/ttrssdev_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://ttrssdev;

        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }
}

然后使用 nginx -t 查看有无错误,没有错误后使用 nginx -s reload 重启 Nginx 服务。此时使用域名或 ip 应该可以直接访问了,不过这时还是 http。

然后使用 Let’s Encrypt 官方推荐的 Certbot 获取免费的 SSL 证书。

打开 Certbot 说明 后选择 Nginx 和运行的系统后就可以查看官方详细地说明,跟着做一遍就好了。

Cerbot 说明界面

有证书之后再再访问我们的 TTRSS 服务器令人喜爱的小绿锁是不是就出来呢(可能需要重启 Nginx 服务)。

到这个界面就算是告一段落了,撒花!

TTRSS 界面

TTRSS 插件

Mercury 全文获取

Mercury 全文获取插件需要配合单独的 Mercury Parser API 服务器使用,docker-compose 部署方式已经包含 HenryQW/mercury-parser-api 服务器。

设置步骤:

首先去 TTRSS 的偏好设置中开启 Mercury。

开启 Mercury

再在设置中填写 mercury 容器的地址。

填写 Mercury API 地址

再右键点击源选择编辑信息源,在插件中对这个源开启插件。

对单个源开启插件

OpenCC 繁简转换

OpenCC 是一个开源的简繁转换项目,需要配合单独的 Mercury Parser API 服务器使用,docker-compose 部署方式已经包含 HenryQW/OpenCC.henry.wang 服务器。

开启 opencc

再在设置中填写刚刚查看的 Opencc 容器的地址。

填写 Opencc API 地址

备注:t2s为繁体转简体,其他的转换方式如下:

  • s2t: Simplified Chinese to Traditional Chinese 简体到繁体
  • t2s: Traditional Chinese to Simplified Chinese 繁体到简体
  • s2tw: Simplified Chinese to Traditional Chinese (Taiwan Standard) 简体到台湾正体
  • tw2s: Traditional Chinese (Taiwan Standard) to Simplified Chinese 台湾正体到简体
  • s2hk: Simplified Chinese to Traditional Chinese (Hong Kong Standard) 简体到香港繁体(香港小学学习字词表标准)
  • hk2s: Traditional Chinese (Hong Kong Standard) to Simplified Chinese 香港繁体(香港小学学习字词表标准)到简体
  • s2twp: Simplified Chinese to Traditional Chinese (Taiwan Standard) with Taiwanese idiom 简体到繁体(台湾正体标准)并转换为台湾常用词汇
  • tw2sp: Traditional Chinese (Taiwan Standard) to Simplified Chinese with Mainland Chinese idiom 繁体(台湾正体标准)到简体并转换为中国大陆常用词汇
  • t2tw: Traditional Chinese (OpenCC Standard) to Taiwan Standard 繁体(OpenCC 标准)到台湾正体
  • t2hk: Traditional Chinese (OpenCC Standard) to Hong Kong Standard 繁体(OpenCC 标准)到香港繁体(香港小学学习字词表标准)

这个插件同样需要去订阅源的编辑源信息中开启。

Fever API

提供 Fever API 支持,对于使用 Reeder 的用户十分有用。该插件默认作为系统插件启用。

首先在设置中启用 API

启用 API

然后在插件中设置 Fever API 密码

填写 Fever API 密码

在支持 Fever 的阅读器使用 https://youdomain.com/plugins/fever/ 作为服务器地址,使用刚刚设置的密码登录。由于该插件使用未加盐的 MD5 加密密码进行通信,强烈建议使用应用专用密码并开启 HTTPS

最终效果

把你感兴趣的RSS订阅了,甚至可以作为一个更加高效的私有搜索引擎来使用!

个人独立博客是博文质量最高的搜索文章来源!

TTRSS订阅blog.17lai.site效果

参考

  • https://blog.oevery.me/RSS%E4%BD%BF%E7%94%A8%E5%BF%83%E5%BE%97/
  • https://blog.oevery.me/TTRSS%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/

文章作者: 夜法之书
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 夜法之书 !
评论
 本篇

阅读全文

RSS的使用与Tiny Tiny RSS Selfhost自建
RSS的使用与Tiny Tiny RSS Selfhost自建 RSS的使用与Tiny Tiny RSS Selfhost自建
RSS是一种消息来源的格式规范,网站可以按照这种格式规范提供文章的标题、摘要、全文等信息给订阅用户,用户可以通过订阅不同网站 RSS 链接的方式将不同的信息源进行聚合,在一个工具里阅读这些内容
2022-05-31
下一篇 

阅读全文

如何做好竞品分析
如何做好竞品分析 如何做好竞品分析
竞品分析可以帮助我们更好地找准自身产品定位,发现自己产品的优劣所在,进而推动产品的优化迭代。
2022-05-30
  目录