搭建一个属于自己的RSS订阅服务

学习笔记 · 04-13 09:35

你是否曾因为信息过载而感到烦恼?是否希望有一个属于自己的信息聚合平台?本文将带你了解如何搭建一个属于自己的RSS订阅服务,让你轻松订阅和管理你感兴趣的内容,打造一个专属你的信息世界。

写在前面

在分享这篇文章之前,我得先好好感谢一下这三位大佬:蜡客生活系我不是咕咕鸽立云图志,感谢提供的帮助和技术支持,非常感谢🙏!

什么是RSS

RSS(简易信息聚合)是一种技术,允许用户订阅网站的更新,并在一个阅读器中集中查看。用户可以订阅新闻网站、博客、播客等多种类型的在线内容。当订阅的网站发布新内容时,RSS会自动获取并推送到用户的阅读器中,方便用户阅读。

使用RSS的优势在于节省时间、个性化订阅、保护隐私。用户不必逐个访问网站来检查更新,只需在一个地方就能看到所有关注的内容。此外,用户可以根据自己的兴趣选择订阅特定的内容源,过滤掉不感兴趣的信息。通过RSS阅读器查看内容,用户不必直接访问网站,可以减少追踪和数据收集,保护隐私。

然而,使用RSS也存在一些缺点。首先,RSS的实时性较差,某些RSS更新可能不如直接访问网站来得及时。其次,不是所有网站都提供RSS源,因此用户可能会错过一些内容。此外,RSS阅读器通常只提供文本内容,用户体验可能不如网站本身。最后,使用RSS需要额外的阅读器工具或应用,增加了使用的复杂性。

总之,RSS是一种便捷的工具,可以帮助用户高效地获取和管理关注的在线内容。尽管存在一些缺点,但对于追求高效、个性化的信息获取方式的用户来说,RSS仍然是一个不错的选择。

市面上有很多RSS订阅服务,比如Feedly和Inoreader,它们能帮我们整理和订阅各种网站的内容,还能同步我们在不同设备上的阅读进度。但这些服务的免费版本有限制,完整功能要花不少钱订阅。幸运的是,GitHub上有个叫Tiny Tiny RSS的开源工具,它能免费提供所有RSS订阅功能,满足我们的需求。

准备工作

1.服务器(这里以 CentOS 7 为例)

2.安装好宝塔面板(不会的话自行百度,网上教程很多的)

3.配置好LNMP(这个一般在安装宝塔面板时都是自带安装的)

具体操作

1.docker的安装和启用

1.1.安装docker

Docker 是非常优秀的虚拟化容器,借助于 Docker 我们可以方便的部署 Tiny Tiny RSS,首先我们在服务器上安装 Docker 本体。在服务器上面执行下面命令来安装 Docker:

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

1.2.启动Docker

sudo systemctl start docker

1.3.检查Docker是否启动成功

sudo systemctl status docker

IMG_4985.jpeg

1.4.设置docker自动启动

sudo systemctl enable docker

2.安装docker-compose

接下来我们安装 docker-compose:一个管理和启动多个 Docker 容器的工具。

由于 Tiny Tiny RSS 依赖有 PostgreSQL 的数据库服务以及 mercury_fulltext 的全文抓取服务等等,这些服务我们都借助于 Docker 部署,因此利用 docker-compose 就会大大降低我们的部署难度。

2.1.我们继续,在服务器上面执行下面的命令来安装 docker-compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.2.之后给予安装好的 docker-compose 可执行权限:

chmod +x /usr/local/bin/docker-compose

2.3.创建链接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2.4.检查安装是否成功:

docker-compose --version

2024-04-13T01:14:29.png

3.安装Tiny Tiny RSS

3.1.准备工作已经全部完成,接下来我们下载由 Awesome-TTRSS 配置的 Tiny Tiny RSS 服务的 docker-compose 配置文件:

# 创建 ttrss 目录并进入
mkdir ttrss && cd ttrss

# 利用curl下载 ttrss 的 docker-compose 配置文件至服务器
curl -fLo docker-compose.yml https://github.com/HenryQW/Awesome-TTRSS/raw/master/docker-compose.yml

3.2.注意利用 curl 下载 ttrss 的 docker-compose 配置文件至服务器可能会报错,大家可以直接在宝塔面板找到对应的文件夹下。

3.3.然后新建docker-compose.yml文件,复制下面的内容进去:

version: "3"
services:
  service.rss:
    image: wangqiru/ttrss:latest
    container_name: ttrss
    ports:
      - 181:80
    environment:
      - SELF_URL_PATH=http://localhost:181/ # please change to your own domain
      - DB_PASS=ttrss # use the same password defined in `database.postgres`
      - PUID=1000
      - PGID=1000
    volumes:
      - feed-icons:/var/www/feed-icons/
    networks:
      - public_access
      - service_only
      - database_only
    stdin_open: true
    tty: true
    restart: always

  service.mercury: # set Mercury Parser API endpoint to `service.mercury:3000` on TTRSS plugin setting page
    image: wangqiru/mercury-parser-api:latest
    container_name: mercury
    networks:
      - public_access
      - service_only
    restart: always

  service.opencc: # set OpenCC API endpoint to `service.opencc:3000` on TTRSS plugin setting page
    image: wangqiru/opencc-api-server:latest
    container_name: opencc
    environment:
      - NODE_ENV=production
    networks:
      - service_only
    restart: always

  database.postgres:
    image: postgres:13-alpine
    container_name: postgres
    environment:
      - POSTGRES_PASSWORD=ttrss # feel free to change the password
    volumes:
      - ~/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host
    networks:
      - database_only
    restart: always

  # utility.watchtower:
  #   container_name: watchtower
  #   image: containrrr/watchtower:latest
  #   volumes:
  #     - /var/run/docker.sock:/var/run/docker.sock
  #   environment:
  #     - WATCHTOWER_CLEANUP=true
  #     - WATCHTOWER_POLL_INTERVAL=86400
  #   restart: always

volumes:
  feed-icons:

networks:
  public_access: # Provide the access for ttrss UI
  service_only: # Provide the communication network between services only
    internal: true
  database_only: # Provide the communication between ttrss and database only
    internal: true

3.4.修改 docker-compose.yml里面的内容:

  • 在配置文件中,将 PostgreSQL 数据库的默认密码进行修改。暴露在公网的数据库使用默认密码非常危险。
  • 在配置文件中,将 Tiny Tiny RSS 服务的部署网址修改为我们实际的部署网址。
  • 注意,如果你的部署 URL 包含端口(默认部署端口为 181 端口),那么这里的 URL 也需要加上端口号,格式为 {网址}:{端口}不过不必担心,如果你这里的 URL 配置不正确,那么访问 Tiny Tiny RSS 的时候,Tiny Tiny RSS 会提醒你修改这里的值为正确的 URL,按照提醒进行配置即可。

如果是用宝塔面板,记得打开安全里面的端口设置。还有服务器端的防火墙端口也要记得放行。

3.5.保存配置文件并启动 Tiny Tiny RSS 服务。在刚刚的 ttrss 目录下执行:

docker-compose up -d

3.6.等待脚本执行完成,如果一切没有问题,那么接下来输入:

docker ps

我们应该看到类似下面的结果:
2024-04-13T01:27:19.png

到这里,我们就可以通过访问 {服务器 IP}:端口 ,直接看到 Tiny Tiny RSS 的 Web 前端了。

当然你也可以通过配置nginx反向代理,来绑定自己的域名来代替上面的 {服务器 IP}:端口 。

此方法来自我不是咕咕鸽

写在最后

此方法仅作为备用资源(自己留着用的😂),当然啦好东西肯定要和大家一起分享的。

完!

宝塔面板 命令 组件 Docker

上一篇 : 网站版权年份自动更新

下一篇 : 如何限制IP请求数和连接数


  1. 06-23 14:15 第25楼 中国广东省广州市移动Windows 10 · FireFox

    我用的APP

    1. 刘郎   博主
      06-23 14:26 第26楼 中国贵州省移动Windows 10 · QQ Browser
      @小轩与远方

      只要能达到自己的目的 什么方法都是可以的

  2. LiuShen   Lv1
    04-22 14:49 第19楼 中国湖北省武汉市联通Windows 10 · Google Chrome

    耶?我今天在转我的友链朋友圈时,发现抓取不到贵站的信息,我看博主的订阅应该是:https://vjo.cc/index.php/feed/ , 我不太懂动态博客,但是index.php不应该是文件吗?为什么文件下还有文件夹呀😂😂有点小懵逼,请教一下

    1. 刘郎   博主
      04-22 15:03 第20楼 中国贵州省移动iPhone · Safari
      @LiuShen

      “index.php"在网站上通常是个文件,但也可以放在文件夹里,比如"feed/”。这样的结构是正常的,可能与网站是否使用伪静态有关,它让动态页面的网址看起来像静态页面。所以,即使网址里有"index.php/feed/",实际上可能还是指向动态生成的RSS内容。

      1. LiuShen   Lv1
        04-22 15:12 第21楼 中国湖北省武汉市联通Windows 10 · Google Chrome
        @刘郎

        好高级哈哈,长见识了

        1. 刘郎   博主
          04-22 15:29 第24楼 中国贵州省移动iPhone · Safari
          @LiuShen

          见笑了😂

        2. LiuShen   Lv1
          04-22 15:13 第22楼 中国湖北省武汉市联通Windows 10 · Google Chrome
          @LiuShen

          我的友链朋友圈好像只能抓取到直接跟/feed/的动态,不过我也会通过友链页面经常回访的😊😊

          1. 刘郎   博主
            04-22 15:28 第23楼 中国贵州省移动iPhone · Safari
            @LiuShen

            欢迎😁

  3. 04-17 13:41 第17楼 中国河南省漯河市联通Windows 10 · Google Chrome

    可以尝试搭建这个哈 挺好用的https://xyzbz.cn/archives/831/

    1. 刘郎   博主
      04-17 13:44 第18楼 中国贵州省移动iPhone · Safari
      @网友小宋

      我看了,的确很不错。还望多指导🙏🏻

  4. 04-17 09:51 第15楼 中国广西玉林市移动Windows 10 · Google Chrome

    别留着了,用起来,给自己做块RSS信息流撒。

    1. 刘郎   博主
      04-17 09:53 第16楼 中国贵州省移动iPhone · Safari
      @蜡客小生

      正有此意😂,不过遇到一点小麻烦……

  5. 和和   访客
    04-16 20:02 第12楼 中国陕西省西安市电信Windows 10 · Google Chrome

    学习了 ,一会试着装一下

  6. eileen   访客
    04-14 18:40 第8楼 中国江苏省扬州市移动Windows 10 · Google Chrome

    好支持

    1. 刘郎   博主
      04-15 04:00 第9楼 中国移动iPhone · Safari
      @eileen

      😄

  7. Net   Lv1
    04-14 18:33 第7楼 中国河北省邢台市电信iPhone · Google Chrome

    这个还没有用过,不过看这教程挺麻烦的呀。

    1. 刘郎   博主
      04-15 04:01 第10楼 中国移动iPhone · Safari
      @Net

      跟着教程一步一步来,不麻烦的😄

  8. 04-13 13:41 第4楼 中国安徽省安庆市电信Windows 10 · Google Chrome

    有的博客朋友圈那个是怎么实现的

    1. 刘郎   博主
      04-13 20:42 第5楼 中国移动iPhone · Safari
      @胖氪笔记

      用服务器部署🫣

  9. 04-13 11:52 第3楼 中国山西省移动Android · Google Chrome

    我是直接用蚁阅放自己博客的那个功能,每天去看看有没有更新的文章,然后顺线过去评论交流,
    蚁阅如果可以接受用浏览访问,其实已经和多设备差不多了

    1. 刘郎   博主
      04-13 20:46 第6楼 中国移动iPhone · Safari
      @二次寒树

      蚁阅的确不错。

  10. 肖寒武   Lv1
    04-13 10:09 第1个脚印 中国浙江省杭州市联通iPhone · Safari

    之前自己搭建过蚁阅RSS阅读。但是自建RSS最大的问题是无法和IOS的Reader等软件同步,每次新增订阅源都要手动添加2次,于是我现在都是只用手机订阅RSS,看到推送之后去电脑找友链

    1. 刘郎   博主
      04-13 10:12 第2楼 中国贵州省移动iPhone · Safari
      @肖寒武

      解决了吗?

      1. jackwill   访客
        04-16 22:45 第13楼 中国江苏省镇江市移动Windows 10 · FireFox
        @刘郎

        Tiny Tiny RSS 搭建好之后可以启用fever api的,我看可以搭配Reeder4使用,安卓手机直接有Tiny Tiny RSS应用,我之前用的,挺方便的,直接同步,个人信息源订阅Rsshub很方便

        1. 刘郎   博主
          04-17 06:56 第14楼 中国贵州省移动iPhone · Safari
          @jackwill

          不错👍

      2. 肖寒武   Lv1
        04-15 14:17 第11楼 中国浙江省杭州市电信Windows 10 · Google Chrome
        @刘郎

        没有,现在只用手机浏览RSS了

| 黔ICP备2024020400号-2 | 萌ICP备20246777号 | | 当前有 4 人在线 |
本站已加入BLOGS·CN
订阅
Sitemap
博友圈 星球穿梭
开往-友链接力