KUSONEKOの見る世界

【初めてのiPhone】Tiny Tiny RSSを使いやすくする


以前からRSSリーダーとして、Tiny Tiny RSSを使用しています。

iPhoneでも使用しようと思いましたが、
Tiny Tiny RSSの公式アプリが無く、非公式アプリでは日本語や英語でも無い言語のアプリと、操作のたびに通信が発生して動作の遅いアプリしかなく不満がありました。

いろいろ調べるうちに、feverプラグインを使用して、他のリーダーアプリを使う方法があることが分かったので試してみました。

Reeder3 for iOS というアプリと組み合わせて使用してみたところ、
Wi-Fi接続時には画像をキャッシュをし、あとで読む時は通信せずに見られるので、
通信料を抑える効果もあり、アプリ自体の動作も快適なので、良い環境になったと思っています。

インストールまでの手順をメモしておきます。
Apache、MariaDBが入っている前提です。
※結構前にやったので、間違っていたらすみません。

■構築当時の環境
CentOS 7.3
Apache 2.4.6-45
MariaDB 5.5.52
PHP 5.4.16-42
tt-rss 2017/1/3のgit
fever plugin 1.4.7

■現在使用中の環境
CentOS 8.3.2011
Nginx 1.14.1
MySQL 8.0.21
PHP 7.2.24
tt-rss 2021/01/10のgit (v21.01-8cf8db845)
fever plugin v2.3

サーバ側

CLIで設定

Tiny Tiny RSSのインストール

[root@server ~]# cd /var/www/html/
[root@server html]# mkdir tt-rss
[root@server html]# git clone https://tt-rss.org/git/tt-rss.git tt-rss
[root@server html]# yum -y install php-mysql php-dom
[root@server html]# cd tt-rss/plugins
[root@server plugins]# mkdir github-base

[root@server plugins]# cd github-base
[root@server github-base]# git clone https://github.com/dasmurphy/tinytinyrss-fever-plugin

[root@server github-base]# cd ..
[root@server plugins]# ln -s github-base/tinytinyrss-fever-plugin/fever

[root@server plugins]# cd ..
[root@server tt-rss]# vi plugins/fever/fever_api.php
561行目を編集

$enclosures = get_article_enclosures($line["id"]);
↓
$enclosures = Article::get_article_enclosures($line["id"]);

716行目を編集

ccache_update($line["feed_id"], $_SESSION["uid"]);
↓
CCache::update($line["feed_id"], $_SESSION["uid"]);

785行目を編集

ccache_update($id,$_SESSION["uid"], $cat);
↓
CCache::update($id,$_SESSION["uid"], $cat);

feverプラグインのインストール

[root@server html]# cd tt-rss/plugins.local/
[root@server plugins.local]# git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever

データベースの設定

[root@server tt-rss]# cp config.php-dist config.php
[root@server tt-rss]# vi config.php
以下を編集
        define('DB_TYPE', "mysql"); // or mysql
        define('DB_HOST', "localhost");
        define('DB_USER', "root");
        define('DB_NAME', "ttrss");
        define('DB_PASS', "rootのパスワード");
        define('SELF_URL_PATH', 'https://サイトのURL/tt-rss/');
[root@server tt-rss]# mysql -u root -p
Enter password:rootパスワード入力

MariaDB [(none)]> create database ttrss
MariaDB [(none)]> exit

[root@server tt-rss]# mysql -u root -p ttrss < schema/ttrss_schema_mysql.sql
Enter password:rootパスワード入力

ディレクトリの権限変更

[root@server tt-rss]# chmod -R 777 cache/images
[root@server tt-rss]# chmod -R 777 cache/upload
[root@server tt-rss]# chmod -R 777 cache/export
[root@server tt-rss]# chmod -R 777 feed-icons
[root@server tt-rss]# chmod -R 777 lock

Feedのアップデート設定(systemdの場合)

[root@server tt-rss]# vi /usr/lib/systemd/system/ttrss.service
[Unit]
Description=ttrss_backend
After=network.target mariadb.service

[Service]
User=apache
ExecStart=/var/www/html/tt-rss/update_daemon2.php

[Install]
WantedBy=multi-user.target
[root@server tt-rss]# systemctl start ttrss.service

Feedのアップデート設定(crontabの場合)

[root@server tt-rss]# crontab -e -u apache
以下を書く。
0 * * * * /usr/bin/php /var/www/html/tt-rss/update.php --feeds --quiet

ブラウザからTiny Tiny RSSにアクセス

ユーザの作成と、
[操作...]→[設定]→[プラグイン]で、feverにチェックを入れ、[選択したプラグインを有効にする]ボタンを押す。

[Fever Emulation]のテキストボックスにfeverプラグイン用のパスワードを入れ、[Set Password]ボタンを押す。

また、購読したいフィードも登録しておく。

iPhone側

App StoreでReeder 3 をインストール。(有料アプリ)
歯車アイコンをタップし、Add AccountでFeverを選択。
Server : https://サイトのURL/tt-rss/plugins.local/fever
Email : 作成したユーザ名
Password : feverプラグイン用のパスワード

ここまでで、使えるようになるはずです。

その他設定

最後に自分が使っているReeder3の設定をメモしておきます。

[General]
Reading
Order Unread Items : Newest First
Subscriptions List
Open Folders as : List of Feeds
Airticle List
Slide Right to : Toggle Read/Archived
Slide Left to : Toggle Starred
Dim Archived Articles : ON
Display Favicons
Subscriptions List : ON
Article List : ON
Display Count
Starred List : ON
Unread List : ON
All Items List : OFF
Mark All As Read
Ask before : ON
Button Position : Right
Airticle View
Pull to Next/Prev Article : ON
Read Now Services / Mobilizer
Article View : Mercury Reader
Open Article Link : Original Page
Browser
Open Links : Safari

[Tiny Tiny RSSのアカウント]
Syncing
Sync : On Start
Refresh on Server : ON
Sync Hot Links : OFF
Archive
Keep Read Items : 1 month
Reading
Mark Article as Read : On Open
Sort Subscriptions : Alphabetically
Image Caching
Unread Items : ON
Starred Items : ON
WiFi Only : ON
App Icon
Unread Count Badge : OFF

追記

2018/05/13 

HTTP2.0に対応させるため、以下のアップデートを行った所、feverプラグインが動作しなくなりました。
Apache 2.4.6 → 2.4.33
PHP 5.6 → 7.2

以下を修正し、動作するようになりました。
560行目を編集
if (ADD_ATTACHED_FILES){
↓ 
if (self::ADD_ATTACHED_FILES){

917行目に赤字の部分を追加
                         return true;
                }
                return false;
        }
         public function __construct($dbh, $request) {
                 $this->dbh = $dbh;
         }

}

?>

2018/05/17

Tiny Tiny RSS を最新にした所、feverプラグインが動作しなくなりましたので、手順を更新致しました。

2018/12/13

Tiny Tiny RSS をgit pullで最新化しましたが、feverプラグインは問題なく使えています。
若干画像キャッシュが遅くなった気がします。
[root@server ~]# cd /var/www/html/tt-rss/
[root@server tt-rss]# git pull

2019/09/09

systemdを使用したFeedのアップデート方法を記載しました。
こちらの方法が推奨だそうです。

2021/08/06

Docker版に移行しました。

Tiny Tiny RSS を Docker版に移行した

Tiny Tiny RSSをホスト上からDocker版に移行してみました。アクセスURLはそのままです。


匿名2017年11月2日 0:15

KUSONEKO様
私も同様の組み合わせで iPhoneのReederアプリから自前のtt-rss+feverプラグインに
アクセスを試みると、5xx internal server error で接続できず悩んでいました。
こちらのblogの通り feverプラグインを修正したところ動くようになりました。
たいへん有意義な情報をありがとうございました!

ちなみに当方の環境は以下のとおり。
Debian 8.9(jessie)
tt-rss 2017/8ころのgit
fever plugin 1.4.7
apache 2.4.10
mysql 5.5.57
php 5.6.30

KUSONEKO2017年11月3日 22:34

コメント&環境情報ありがとうございます。
当方の環境も記事に追記しておきます。