Ubuntu Weekly Recipe

第266回 Google Readerの代替サーバーを用意する

この記事を読むのに必要な時間:およそ 5 分

既に各所で報道されているように,Google Readerのサービスが今年の7月に終了する予定です。そこで今回は,Ubuntu ServerでGoogle Readerのようなサービスを提供する方法を紹介します。

Google Reader

Google Readerはウェブベースのフィードアグリゲーターです。ローカルクライアントのフィードアグリゲーターと比較すると,次の特徴を持っています。

  • ウェブブラウザーさえあればどこからでもアクセスできる
  • クライアントを起動しなくても定期的に記事を取得してくれる
  • 取得した記事を保存しておいてくれる
  • 複数のデバイス間で簡単に既読やタグ,マークなどの状態を共有できる

このため家のPCや出先のスマートフォンから同じデータを,更新による負荷を気にすることなくアクセスできるアプリケーションとなっていました。

Google Readerのサービスが終了する場合,Feedlyといった同等の機能を持った代替サービスに移行すればそれほど問題はおきないでしょう。

しかし,オンラインサービスというのはいつかは終了するもの。Googleサービスは比較的データのエクスポート手段の提供に積極的なことに加えて,Google ReaderのAPIの存在が他のサービスへのスムーズな移行を実現しています。しかし,今後もそのような手段が存在するとは限りません。

もし,Google Readerと同等のサービスを自分で実現する手段を用意しておいて,状況によって既存のオンラインサービスと併用することができれば,今後サービスが終了した場合も安心ではないでしょうか注1)。

そこで今回は,Google Readerからエクスポートしたデータを使える,2つのサーバーアプリケーションを紹介します。

注1
もちろんローカルのアグリゲーターを使うというのも一つの手です。大抵のクライアントはOPML形式に対応しているはずなので,それを使えば複数のデバイス間でのフィード共有もできます。

Google Readerからエクスポートする

Google Readerのデータをエクスポートするには,Readerのページ右上にある歯車アイコンから,「リーダーの設定」「インポート/エクスポート」を選択します。「Download your data through Takeout」をクリックすればGoogle Takeout経由でデータをエクスポートできます。

データの中身はただのJSON/XMLファイルです。このうちsubscriptions.xmlが登録したフィードリストになります。なお同じディレクトリに入っているstareed.jsonは,スターをつけた記事の一覧です。

残念ながらラベルや既読情報などはこの方法では移行できません。そのようなデータも移行したい場合は,非公式に解析が行われているGoogle Reader APIを参考に,自分で取得するしかないでしょう。

Tiny Tiny RSS

Tiny Tiny RSSはPHPで作られたウェブベースのニュースアグリゲーターです。ウェブブラウザーで操作でき,キーボードショートカットも充実していること,ラベルやスターに対応しているために記事の管理が楽なこと,Android用のクライアントも開発されていることなどから,既存のソフトウェアの中ではもっともGoogle Readerに近い感覚で使えるアグリゲーターでしょう。

JSON APIが提供されていて,Lifereaなどのローカルアグリゲーターも対応していることも特徴です。

図1 Tiny Tiny RSSの画面

図1 Tiny Tiny RSSの画面

インストール方法

Ubuntu 12.10以降であればtt-rssという名前でパッケージが提供されているため,Ubuntu上でも簡単にインストールできます。ただ,今回はUbuntu 12.04 LTS上で運用したいので,ソースコードからインストールする手順を紹介しましょう。

最低限必要なのは,ウェブサーバーとRDMSです。ここではそれぞれApache2とPostgreSQLを使います。もしプラグインを使う場合は,さらに他のパッケージも必要になるかもしれません。その場合は,tt-rssパッケージの依存関係を参考に,必要そうなパッケージを追加でインストールしてください。

$ sudo apt-get install apache2 postgresql php5 php5-cli php5-pgsql wget ca-certificates
$ mkdir src
$ cd src
$ wget https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.7.4.tar.gz
$ tar xzvf 1.7.4.tar.gz
$ sudo mv Tiny-Tiny-RSS-1.7.4/ /var/www/tt-rss
$ sudo chown -R www-data. /var/www/tt-rss

次に設定ファイルのテンプレートをコピーして,実際に設定を行います。DB_USERやDB_NAME,DB_PASSは後述のデータベースの作成でも使用しますので,適宜自分の環境にあわせて読み替えてください。

$ sudo -u www-data cp -a /var/www/tt-rss/config.php{-dist,}
$ sudo -u www-data editor /var/www/tt-rss/config.php
    define('DB_USER', "ttrss");
    define('DB_NAME', "ttrss");
    define('DB_PASS', "ttrss");
    define('DB_PORT', '5432'); // when neeeded, PG-only
    define('SELF_URL_PATH', 'http://localhost/tt-rss/');

$ sudo chmod 600 /var/www/tt-rss/config.php

今回はPostgreSQLを使うことにしたので,postgresのコマンドでユーザーとデータベースを作成します。MySQLやMariaDBを使う場合は,それにあわせて変更してください。

# データベースのユーザーの作成(権限はすべてnと回答します)
$ sudo -u postgres createuser --pwprompt ttrss
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
$ sudo -u postgres createdb --owner=ttrss ttrss
$ psql --host=localhost --username=ttrss --password \
    --file=/var/www/tt-rss/schema/ttrss_schema_pgsql.sql ttrss

$ sudo service apache2 restart

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入