强大的Tiny Tiny RSS – RSS 服务器 Docker 自建阅读解决方案

简介

市面上各种信息聚合类APP的出现,RSS逐渐走向消亡,特别是当Google关闭了GReader后,各大提供RSS服务的网站也逐渐关停。但是,当我发现RSS后,却发现RSS很好用,特别是可以在一个地方聚合我想要了解到的信息,之前我一直使用的是Feedly,但是第三方毕竟还是第三方,说不定哪天就关闭了,还是自己自建一个属于自己的RSS订阅网站,所有东西都在自己的掌控中,

下面来介绍一下Tiny Tiny RSS(TT-RSS)安装的过程(其实很简单),Tiny Tiny RSS 是一款 PHP 语言的开源 RSS 阅读器。

项目主页:https://github.com/HenryQW/Awesome-TTRSS

官方主页:https://tt-rss.org/

说明文档:https://tt-rss.org/wiki.php

优点

  • 通过皮肤可以寻找 GR 阅读的感受(如上图)
  • 有适合移动设备的皮肤/插件(别人成功了,我还没找见,英语渣,没办法)
  • 支持插件
  • 有 Android 客户端(我用着很舒心)
  • 只要你愿意,可以把更新频率设得够高,第一时间获得订阅更新
  • 支持导入OPML(必须滴)
  • 可以收藏(星标)
  • 有中文,不完全
  • 欢迎继续发掘

安装

想要通过 Docker 方式搭建 TTRSS,你首先需要安装 Docker 和 Docker-Compose ,如果你没有安装 vim ,请使用以下指令安装:

\\ 基于 apt 包管理器
apt update && apt install vim -y

创建 docker-compose 文件

创建并进入一个用于保存文件的文件夹

mkdir ttrss && cd ttrss

使用以下命令创建并编辑 docker-compose 文件

vim docker-compose.yml

将该 Github 链接中的内容复制粘贴进入 docker-compose 文件

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

修改 docker-compose 文件

docker-compose 文件中必须修改的内容有:

不进行修改必定无法成功部署,请务必修改

\\ 修改 http://localhost:181/ 为部署成功后,准备访问 TTRSS 的网址
- SELF_URL_PATH=http://localhost:181/   //如:http://88.88.88.88:181/

docker-compose 文件中可以修改的内容有:

如果你不清楚这些内容的含义,可以不进行修改直接跳转到下一步

\\ 修改 181 以自定义 TTRSS 的访问端口
- 181:80

\\ 修改 ~ 以自定义数据库文件存放路径
- ~/postgres/data/:/var/lib/postgresql/data

\\ 修改 ttrss 以自定义数据库连接密码
- DB_PASS=ttrss

\\ 修改 ttrss 以自定义数据库密码
- POSTGRES_PASSWORD=ttrss

\\ DB_PASS 与 POSTGRES_PASSWORD 必须相同

保存即可!

开始部署

使用以下命令开始部署,并等待部署完成

docker-compose up -d

当看到四个绿色的 done 时,表示部署成功:

Creating mercury  ... done
Creating ttrss    ... done
Creating opencc   ... done
Creating postgres ... done

访问

在浏览器地址栏中,输入我们之前在 docker-compose 文件里修改的网址,回车访问。

使用账户:admin 密码:password 登录系统,并修改默认密码。

这一步基本就算完成了ttrss的安装过程,剩下的就是自己遇到有意思的rss往里面放就行了,也可以直接导入opml文件。

修改

如果使用域名绑定反代IP地址后,要修改 docker-compose.yml:

- SELF_URL_PATH=http://localhost:181/
修改为
- SELF_URL_PATH=http://域名/

然后:

docker-compose up --force-recreate -d

等待执行完毕即可!

插件

mercury-parser-api

按我的理解,这是一个可以将任何网上文章结构化抓取下来的一个网络服务,用docker来安装运行这个网络服务了,整个命令如下:

sudo docker run -p 3000:3000 -d --restart=always  wangqiru/mercury-parser-api

安装完成后,通过curl 188.188.188.188:3000命令能返回下面一行,就算成功了,其中ip地址是我杜撰的自己服务器的IP地址:

{"message":"Welcome to  mercury-parser-api API! Endpoint: /parser"}

mercury_fulltext插件

之所以要装这个插件,是我订阅的rss中,有个大侠的rss只有前面一段短文,不给全篇文章,安装这个之后就可以自动把全篇文章给弄到rss上来了。

安装也简单,直接进入tiny tiny rss 后台,插件选择,启用即可:

完成了之后从浏览器登入tiny tiny rss 后台,然后启用mercury_fulltext这个插件,完了在feeds的mercury_fulltext填上IP:3000

然后对需要使用该插件的rss源右键进入编辑,然后插件选择使用mercury_fulltext就可以了:

更多插件查看:http://ttrss.henry.wang/#plugins