目標(biāo)
在qnap nas上搭建ttrss、rsshub,并通過fluent reader連接到所搭建的服務(wù),實(shí)現(xiàn)多端同步。過程中踩了很多坑,所以這篇文章將列出所有遇到的坑,完整詳細(xì)地講解如何搭建一個可以正常使用的rss系統(tǒng)。
nas搭建教程
awesome ttrss (文檔)
簡介
一個一站式rss客戶端解決方案,可以多端同步瀏覽記錄。其中的fever插件允許應(yīng)用程序接入。
創(chuàng)建數(shù)據(jù)庫文件夾
ttrss需要數(shù)據(jù)庫來保存文件。在File station中Container共享文件夾中右鍵創(chuàng)建文件夾,右鍵新建的文件夾選擇屬性,記下文件路徑。
注意:顯示的文件路徑不全,需要在前面補(bǔ)上/share,在后面補(bǔ)上/文件夾名稱,最終路徑應(yīng)該像這樣:/share/.../文件夾名稱
使用docker安裝
qnap提供container station,可以運(yùn)行docker容器。首先在app center里安裝container station(這里已經(jīng)裝好):

打開之后選擇創(chuàng)建(create),右上角選擇create application:

彈出一個窗口,隨便取個名字,然后把下面的代碼粘貼到Y(jié)AML一欄(這段代碼在官方文檔里有):
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:
- 數(shù)據(jù)庫路徑:/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、數(shù)據(jù)庫路徑。ip即nas的ip地址,數(shù)據(jù)庫路徑即在第一步中創(chuàng)建的文件夾路徑。
注意:其中allow_ports為除80,443端口外ttrss可以訪問的端口號,這里設(shè)置為1200是為了rsshub能夠正常訂閱。
設(shè)置完成后,點(diǎn)確定就可以創(chuàng)建ttrss了。等待一段時間,裝好后訪問http://ip:181/就可以訪問到ttrss界面了。
設(shè)置ttrss
打開ttrss后,默認(rèn)賬號admin,密碼password。在右上角偏好設(shè)置-用戶里可以改。
啟用fever插件
為了讓客戶端可以訪問ttrss,必須借助fever插件。
偏好設(shè)置-偏好設(shè)置-Fever Emulation里設(shè)個密碼:

連接fever(以開源的fluent reader為例,支持windows,ios,android等平臺)
打開設(shè)置,選擇服務(wù),fever api。在“端點(diǎn)”中填入http://ip:181/plugins/fever/。用戶名為ttrss用戶名,密碼是fever插件中設(shè)置的密碼,不是ttrss的密碼!
到此,ttrss設(shè)置完畢,可以正常訂閱、閱讀rss內(nèi)容了。下面配置rsshub。
rsshub(文檔)
簡介
一個可以為不提供rss站點(diǎn)生成rss的項(xiàng)目。
docker搭建
因?yàn)檫@次不需要多個容器(ttrss需要有數(shù)據(jù)庫和本體),所以不需要輸入代碼,所有操作都可以在圖形界面進(jìn)行,首先安裝rsshub容器(從左到右按照圖示操作):

版本選latest,到最后選擇advanced settings>>,選擇network一欄,把network mode調(diào)成bridge,選擇use static IP,把ip address改成不同于nas的(一般改最后一位即可)。
注意:請根據(jù)實(shí)際網(wǎng)絡(luò)情況配置該項(xiàng)。
為什么要這么做?
實(shí)際測試無法自己訪問自己,所以將容器獨(dú)立出來,為它在局域網(wǎng)內(nèi)分配一個單獨(dú)ip,即可正常訪問。
接下來建立容器,等待一段時間后訪問ip:1200,若出現(xiàn)welcome to rsshub即建立成功。
到此,所有配置全部完成,應(yīng)該可以正常使用了。