Files
StudyDiary/10-WebClipper/Docker系列 安装个人RSS服务TTRSS 手机完美适配 - 知乎.md
T
2026-07-23 20:36:13 +08:00

306 lines
10 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
created: 2025-08-30T11:45
updated: 2025-09-22T13:27
---
> 转自我的个人博客[https://blognas.hwb0307.com](https://link.zhihu.com/?target=https%3A//blognas.hwb0307.com/)。欢迎关注!
前言
--
关于RSS的介绍这里不再多说,请看我的另一篇博文:[解决信息爆炸困扰的完美方案——RSS](https://link.zhihu.com/?target=https%3A//blognas.hwb0307.com/skill-2/816)。
RSS订阅器平台有很多选择,大家可以看这个文章:[2022年10款最佳RSS阅读器推荐(在线/软件+免费/付费)- 安卓、iOS, Windows, Mac, Linux等适用!](https://link.zhihu.com/?target=https%3A//www.extrabux.cn/chs/guide/6500762)。那**为什么我还是觉得应该有一个自己的RSS订阅器平台**呢?我觉得有以下几点理由:
* 基于[Docker](https://zhida.zhihu.com/search?content_id=202687598&content_type=Article&match_order=1&q=Docker&zhida_source=entity),自建难度低,迁移性好。
* 自建RSS订阅器平台足够强大。有fiter功能等。
* 数据完全掌握在自己手中。可通过duplicati备份。
* 无广告,不担心托管平台倒闭。RSS阅读器平台经常会由于盈利或政策原因关门。
* 没有订阅数上限或其它恶心的限制。完全免费。
* 进一步压榨VPS。毕竟有这么多性能溢出!
下面我们搭建一个RSS平台——`[Tiny Tiny RSS](https://zhida.zhihu.com/search?content_id=202687598&content_type=Article&match_order=1&q=Tiny+Tiny+RSS&zhida_source=entity)`,即`TTRSS`。基于[Fever API](https://zhida.zhihu.com/search?content_id=202687598&content_type=Article&match_order=1&q=Fever+API&zhida_source=entity),`TTRSS`也可完美地适配手机端(IOS; 安卓应该也是类似的)的阅读。
搭建过程中主要参考[咕咕:二十分钟搭建一个属于自己的RSS服务](https://link.zhihu.com/?target=https%3A//blog.laoda.de/archives/tinytinyrss)和一些官方文档。总之很容易安装。开始吧!
测试环境
----
用的腾讯云VPS:
```text
uname -a # Linux VM-12-8-ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
docker --version # Docker version 20.10.5, build 55c4c88
docker-compose --version # docker-compose version 1.28.6, build 5db8d86f
```
准备工作
----
```text
# 工作目录 按需修改
work=~/docker/tinytinyrss && mkdir -p $work && cd $work
# 防火墙开放端口 按需修改
sudo ufw allow 3894/tcp comment 'tinytinyrss' && sudo ufw reload
# 提前拉取镜像,国内下载速度也蛮快的
docker pull wangqiru/ttrss:latest
docker pull wangqiru/mercury-parser-api:latest
docker pull wangqiru/opencc-api-server:latest
docker pull postgres:13-alpine
```
配置yml
-----
新建文件:
```text
vim $work/docker-compose.yml
```
添加以下内容:
```text
version: "3"
services:
service.rss:
image: wangqiru/ttrss:latest
container_name: ttrss
ports:
- 3894:80 # 按需修改
environment:
- SELF_URL_PATH=https://rss.domain.com/ # 按需修改
- DB_PASS=ipbufQW8F2 # 按需修改。与下面的密码对应
volumes:
- ./feed-icons:/var/www/feed-icons/
networks:
- public_access
- service_only
- database_only
stdin_open: true
tty: true
restart: always
service.mercury:
image: wangqiru/mercury-parser-api:latest
container_name: mercury
networks:
- public_access
- service_only
restart: always
service.opencc:
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=ipbufQW8F2 # 按需修改。与上面的密码对应
volumes:
- ./db/:/var/lib/postgresql/data
networks:
- database_only
restart: always
networks:
public_access:
service_only:
internal: true
database_only:
internal: true
```
这里要说明的是,除了`按需修改`的部分,其它代码大家尽量不要动它,免得在后面的设置中出错。如果你是大神就当我没说吧!
上线服务:
```text
cd $work && docker-compose up -d
```
可以通过这个命令查看日志:
改变文件夹的权限。这一步一定要做,否则TTRSS无法成功启用。
```text
sudo chmod 777 $work/feed-icons
```
重启应用:
ddns-go & NPM
-------------
ddns-go或者域名托管后台里添加域名:`rss.domain.com`
NPM无特殊设置。类似于:
![](https://pica.zhimg.com/v2-d28181fe1168150a941d319d76cc9640_1440w.jpg)
初始化
---
默认帐户:
第一次登陆进行要先改一个密码,用bitwarden生成强密码:
![](https://pic3.zhimg.com/v2-d8e5cd93990ffbbb6e2bc3b2a60eb922_1440w.jpg)
在用户这里,点admin:
![](https://pic3.zhimg.com/v2-bab0675bd3363059b071589e461379c4_1440w.jpg)
填入一个新密码:
![](https://pic2.zhimg.com/v2-6df75399d107ca06599d5b4b2e4cd831_1440w.jpg)
更改新密码后,重新用新密码登陆。帐户信息可用bitwarden保存。
设置
--
我们可以去`偏好设置`那里:
![](https://picx.zhimg.com/v2-e9673b2e356c63d78006aa9a8ffe7eed_1440w.jpg)
启用外部API
-------
这一部分的设置主要是为了让外部终端(比如手机的[Unread](https://zhida.zhihu.com/search?content_id=202687598&content_type=Article&match_order=1&q=Unread&zhida_source=entity))可以访问它。毕竟我们很有可能经常在手机上看我们的RSS订阅!
![](https://pica.zhimg.com/v2-1ce6ca6a4e3916310b6753c9750611f2_1440w.jpg)
开启Mercucy和opencc功能
------------------
开启`Mercucy`是为了可以获取全文;开启`opencc`是为了中文的简繁体转换。记得点`启用选择`生效。这主要是电脑端的优化吧,对手机阅读端而言没有太多影响。
![](https://pic1.zhimg.com/v2-0d4bca74806e9268c4d124915be88e3c_1440w.jpg)
启用Fever API
-----------
可以用bitwarden生成一个密码并填入`Set Password`前面的空格中,记得点击`Set Password`保存。这个密码主要是在手机客户端通过Fever API订阅时需要用。你也可以设置得简单点。不过,如果你手机上有bitwarden的话,密码再长也无所谓,因为你不需要记住它!
![](https://pic2.zhimg.com/v2-8456b3879e1a6bd552b58baa7d884e53_1440w.jpg)
设置订阅源插件
-------
我们的docker-compose安装过程中已经内置了`Mercucy`和`opencc`两个应用。由于之前在偏好设置中启用了`Mercucy`和`opencc`功能,所以这里我们要指定它们的应用API。
* Mercucy:
![](https://pic1.zhimg.com/v2-2c79fb0ea5c80a0c67dfd3daea6b4534_1440w.jpg)
* opencc
![](https://picx.zhimg.com/v2-bb6f36f60f1963bee43b486017070c79_1440w.jpg)
`TTRSS`的设置和一般软件设置的布局不太一样,刚开始操作时可能令人摸不着头脑。大家多多探索一下,应该问题不大!
添加分类和信息源
--------
这个就比较简单了,自己摸索一下吧。主要有2个入口,这里直接贴图。
主页的入口:
![](https://pic4.zhimg.com/v2-564905f4d2ec123e10761ea9eba07fb9_1440w.jpg)
偏好设置中的入口:
![](https://pica.zhimg.com/v2-8b370d56c53fa8f5134886db03a15dae_1440w.jpg)
不懂的话评论区留言。
其它
--
这里主要分享一些我觉得比较实用的设置。
不展开文章
-----
有些订阅源的正文很长很长,如果你设置了`始终展开文章`,阅读体验很差。
![](https://pic4.zhimg.com/v2-eee42b13c2fcbdc2c7fcdcc2115e67c3_1440w.jpg)
换主题
---
如果不喜欢默认皮肤,还可以换主题。这个利好颜控!
比如,我将主题改成`feedly-cozy`:
![](https://pica.zhimg.com/v2-1075b8d75dc89ed6a3aba58bd0c235d8_1440w.jpg)
实际效果如下:
![](https://pica.zhimg.com/v2-ff9fd5665590dc54e08215615dc3af36_1440w.jpg)
看某篇文章时的效果如下:
![](https://pica.zhimg.com/v2-abfa96d99798b8b2b2d2900a460eddb4_1440w.jpg)
感觉棒棒哒!其它主题就没试过了。我比较随意,并不在意这些花里胡哨的东西。
快捷键
---
像大多数RSS阅读器一样,TTRSS也有快捷键:
![](https://pica.zhimg.com/v2-ff6b72e9b8df9b31a561648f55770bbe_1440w.jpg)
我觉得比较实用的快捷键就2个:
* `a+q`:将展开的文章折叠
* `f+q`:将某个分类的文章全部标记为已读(这个真的好用!)
IOS客户端Unread
------------
如果手机不能很好地阅读自己的RSS,显然RSS是没有灵魂的。这里通过`Unread`,基于Fever的API实现服务端的TTRSS调用。只要是支持Fever API的RSS阅读器都行,这个你自己选吧!我只说`Unread`,是因为**国服的App Store只有这个`Unread`比较好用**。其它的RSS阅读器基本都不支持Fever API。我觉得`Unread`不是专为国人设计的,也不支持中文,有点不太满意。大家凑合着用吧!有用过其它的比较好的RSS阅读器,小伙伴们也可以评论区留言推荐。
`Unread`的用法如下:
* 地址:`https://rss.domain.com/plugins/fever/`(这里要注意没有`.local`!)
* 帐户:admin
* 密码:`启用Fever`时输入的那个密码。不是登陆密码。
下面给个APP的截图:
![](https://picx.zhimg.com/v2-20de9a1c224d5fd284e0761e687ef513_1440w.jpg)
其实习惯了也还好。
小结
--
大家可以通过[duplicati](https://link.zhihu.com/?target=https%3A//blognas.hwb0307.com/linux/docker/471)定期备份整个`$work`目录。
同时,我注意到TTRSS还支持`api_feedreader`、`api_newsplus`,所以`FeedReader`和`News+`应该也可以使用。大家可以试试看,好像要通过global configuration才可以调用。反正我有Unread还凑合,就不折腾了!大不了转Reeder!
日志
--
* 2022-05-01:使用了几天Unread,发现**Unread对于个人博客同步的支持较差**,常常爬不到内容,也拉不到历史内容;TTRSS明明是可以爬取到的。暂无解决方案。
参考
--
* [知乎:RSS打造完美信息流](https://zhuanlan.zhihu.com/p/370156661)
* [Awesome TTRSS](https://link.zhihu.com/?target=http%3A//ttrss.henry.wang/)
* [咕咕:二十分钟搭建一个属于自己的RSS服务](https://link.zhihu.com/?target=https%3A//blog.laoda.de/archives/tinytinyrss)
* [自建rss服务并适配 IOS 移动端( TTRSS + Fever )](https://link.zhihu.com/?target=https%3A//www.jianshu.com/p/2aeadace5a08)
* [知乎:你必读的 RSS 订阅源有哪些?](https://www.zhihu.com/question/19580096):这里有很多好回答。
> 本文使用 [文章同步助手](https://zhuanlan.zhihu.com/p/358098152) 同步