群晖使用docker安装并部署TTRSS
去年 3 月上了蜗牛星际的矿难车,折腾近一年感觉是时候分享一些弯道使用经验。
RSS 订阅接触蛮早,犹记得当年国内红极一时的 feedsky 托管服务,还有一并消散的 Google Reader、抓虾、鲜果等。
如今的 Feedly,Inoreader 仍然是很不错的产品,这里分享如何在群辉下搭建开源的 Tiny Tiny RSS。
TTRSS 以及 Awesome TTRSS 简介
Tiny Tiny RSS:基于 PHP 的免费开源 RSS 聚合阅读器
官方地址:https://tt-rss.org/
项目开源地址:https://git.tt-rss.org/git/tt-rss/src/master
官方说明文档:https://git.tt-rss.org/fox/tt-rss/wiki
Awesome TTRSS:基于 TTRSS 打包的一站式容器化(For Docker)解决方案
官方文档地址:https://ttrss.henry.wang/
项目开源地址:https://github.com/HenryQW/Awesome-TTRSS
至于为什么选 TTRSS,因为它插件多,功能强大,有移动客户端支持,嗯,理由够多了。
还有个原因就是 feedly 有一些站点不能订阅,比如 @喵喵 的博客?。
群晖前置条件
Docker 套件安装(设置第三方套件来源),参考下图安装启动(自带 compose)。
Docker 版本为 version 18.09.8, build 2c0a67b
Docker-compose 版本为:version 1.24.0, build 0aa59064
图中的第三方地址:http://packages.synocommunity.com/
安装后点击控制面板 ➡ 共享文件夹 ➡ docker ➡ 编辑 ➡ 取消在“网上邻居”隐藏此共享文件夹。
安装 Awesome TTRSS
采用 docker-compose 方式进行部署,因群晖特殊性,请仔细核对代码中标注的特别注意 ❗
复制以下内容并保存为 docker-compose.yml (使用UTF-8)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
version: "3" services: database.postgres: image: sameersbn/postgresql:10 #特别说明不要使用latest container_name: postgres environment: - PG_PASSWORD=PGPS123 # 修改数据库密码 - DB_EXTENSION=pg_trgm volumes: - /volume2/docker/ttrss/data/:/var/lib/postgresql/ # 特别注意,套件在哪个volume就填几,volume2是需要修改的值 restart: always service.rss: image: wangqiru/ttrss:latest container_name: ttrss ports: - 5005:80 environment: - SELF_URL_PATH=http://yourIP:5005/ # 下面7个参数后期可在docker中修改,所以暂时不需要改动 - DB_HOST=database.postgres - DB_PORT=5432 # 数据库端口,别动它 - DB_NAME=ttrss - DB_USER=postgres - DB_PASS=PGPS123 # 上面的密码 - ENABLE_PLUGINS=auth_internal,fever # 默认开启 stdin_open: true tty: true restart: always command: sh -c 'sh /wait-for.sh database.postgres:5432 -- php /configure-db.php && exec s6-svscan /etc/s6/' # 别随便改动,这是容器启动时执行的命令 |
官方提供的 yml,包含 Mercury 全文获取和 OpenCC 简繁转换插件,如果你要使用,请参考官方文档操作,我未选择是因为我订阅的信息流 99% 都是独立博客,既然博主设定了站点不全文 RSS 输出,那就主动点过去阅读,订阅端相当于更新通知系统,方便互访,而简繁转换?,个人觉得多余,又不是看不懂。
以上文件复制到群晖共享目录 docker 的 TTRSS 子目录中(没有就新建),图中示意为 WIN 系统平台操作,然后在 TTRSS 目录中再新建 data 目录,用于存放数据库文件。
然后用 root 用户进入 shell,cd 到对应 docker 的 TTRSS 目录中运行以下指令,一步搞定(其实就是把你手动要执行的操作自动化)。
1 |
docker-compose up -d |
然后静静等待,打开群晖的 docker,看到下面的样子就表示?了,此时建议再等等(后台还在执行初始化操作),几分钟后再访问。
配置修改
打开浏览器,访问 http://群晖的IP:5005,如果提示
Please set SELF_URL_PATH to the correct value detected for your server: 你要访问的地址
说明你刚才的 URL 设置不对,没关系,停掉容器,修改成你要访问的地址,如图。
针对这个问题,我详细阅览了一番官方 issue list,在 issue #19 中作者明确指出,不会使用如下指令解决或规避此问题(也就是说在配置文件中定义SKIP_SELF_URL_PATH_CHECKS为ture就不会出现此报错)。
1 |
define('_SKIP_SELF_URL_PATH_CHECKS', true) |
因为 TTRSS 的原作者也指出,如果跳过检查,或许会导致不可预知的问题产生,所以请正确设置。如果你非要想通过多个域名访问,请进入容器,然后修改?,群晖进入 docker 容器修改配置文件的指令如下:
1 2 3 4 5 6 7 8 9 10 11 |
#查看TTRSS的容器ID docker ps #容器ID替换成你TTRSS容器ID前四位即可 docker exec -it 容器ID sh #编辑容器内config.php文件 vi config.php ##之前的配置不用处理 ##在文本末尾添加define('_SKIP_SELF_URL_PATH_CHECKS', true);保存退出即可 ##记得分号,保存退出编辑器 :wq #退出容器 exit |
修改后在GUI界面重启容器即可(亲测有效),但为了保证安全性和稳定性仍然不建议修改?。
其他配置一般不需改动,如要更改 5001 端口,请记得在 docker 的端口设置中同步更正。
TTRSS 使用注意事项
默认用户 admin,密码 password,进入后先到偏好设置修改密码,用户 ➡ 点击admin,然后导入你之前的 OPML(信息源 ➡ OPML ➡ 导入 OPML),搞定。
提示:feedly OPML 导出地址 ➡ https://feedly.com/i/opml
Android 客户端国内商店貌似没提供,反正我的 1 加没得,官方提供的试用版蛮好用。不晓得试用期结束后会怎么样,晚点更新状况,鉴于强国内无法访问,分享最新版下载。
苹果可使用 Reeder 4(利用 fever 插件),因要 30 软妹币我放弃了体验?,毕竟穷?。
还有些待补充的东西
关于如何利用内网穿透达到外网访问的功能,留在后面写吧,我讨厌一次性长篇大论(主要写得累?)
然后如何配置 HTTPS 也放到下次(和内网穿透一起,毕竟利用的是 FRP)。
在群晖上还有另外一种部署方法,可定制性较高,其实我是推荐另一种的,不过 docker 方便呀。
终于完成了 RSS 阅读终端的移转,也算是对自己一个交待,毕竟在 @喵喵 那边立下了 flag,今年完成的第一个 flag?。
其次写这个只是为了分享一些容易掉坑的细节,也当作自己折腾 NAS 的记录,希望能帮助到一些人。
再次愿疫情早日过去,或许下周一就得乖乖上班,我现在倒希望去上班,真的宅不住了呀???。
-End-
2020年02月20日 12:10 沙发
大都待在家里瞎折腾,我也想上班呢…
2020年02月21日 23:17
@Mr.Chou 只要是想出去透气,在家怕长胖~~
2020年02月20日 22:15 板凳
我用的Inoreader,然后订阅了好多新闻,现在有几千条没有看了。
2020年02月20日 22:29
@子痕 几千条? 完全信息爆炸呀,还好我大都是博客
2020年02月23日 18:00 地板
感觉安装起来好复杂哈~~,都是没玩过的东东
2020年02月24日 10:05
@野生的喵喵 ?你平时开发不是用Linux么,docker都是大同小异,只是群晖环境不一样而已
2020年02月24日 10:10
@Sam.Z 我开发用windows~ ,家里是ubuntu下安装window虚拟机,linux开发还是不太行
2020年02月24日 10:07 4楼
你会发现,有些rss更新tt抓不到
2020年02月24日 16:58
@心灵博客 除了被墙的,用了一个礼拜,感觉还不错,你现在用什么,还是在线服务么
2020年02月24日 19:21 5楼
我把 TTRSS 干掉了,用回 Feedly。。。
2020年02月28日 12:08 6楼
这个很实用,正好家里有台群晖,安排上
2020年02月28日 21:12
@刘晨晨 安卓和苹果下的APP都是收费的,关键安卓下的APP如果是中国区无法购买,吐血~ 免费的压根不能看,UI丑到爆,所以最终还是得用web界面~
2020年03月21日 16:22 7楼
老哥,android客户端建议使用 freeMe,感觉还不错。
另外, 关于支持第三方应用,建议再偏好设置里面 启用API :允许外部客户端通过 API 来访问该账户
2020年03月21日 17:21
@leo 这篇文章没写完全,因为网上很多类似教程,所以主要写了一些需要注意的地方,freeMe等会哈回家试试,谢谢,我的群晖把https端口修改了,哈哈,晚点我把这篇文章更新下,再次感谢指正和补充
2020年03月22日 17:23
@leo 没有在商店找到支持 TTRSS 的freeMe客户端,同名字的是一个桌面程序
2020年03月22日 17:27
@Sam.Z 抱歉。 名字错了。
应该是feedMe
谷歌商店:https://play.google.com/store/apps/details?id=com.seazon.feedme&hl=zh
酷安:https://www.coolapk.com/apk/com.seazon.feedme
支持Feedly,InoReader,Bazqux,The Older Reader, Feedbin, Tiny Tiny RSS, FreshRSS, Fever。
2. 一键保存到Pocket,Evernote,为知笔记,Instapaper或者Readability
2020年03月22日 18:01
@leo 嗯,确实可以!刚才安装了,非常好用,谢谢
2020年03月21日 16:28 8楼
另外,建议一下,如果是群晖使用该脚本。 docker-compose.ym 里面 请把端口映射 改为其他端口。 5001 是群晖的HTTPS默认端口。容易发生错误。
ports:
– 5001:80
错误提示:
ERROR: for ttrss Cannot start service service.rss: driver failed programming external connectivity on endpoint ttrss (384a16db86bca6d1bca081807a547f0d59498884519fe3412a947fc719b3d531): Error starting userland proxy: listen tcp 0.0.0.0:5001: bind: address already in use
2020年08月18日 13:41 9楼
用127.0.0.1是为了nginx反代?
2021年02月25日 17:18 10楼
不要用这篇文章,基本上全是错误。
2021年02月25日 17:27
@gqwty525 哪些地方有错误,还请指出,我很久没更新了,之前这样架设是可以的
2021年03月07日 20:50 11楼
设置完postgres一直意外停止重新启动,网页无法正常连接怎么破
2021年03月07日 22:27
@x 之前升级了postgres也遇到过,我采用的方式是降级,代码改下,sameersbn/postgresql:10,我现在还是用这个版本,OK的~~ 试试,谢谢指正,我修改下
2021年03月26日 15:30 12楼
部署成功,谢谢博主
2021年04月01日 19:54
@ruojian 成功就好,注意数据库不要升级,新版本反正我升级后报错。
2021年06月14日 20:06 13楼
存放文件的目录能否也一并链接出来?不知道哪个目录需要链接……
2021年06月18日 11:34
@antior 最近没怎么关注博客, 回复晚了, 不清楚你说的是哪个存放目录, 默认所有的都是在docker目录下面, yml文件里面指定了/volume2/docker/ttrss/data/, 我这里是volume2, 你要看你的环境.
2021年09月06日 00:09 14楼
没搞明白,为什么作者没有弄到hub.docker上,不是方便得多么,非要手动拉一下?
2021年09月06日 14:42
@枫影 每个部件都有更新,打包后维护麻烦,Stille有做脚本,推荐阅读 https://www.ioiox.com/archives/139.html
2021年09月07日 00:03
@Sam.Z 已经找到了hub.docker上最新版本的tt-rss集成套件,直接搜索下载即可,没这么多弯弯绕的,地址奉上:https://registry.hub.docker.com/r/johngong/tt-rss/
唯一缺点,作者忘记设置UID和GID了,导致容器权限操作起来麻烦,希望能补完。
2021年09月06日 16:12 15楼
不是脚本的问题,如此群晖内不方便
2022年09月20日 12:46 16楼
看了下,一直折腾到SKIP_SELF_URL_PATH_CHECKS,这里被彻底干翻。
到了文档编辑器那边,这简直是告诉不懂linux的人不许玩,我只好默默的ALT F4,放弃TTRSS了
2022年10月06日 15:41
@EliteOtaku 太久没有关注自己的博客,其实就是进入容器修改文件,还好啦,折腾折腾打发时间还能学东西,TTRSS真的蛮好用的