自建 RSS Reader

Tiny Tiny RSS

Php 5.6, Postgresql or MySQL

Docker 安装,虽然 ttrss 官方给了自己的 解决方案
,但似乎刚刚起步,而 linuxserver/tt-rss
的镜像因为拿不到 tt-rss tarball 所以也停止更新了。所以最后折中的方案就是用了 这个镜像

QNAP 下的 PostgreSQL

App store 中可以直接安装,但实际上 QNAP 只是帮用户默认用 docker-compose 安装好了,不过也还行了,连 phpPgAdmin 也安装了。
查看下文件内容:

version: '3'

services:
  db:
    image: postgres:11.4
    restart: on-failure
    ports:
      - 5432:5432
    volumes:
      - ./data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=postgres

  web:
    image: edhongcy/phppgadmin:latest
    restart: on-failure
    ports:
      - 7070:80
      - 7443:443
    depends_on:
      - db
    environment:
      - PHP_PG_ADMIN_SERVER_DESC=PostgreSQL
      - PHP_PG_ADMIN_SERVER_HOST=db
      - PHP_PG_ADMIN_SERVER_PORT=5432
      - PHP_PG_ADMIN_SERVER_SSL_MODE=allow
      - PHP_PG_ADMIN_SERVER_DEFAULT_DB=template1
      - PHP_PG_ADMIN_SERVER_PG_DUMP_PATH=/usr/bin/pg_dump
      - PHP_PG_ADMIN_SERVER_PG_DUMPALL_PATH=/usr/bin/pg_dumpall

      - PHP_PG_ADMIN_DEFAULT_LANG=auto
      - PHP_PG_ADMIN_AUTO_COMPLETE=default on
      - PHP_PG_ADMIN_EXTRA_LOGIN_SECURITY=false
      - PHP_PG_ADMIN_OWNED_ONLY=false
      - PHP_PG_ADMIN_SHOW_COMMENTS=true
      - PHP_PG_ADMIN_SHOW_ADVANCED=false
      - PHP_PG_ADMIN_SHOW_SYSTEM=false
      - PHP_PG_ADMIN_MIN_PASSWORD_LENGTH=1
      - PHP_PG_ADMIN_LEFT_WIDTH=200
      - PHP_PG_ADMIN_THEME=default
      - PHP_PG_ADMIN_SHOW_OIDS=false
      - PHP_PG_ADMIN_MAX_ROWS=30
      - PHP_PG_ADMIN_MAX_CHARS=50
      - PHP_PG_ADMIN_USE_XHTML_STRICT=false
      - PHP_PG_ADMIN_HELP_BASE=http://www.postgresql.org/docs/%s/interactive/
      - PHP_PG_ADMIN_AJAX_REFRESH=3

看到了默认密码了吧,QNAP 官方的页面都不写一下,让别人一键安装的去哪里找,还不如直接贴这个让用户自己到 Container 里面自己建呢。

如果安装后发现用默认的用户名: postgres
和默认密码: postgres
登录不了,尝试重启一下服务,然后 netstat -tupln 看看服务 5432 端口有没有启动。

/etc/init.d/postgresql.sh restart

然后就开始安装 ttrss:

docker run -d --name ttrss --restart=unless-stopped \
-e SELF_URL_PATH=http://:181 \
-e DB_HOST= \
-e DB_PORT=5432 \
-e DB_NAME=ttrss \
-p 181:80 \
wangqiru/ttrss

安装的时候有个坑,启用时遇到如下错误:

PHP Fatal error: Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "ttrss_version" does not exist LINE 1

我一般习惯 MySQL 的做法,先到数据库中新建了一个 DB,新建一个用户,然后再用 -e DB_USER=user -e DB_PASS=password
来创建 Docker 容器,没想到遇到了 Bug
,首次初始化的时候脚本里有着判断,如果 db 已经存在了就不初始化 sql 了,所以到数据库中把新建的数据库删掉,然后再来一次就好了。
其他说明:

  • --restart
    参数可以换成 --restart=always
    ,这样系统重启容器也能重启
  • SELF_URL_PATH
    这里需要和启动时的 URL 配置完全一致,否则 ttrss 启动时会出错

其他插件安装可以 参考这里
,比如全文输出,主题之类,我只想用 ttrss 来订阅几个我日常关注的博主,其他的订阅源还是InoReader 所以也就不折腾全文不全文了,不全文输出的也就没有订阅的必要了。不过如果你想要实现全文输出也还是有办法的。

FreshRSS

FreshRSS 也是 PHP 编写,基本依赖也就是 PHP 和数据库,MySQL 5.5.3+ MariaDb, SQLite, PostgreSQL 9.5+. 界面也比较简洁大方。

在线预览: https://freshrss.org/

用 Docker 安装也比较方便,可以 参考这里

NewsBlur

Python, Django, Celery etc

NewsBlur 的在线预览可以点击 这里
,界面也还是很不错的。

Selfoss

另一款 PHP 编写的 RSS 阅读器。

miniflux

Go 编写,依赖 Postgresql

stringer

Ruby 编写

Leed

Php/MySQL

更多自建的 RSS 可以参考 这里
大概还有几十种,不同语言,不同实现。

reference