你是否曾因为信息过载而感到烦恼?是否希望有一个属于自己的信息聚合平台?本文将带你了解如何搭建一个属于自己的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}:端口 。

此方法来自我不是咕咕鸽

写在最后

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

完!