May 15, 2007

Tiny Tiny RSS: A very very useful RSS reader

Author: Dmitri Popov

Tiny Tiny RSS (TT-RSS) is an excellent little Web-based RSS aggregator that, despite its tiny size, sports some clever features, including an AJAXified interface, a multiuser mode, tags, content filtering, and a lightweight interface for use with mobile devices.

Although TT-RSS doesn't include an installer script, installing the application is not difficult. First, make sure that your Web server has the prerequisites installed, which include PHP and either the PostgreSQL or MySQL database engine. You will also need a database management tool such as phpMyAdmin for MySQL or phpPgAdmin for PostgreSQL.

Download and unpack the latest TT-RSS package, then rename the resulting folder into, for example, tt-rss. Next, install the database schema using the database management tool. To do this, you have to execute the appropriate SQL script located in the schema directory inside the tt-rss folder (e.g. ttrss_schema_mysql.sql for MySQL). Once the database is set up, rename the config.php-dist to config.php, open it in a text editor, and configure the database connection settings. Upload the entire tt-rss folder to your Web server and point your browser to http://yourserver/tts-rss/. If everything works properly, you should see TT-RSS's main window.

Obviously, the first thing you'll want to do is populate TT-RSS with your favorite RSS feeds. To do this, select Preferences from the Actions drop-down list in the upper right corner of the main window, then click on the My Feeds tab. You can subscribe to individual feeds by entering their URLs in the Address field and clicking the Subscribe button. Since TT-RSS supports OPML files, you can also import all your existing feeds in one go.

Tip: By default, TT-RSS fetches the feeds' icons, which spice up the overall appearance of the aggregator. If a feed doesn't have an icon, TT-RSS used a default blank icon instead. If you don't like it, you can easily replace it with a custom icon by replacing the blank_icon.gif image in the images directory of the TT-RSS installation with your own.

Once the feeds have been imported, you can group them by categories to make them easier to manage. Press the Edit categories button, and use the dialog window to create the categories you want. Then select the feeds you want and apply the desired category to them by pressing the Recategorize button.

Content filtering is another nifty feature that can help you to keep tabs on multiple feeds. You can create filters that perform a certain action if a specified condition is met. Since TT-RSS supports tagging, you can, for example, create a filter that tags all articles with the "" tag. To do this, click on the Content Filtering tab, and press the Create filter button. Use the dialog window to define the filter, which may look like this:

TT-RSS - click to enlarge
On field: Title or Content
Feeds: All feeds
Action: Assign tags
Options: Enabled

If you are not satisfied with TT-RSS's default settings, you can tweak them under the Preferences tab. Most of the available options are self-explanatory, and there are brief descriptions of the more advanced settings. Here you can specify a time interval for feed updates, choose a different interface theme, specify a custom date format, and enable an email digest feature. In the Preferences section, you can also enable the Labels feature. To make this feature work, you must set the GLOBAL_ENABLE_LABELS value in the config.php file to true, like this:

define('GLOBAL_ENABLE_LABELS', true);

Labels are SQL queries that act as virtual feeds. TT-RSS comes with two default labels: Unread articles and Updated articles. You can create your own labels in the Preferences section under the Label Editor tab, but this is an experimental feature and it requires a working knowledge of SQL.

Like other RSS aggregators, TT-RSS is straightforward in use. The left pane contains all the feeds and labels (provided labels are enabled). You can switch to a tag view by clicking on the Display tags link. The right pane is used to display the articles from the currently selected feed. TT-RSS allows you to star RSS articles, which then appear in the Starred section in the left pane. You can tag the currently viewed article, and you can search an entire feed using the aggregator's search feature. Since TT-RSS supports keyboard shortcuts, you can browse feeds without using the mouse. TT-RSS also marks the modified RSS articles (including the articles marked as read), for example, when a comment is added to a blog post or the post itself has been updated. All the modified articles are listed under the Updated articles label.

If you want to access TT-RSS from a mobile device, you can do so by using the aggregator's mobile interface. Simply add /mobile to the URL of your TT-RSS installation (e.g. http://yourserver/tt-rss/mobile) to access the interface.

By default, TT-RSS runs in single-user mode, but you can easily turn the aggregator into a multiuser installation, where each user can have his own feeds and settings. In multiuser mode, TT-RSS allows you to view and subscribe to other users' feeds (the Other Feeds tab in the Preferences section), so the aggregator also acts as a kind of feed sharing service. To enable the multiuser mode, set the SINGLE_USER_MODE value to false in the config.php file:

define('SINGLE_USER_MODE', false);

Log in to TT-RSS using the default user account (user name "admin," password "password"), and you can manage users in the Preferences section under the User Manager tab.

You can use TT-RSS not only to subscribe to RSS feeds, but also to generate them. This is, in fact, what makes TT-RSS not just an RSS reader, but a real feed aggregator. TT-RSS generates feeds for categories, labels, and even searches. This means that you and other users can subscribe, for example, to all the starred articles or feeds consisting of articles tagged as "Linux." You can access generated feeds by clicking on the feed icon near the feed's title.

Lastly, there is also a Firefox extension for TT-RSS, which you can use to get feed updates without opening the aggregator. The extension pulls the update data via the backend.php file in the TT-RSS directory. There are several ways to keep this file updated without running TT-RSS; the most straightforward one is to run the following command (you can also run it as a cron job for periodic updates):

wget -q -O /dev/null "http://yourserver/tt-rss/backend.php?op=globalUpdateFeeds&daemon=1"

Don't forget to replace "yourserver" with the actual IP address or URL of your TT-RSS installation.

Tip: If you want to add TT-RSS to the list of RSS readers in Firefox, so you can subscribe to feeds directly from within Firefox, follow the instructions on TT-RSS's Web site.

Dmitri Popov is a freelance writer whose articles have appeared in Russian, British, US, German, and Danish computer magazines.

Click Here!