Tiny Tiny RSS:部署中的普遍问题与注意事项总结
最近一直在折腾 Tiny Tiny RSS,包括升级、添加样式和持久化。由于我是直接使用了 Awesome TTRSS 项目提供的 docker-compose.yml
部署的 Docker 版本 Tiny Tiny RSS,所以一些经验还是具有普遍性、值得分享的。这里我总结一下我在部署 Tiny Tiny RSS 过程中遇到的一些「普遍问题」和「注意事项」。
关于如何在自己的服务器上面部署 Tiny Tiny RSS:
- Tiny Tiny RSS | 最速部署私有 RSS 服务器:我的博客
- 找不到满意的 RSS 服务?你可以自己搭建一个:我的少数派文章
如何直接更新最新版本的 Tiny Tiny RSS
首先明确一下,更新 Awesome TTRSS 至最新版时,实际上更新了全部组件,包括 Tiny Tiny RSS 本体、主题、插件等等。比如这次更新(2020 年 2 月更新)就将 Feedly 主题 最新的更新中加入的 feedly-cozy.css
、feedly-sepia.css
等等主题全部加入了。
我推荐大家手动执行更新。更新 Tiny Tiny RSS 本体:
docker pull wangqiru/ttrss:latest
更新 Mercury 和 OpenCC 服务:
docker pull wangqiru/mercury-parser-api:latest
docker pull wangqiru/opencc-api-server:latest
之后,重启 Tiny Tiny RSS 服务即可:
docker-compose up -d
Awesome TTRSS 项目中提供了 Watch Tower 项目,但是我并不推荐大家通过这一工具进行自动更新,因为 Watch Tower 会将你的全部 Docker 容器更新,可能会导致其他环境的不兼容。
如何在编辑 docker-compose 文件之后重启 Tiny Tiny RSS
无论是重新配置了何种环境,是重新映射的 Volume 还是添加了 docker-compose.yml
设置,我都推荐直接用这一命令重启 Tiny Tiny RSS 服务:
docker-compose up -d
如果你先运行停止 Docker 容器(docker-compose down
、docker-compose rm
)的命令,我都遇到过数据库丢失的情况,因此只要没有特殊需要,我们都可以只使用上面的命令重启 Tiny Tiny RSS 服务。
如何正确的配置 Fever Emulation API
通常,为了适配第三方 RSS 阅读器比如 Reeder,我们需要使用 Fever Emulation API 进行「登录」。首先我们必须开启 Tiny Tiny RSS 外部 API 访问的权限。在 Preference » General » Enable API 处开启:
Fever Emulation 的 API 包含有三个部分:
- 你的 Fever API 地址(通常是你的服务器域名 +
/plugins/fever/
) - 你的登录用户名
- 你的 Fever API 密码
在 Preferences » Personal data / Authentication » Personal data » Full name 处设置的用户名就是你 Fever API 的用户名:
在 Preferences » Fever Emulation 处你可以找到:
- Fever API 地址
- 设置 Fever API 密码的地方
要知道,设置 Fever API 的密码时点击 Set Password 并不会提示「成功」,不过你可以从 XHR 请求中看到 Password saved 的 response,所以其实你的密码已经保存啦。用这里设置的 API 地址、用户名和密码,我们就能成功登录 Reeder 等 RSS 阅读器了。
如何设置分栏视图
「分栏视图」就是类似笔记应用的一个侧边栏显示订阅文章列表,另一侧显示文章内容的视图。你可以:
-
在 Preferences » Preferences » Articles 中关闭 Combined mode 的设置:
-
回到主界面,在右上角的汉堡键 » Toggle widescreen mode 处点击打开宽屏模式:
这样 Tiny Tiny RSS 就会以分栏视图显示文章列表和文章内容了。
另外,我的基于 Feedly 修改的主题配置文件:GitHub - Gist
如何正确设置 Mercury 全文抓取和 OpenCC 繁简转换 API
如果你使用了 Awesome TTRSS 中包含的 Mercury 全文抓取和 OpenCC 繁简转换 API,那么你应该在 docker ps
的输出中看到这两个服务的身影:
如果你这两个服务的配置和原配置一致:
service.mercury:
image: wangqiru/mercury-parser-api:latest
container_name: mercury
expose:
- 3000
restart: always
service.opencc:
image: wangqiru/opencc-api-server:latest
container_name: opencc
environment:
NODE_ENV: production
expose:
- 3000
restart: always
那么,你只需要在 Tiny Tiny RSS 的 Preferences 中开启这两个插件,并将 API 地址依次设置为如下即可。(Docker 会自动探索相应的服务 API 地址。)
Mercury | OpenCC |
---|---|
service.mercury:3000 |
service.opencc:3000 |
注意,你需要在每一个订阅源中明确指定使用 Mercury 或 OpenCC 服务(右键编辑),才可以真正保证服务的准确运行。
如何调试、查看 Tiny Tiny RSS 与其他容器服务的 log
Docker 容器的 log 查看非常简单。如果我们想用 docker-compose
查看整个 Awesome TTRSS 的 log:
# 查看 docker-compose 的 log 后 5 条
docker-compose logs --tail 5
我们可以用下面的命令查看单个服务的 log:
# 查看 Mercury 服务后 5 条
docker logs mercury --tail 5
另外,我们也可以用下面的命令查看实时更新的 log:
# 查看实时更新的 Mercury 服务(显示 10 条)
docker logs mercury --tail 10 -f
如何持久化 Tiny Tiny RSS 图标
升级更新了 Tiny Tiny RSS 服务之后,每次订阅源的图标都会丢失。我们可以通过将 Tiny Tiny RSS 的图标文件夹挂载到 Docker 容器之外来「持久化」图标存储。
在 docker-compose.yml
中,将 Tiny Tiny RSS 的 Docker 容器配置 service.rss
中添加如下的配置:
volumes:
- ~/awesome-ttrss/feed-icons/:/var/www/feed-icons/ # mount feed icons to local machine
这样即可将 Docker 容器里面 /var/www/feed-icons/
文件夹里面的内容挂载到外面服务器上的 ~/awesome-ttrss/feed-icons/
文件夹。
另外,我们还需要给 ~/awesome-ttrss/feed-icons/
文件赋予合适的权限:
sudo chmod -R 777 feed-icons
这样,Tiny Tiny RSS 下载的 favicon 就全部挂载到本机,更新 Docker 容器也不会对这些内容造成任何影响了。
感谢阅读。🙇♂️