Open source RSS aggregators

RSS Cornucopia

Article from Issue 168/2014

Read and manage your favorite feeds with open source RSS aggregators.

Like email, RSS proved to be one of those inventions that is still going strong despite the onslaught of newfangled technologies designed to replace it. Two popular open source RSS aggregators – Tiny Tiny RSS and NewsBlur – are doing pretty well, which is testament to the RSS format's staying power. Although Tiny Tiny RSS and NewsBlur are popular choices, these applications are not the only fish in the sea. In fact, open source RSS aggregators are available for practically every taste and need. In this article, I introduce you to several open source RSS readers that you can host on your own server or run on a desktop machine.

KrISS Feed

Consisting of a single PHP script, KrISS Feed [1] is a perfect solution for users looking for an RSS aggregator that is both easy to deploy and to use (Figure  1). KrISS Feed will happily run on any server with a web server like Apache or lighttpd and PHP 5.2.

Figure 1: For a single-file PHP script, KrISS Feed packs impressive functionality.

Installing the script on a server couldn't be easier. Grab the latest index.php file from the project's website and copy it into a separate folder (e.g., krissfeed) in your server's document root. Make the directory writable by the server using the

chown www-data:www-data7 -R krissfeed

command, and you are done. Then, point the browser to (replace with the actual IP address or domain name of your server), specify the desired login credentials, and the aggregator is ready to go.

KrISS Feed offers a variety of configuration options for you to tweak (Figure  2). To access them, click on the Configuration link in the main menu. Which settings you want to enable and modify will depend on your particular needs, but at least two options are worth exploring. If you are migrating from another RSS reader, you'll find the ability to import existing feeds in the OPML format rather handy.

Figure 2: KrISS Feed has a range of configuration options.

Although KrISS Feed lets you update feeds manually using a dedicated command in the main menu, you can also configure a cron job to run feed updates automatically at predefined intervals. Better still, the aggregator automatically generates ready-to-use cron jobs that you can find in the Cron configuration section. All you have to do is to run the crontab -e command on your server, insert one of the generated cron jobs, and save the crontab file.

Despite being a single-file PHP script, KrISS packs all the essential features, and then some. For starters, you can easily modify its default bare-bones appearance through a custom user.css stylesheet, and you can find several ready-made stylesheets on the project's website. KrISS Feed features a responsive design, so it works well on mobile devices, thereby alleviating the need for a dedicated app.

The aggregator lets you organize feeds in groups, which makes it easier to keep tabs on large RSS collections. KrISS Feed supports keyboard shortcuts, so you can navigate and manage RSS feeds and individual articles without the mouse. Other creature comforts include the ability to bookmark individual items on Shaarli (an open source bookmark manager), support for different privacy modes (public, protected, and private), and the ability to star articles. All in all, KrISS Feed has an impressive amount of functionality squeezed into one file.


Miniflux [2] is another option for users in search of a no-frills RSS aggregator (Figure  3). Unlike KrISS Feed, Miniflux uses an SQLite database as its back end, so in addition to a web server and PHP 5.2, you need to install the required software on your server. On Debian and Ubuntu, you can do this by running the apt-get install sqlite3 php5-sqlite command as root. You can install Miniflux by downloading the latest release of the application from the project's website or by cloning Miniflux's GitHub repository. The latter makes it easier to keep Miniflux up to date.

Figure 3: Miniflux features a clean and user-friendly interface.

Assuming you have Git installed on your server, you can deploy Miniflux by running

git clone

in the server's document root. Then, issue

chown www-data:www-data-R miniflux

and Miniflux is ready to go. Open Miniflux in the browser and log in using the default admin/admin username and password. Change the default login credentials in the preferences section and populate the aggregator with feeds by manually adding them or by importing an OPML file. Similar to KrISS Feed, Miniflux can automatically update feeds via a cron job  – and a dedicated page [3] provides detailed instructions on how to do that.

Despite its minimalist nature, Miniflux is a rather capable RSS aggregator that packs some nifty features (Figure 4). The application's interface is designed for readability, and it works perfectly on mobile devices (Figure 5). Miniflux supports keyboard shortcuts for common actions, so you read and manage articles without resorting to the mouse. If you are tired of ads clogging your RSS feeds, you'll be pleased to learn that Miniflux automatically removes ads and pixel trackers. The application also removes JavaScript code and uses secure HTTP headers for better security. All external links in Miniflux are opened in new tabs with a rel="noreferrer" attribute, preventing the destination website from collecting your info. Using the bookmarking functionality, you can save RSS articles for later.

Figure 4: Despite its simplicity, Miniflux is a highly configurable RSS aggregator.
Figure 5: Miniflux sports a responsive interface that works well on mobile devices.

Miniflux is also capable of downloading full content on feed articles. This functionality can come in handy for feeds that display only summaries. With the full-content feature enabled, Miniflux fetches entire articles that you can read directly in the aggregator. This feature doesn't work with all feeds, but you can ask the developer to add support for your favorite RSS feeds.

Miniflux sports other useful features, too. The app's Preferences page contains a ready-to-use bookmarklet that lets you easily add the feed of the currently viewed page to Miniflux. The aggregator generates its own RSS feed containing bookmarked RSS articles, and you'll find the feed's link in the More information section. Here, you'll also find tools for optimizing and exporting the back-end database as well as a list of the supported keyboard shortcuts. You can even link your Miniflux installation to your Google+ or Mozilla Persona profiles, so you can log in to the aggregator using your Google+ or Persona credentials.

Unfortunately, Miniflux doesn't let you organize feeds in any way, which makes it less suitable for managing a large collection of RSS feeds. By the way, if running Miniflux is not your cup of tea, you can opt for a hosted version for a one-time fee of EUR  15.


If minimalist RSS readers like KrISS Feed and Miniflux don't cut it for you, then you may be interested in FreshRSS [4]. This user-friendly and relatively lightweight aggregator is loaded with features (Figure 6). Although the file in the project's GitHub repository, along with all available documentation, is in French, the aggregator itself supports English, and the application is straightforward to deploy.

Figure 6: FreshRSS has all the features for handling large RSS feed collections in multiuser environments.

FreshRSS is written in PHP and it can use both MySQL and SQLite databases as its back end. Besides a web server and PHP 5.2.1, then, you need to install additional software. To do this on Debian or Ubuntu, run the

apt-get install sqlite3 php5-sqlite php5-curl php5-mysql

command as root (the sqlite3 and php5-sqlite packages are only necessary if you plan to use FreshRSS with SQLite). To deploy FreshRSS, download and unpack the latest release (or use Git to clone the project's repository) into the document root of your server. Run

chown www-data:www-data -R freshrss

then point the browser to the URL of your FreshRSS installation. This automatically starts a wizard that guides you through a few simple installation steps.

The FreshRSS interface consists of two parts: the left sidebar with a list of RSS feeds and the main area listing RSS articles. The Subscriptions management button at the top of the left sidebar switches to the dedicated page where you can add and edit feeds as well as group them into categories. FreshRSS also lets you import existing RSS feeds in the OPML format and has a bookmarklet for quickly subscribing to RSS feeds.

Similar to KrISS Feed and Miniflux, FreshRSS sports a mobile-friendly interface, so you can use it on your smartphone or tablet without a dedicated app. The default list view displays article titles grouped by date, and clicking on a specific title displays the article's summary (or the entire article, where supported). You can navigate through articles and perform common actions (mark as read, share, collapse, etc.) using keyboard shortcuts. As you would expect, FreshRSS lets you bookmark RSS articles.

The aggregator also makes it possible to share RSS articles, and the application supports a wide range of third-party services, including Google+, Facebook, and Twitter along with Wallabag (an open source alternative to the Pocket service) and Shaarli. You can enable and configure the desired sharing options in the appropriate section of the preferences part of FreshRSS.

In addition to the list view, the aggregator features two other modes: The global view displays categories and feeds them in as palettes, whereas the reading view shows all RSS items in a reading-friendly form (Figure 7). The aggregator offers a search feature that lets you quickly find articles containing specific words or tags. Similar to KrISS Feed and Miniflux, FreshRSS lets you update feeds manually or create a simple cron job to do this automatically. Finally, FreshRSS can handle multiple users, and the aggregator can be integrated with the Mozilla Persona service for easier authentication. To sum up, if you need something beefier than KrISS Feed or Miniflux, FreshRSS definitely deserves a closer look.

Figure 7: FreshRSS offers several viewing modes.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More