目标
在qnap nas上搭建ttrss、rsshub,并通过fluent reader连接到所搭建的服务,实现多端同步。过程中踩了很多坑,所以这篇文章将列出所有遇到的坑,完整详细地讲解如何搭建一个可以正常使用的rss系统。
nas搭建教程
awesome ttrss (文档)
简介
一个一站式rss客户端解决方案,可以多端同步浏览记录。其中的fever插件允许应用程序接入。
创建数据库文件夹
ttrss需要数据库来保存文件。在File station中Container共享文件夹中右键创建文件夹,右键新建的文件夹选择属性,记下文件路径。
注意:显示的文件路径不全,需要在前面补上/share
,在后面补上/文件夹名称
,最终路径应该像这样:/share/.../文件夹名称
使用docker安装
qnap提供container station,可以运行docker容器。首先在app center里安装container station(这里已经装好):
打开之后选择创建(create),右上角选择create application:
弹出一个窗口,随便取个名字,然后把下面的代码粘贴到YAML一栏(这段代码在官方文档里有):
version: "3"
services:
service.rss:
image: wangqiru/ttrss:latest
container_name: ttrss
ports:
- 181:80
environment:
- SELF_URL_PATH=http://ip:181/ # please change to your own domain
- DB_PASS=ttrss # use the same password defined in `database.postgres`
- PUID=1000
- PGID=1000
- ALLOW_PORTS=1200
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:
- 数据库路径:/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
粘贴后,修改ip、数据库路径。ip即nas的ip地址,数据库路径即在第一步中创建的文件夹路径。
注意:其中allow_ports为除80,443端口外ttrss可以访问的端口号,这里设置为1200是为了rsshub能够正常订阅。
设置完成后,点确定就可以创建ttrss了。等待一段时间,装好后访问http://ip:181/
就可以访问到ttrss界面了。
设置ttrss
打开ttrss后,默认账号admin
,密码password
。在右上角偏好设置-用户里可以改。
启用fever插件
为了让客户端可以访问ttrss,必须借助fever插件。
偏好设置-偏好设置-Fever Emulation里设个密码:
连接fever(以开源的fluent reader为例,支持windows,ios,android等平台)
打开设置,选择服务,fever api。在“端点”中填入http://ip:181/plugins/fever/
。用户名为ttrss用户名,密码是fever插件中设置的密码,不是ttrss的密码!
到此,ttrss设置完毕,可以正常订阅、阅读rss内容了。下面配置rsshub。
rsshub(文档)
简介
一个可以为不提供rss站点生成rss的项目。
docker搭建
因为这次不需要多个容器(ttrss需要有数据库和本体),所以不需要输入代码,所有操作都可以在图形界面进行,首先安装rsshub容器(从左到右按照图示操作):
版本选latest,到最后选择advanced settings>>
,选择network一栏,把network mode调成bridge,选择use static IP,把ip address改成不同于nas的(一般改最后一位即可)。
注意:请根据实际网络情况配置该项。
为什么要这么做?
实际测试无法自己访问自己,所以将容器独立出来,为它在局域网内分配一个单独ip,即可正常访问。
接下来建立容器,等待一段时间后访问ip:1200
,若出现welcome to rsshub即建立成功。
到此,所有配置全部完成,应该可以正常使用了。