OpenSource RSS Reader – FreshRSS, probably the best…

FreshRSS - LogoFreshRSS is a free, self hostable, rss aggregator, they actually claim to be the the best one out their but only “in their opinion”, which is a funny statement that I’ve pushed me to try it out!


They got a running demo (demo/demodemo) to let you give a try or directly a quick link to their latest archive to install on your own server.

Written in PHP, FreshRSS is a simple to install yet with great features such as Multiusers, feeds statistics (how many articles per feed, per category, …), with keyboard shortcuts, Multi-languages at the installation, it also includes some social media sharing features (Twitter, Facebook, Google+) or simply by email but also with Shaarli, Wallabag or your own Diaspora pod! Its responsive design will also deliver a good experience for mobile devices!

It can access any HTTP protected (username/password) RSS feed and embed an archiving feature to regularly clean the old articles (3 months per default).

FreshRSS - Feeds

However no need to have necessary short archiving time if you fear about slowness of your instance as FreshRSS handle more than 100k articles without hassle.

So, best out there? Well, FreshRSS is clearly a good piece of work and one of my favourite among the previously reviewed Sismics Reader and Selfoss. The only missing feature for me will be the social network follow up (Twitter and even Youtube), although some 3rd party solutions exist such as RSS-Bridge, having everything included will be best as does Selfoss.

FreshRSS is still actively maintained, so we might have new features coming up this year!

FreshRSS - Github

Interested to run your own instance? (You should!) Here is how to:

To install FreshRSS, you will Apache2, PHP5.3.7+, MySQL 5.0.3+. If you don’t have them, please follow my previous tutorial on how to install a LAMP server.


1) Create a dedicated folder to install FreshRSS:

In root (su), type:

mkdir /var/www/freshrss

2) Download and extract the latest FreshRSS archive

cd /var/www/freshrss
mv FreshRSS-master/* .
rm -R FreshRSS-master/

3) Change the owner of the folder to ensure apache web user can access

chown -R www-data:www-data /var/www/freshrss

4) Install the needed PHP modules: (cURL, php-mysql,

apt-get install php5-common php5-curl php5-mysql

5) and proceed to the Web UI installer

Just point your web browser to http://IP/freshrss/p

FreshRSS - Installation

The step 1 will check if there are any requirements not met. If all green, you can proceed to step 2, on the general configurations (How long to keep articles, authentication method, …).

On Step 3, you will need a MySQL database, if you don’t have one ready, I suggest you to use PHPMyAdmin to create one easily.

Then simply follow the rest of the steps.

You should now have a a working FreshRSS service running on your server, so don’t forget to add my feed to keep in touch!

FreshRSS - Login

Virtualhost configuration

Now you got your RSS reader working and you want to access it from rss.domain.tld or directly from mywebmail.tld, instead of using the IP/freshrss link, you will need to set up a virtualhost. And you could force HTTPS connection.

You will need to:

1) Create a A redirection in your DNS server/registrar

2) Have SSL certificate ready. If not you can read this tutorial.

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called freshrss (In root):

nano /etc/apache2/sites-enabled/freshrss

and paste/adapt the following content:

<VirtualHost *:80>
        ServerAdmin webmaster@domain.tld
        ServerName rss.domain.tld
        Redirect / https://rss.domain.tld


<IfModule mod_ssl.c>
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/myblog.pem
        SSLCertificateKeyFile /etc/ssl/private/myblog.key

        ServerAdmin webmaster@domain.tld
        ServerName rss.domain.tld

        DocumentRoot /var/www/freshrss/p
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        <Directory /var/www/freshrss/p>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

Adapt the content (Servername, webmaster, SSL certificate and directory, …).

When done, save the file (CTRL+X then Yes) and reload apache: (In root)

/etc/init.d/apache2 reload

You should now be all set!


Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment