27th December, 2016 | Tutorials |

How to Create Your Own RSS Reader Using MiniFlux on Ubuntu 14.04

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.

Get a Cloud Server

Miniflux is an open source, simple, minimalist RSS reader released under the AGPL v3 license. Developed with simplicity in mind, no social network support, no fancy features and also fast, simple and efficient.


Miniflux has several main features:


In this tutorial we'll learn how to install and configure MiniFlux on Ubuntu 14.04. We'll install all MiniFlux prerequisites before installing MiniFlux itself.


We need to install these applications before we can install MiniFlux.

Update Base System

Before we install MiniFlux and its prerequisites let's update the system to the latest update.

$ sudo apt-get update
$ sudo apt-get -y upgrade

Install Apache

Now the base system is ready, let's install the Apache webserver first

$ sudo apt-get install apache2 apache2-bin apache2-data apache2-mpm-prefork libaio1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libdbi-perl libhtml-template-perl libterm-readkey-perl libwrap0 ssl-cert tcpd
Need to get 2,258 kB of archives.
After this operation, 7,917 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y

Press Y when apt ask whether we want to continue the prosess or not.

After installation we can check Apache 2 process using command below

$ sudo service  apache2 status
 * apache2 is running

The output above shows that apache2 process is running.

We can also check apache process using netstat to check if it's already listen on default http port (80).

$ sudo netstat -naptu | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      6894/apache2 
apache2 process already listen on port 80.

Install PHP 5

Our Apache 2 webserver is now ready. Next we install PHP 5 including php5-sqlite library that is needed by MiniFlux. We can install PHP 5 and all of its components using commmand below.

$ sudo apt-get install libapache2-mod-php5 php5-cli php5-common php5-json php5-readline php5-sqlite

Since no dependency installed, apt will directly install all packages that we provided.

Install SQLite

Now let's install SQLite. SQLite will be used by MiniFlux to store task data.

$ sudo apt-get install sqlite

Install MiniFlux

We can download Miniflux from Miniflux download page. At the time of this writing the latest version of Miniflux is v1.1.10.

Let's download the latest stable version of Miniflux using wget

$ cd ~
$ wget -c

We need unzip to extract downloaded archive. If you don't have unzip, you can install unzip using command below:

$ sudo apt-get install unzip

Now let's extract downloaded archive with unzip.

$ unzip

Move the extracted folder to /var/www directory.

$ sudo mv miniflux /var/www

Change ownership of the miniflux directory to www-data user.

$ sudo chown -R www-data:www-data /var/www/miniflux

Configure Apache Virtual Host for HTTP Only

Create a new apache configuration file on /etc/apache2/sites-available/miniflux.conf with the contents below.

<VirtualHost *:80>

DocumentRoot /var/www/miniflux

<Directory /var/www/miniflux> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory>

ErrorLog ${APACHE_LOG_DIR}/ CustomLog ${APACHE_LOG_DIR}/ combined


Don't forget to swap the from the example above with the domain name that you use for your Minixflux installation.

Enable the site using a2ensite command.

$ sudo a2ensite miniflux

Reload the apache2 process so it reads the new virtualhost configuration:

$ sudo service apache2 reload

Minixflux .htaccess configuration uses mod_rewrite for its configuration, we need to enable the module first.

$ sudo a2enmod rewrite

Now restart apache2 process so the new module enabled will be used by Apache.

$ sudo service apache2 restart

Using Miniflux

Now miniflux is ready, point our browser to Miniflux address. We will be greeted with login page.

HP_NO_IMG/data/uploads/users/2bf921f9-3b46-43aa-a673-2a9a74a5ce9a/2015460224.png" alt="" />

Miniflux default username and password is admin.

HP_NO_IMG/data/uploads/users/2bf921f9-3b46-43aa-a673-2a9a74a5ce9a/301484477.png" alt="" />

Change Default Admin Password

For security reasons, we need to change default admin password. Go to preferences. Input a new password on password and confirmation column. Scroll down to the end of the page and click save

HP_NO_IMG/data/uploads/users/2bf921f9-3b46-43aa-a673-2a9a74a5ce9a/149975916.png" alt="" />

Add Feeds

To add a feed, go to subscriptions, click add. For example let's try adding HostPresto! tutorial, the feed address is

Input feed url and let's group the feed under Tutorials group.

HP_NO_IMG/data/uploads/users/2bf921f9-3b46-43aa-a673-2a9a74a5ce9a/1197164469.png" alt="" />

When the subscription added successfully it will show up on main page as undead.

HP_NO_IMG/data/uploads/users/2bf921f9-3b46-43aa-a673-2a9a74a5ce9a/1882850483.png" alt="" />

Import OPML File

OPML (Outline Processor Markup Language) is an XML format for outlines (often blogrolls). We can import an OPML file to our Miniflux installation. To import OPML file we can go to subscription -> import.

HP_NO_IMG/data/uploads/users/2bf921f9-3b46-43aa-a673-2a9a74a5ce9a/2095891806.png" alt="" />

Export OPML file

We can also export an OPML file from Miniflux, this can be a method to share our reading list to family, friends or even to the world. We can export our reading list on Miniflux from subscription -> export

Configure miniflux To Use HTTPS only

A secure connection is now a requirement for web applications. The last step that we will do in this tutorial is changing the connection to only use https. We assume that you already have SSL certificate and private key.

Let's create new apache virtual host configuration on /etc/apache2/sites-available/miniflux-ssl.conf with contents below. Don't forget to change:

<VirtualHost *:80>
   Redirect permanent /

<VirtualHost *:443>


DocumentRoot /var/www/miniflux

<Directory /var/www/miniflux> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory>

ErrorLog ${APACHE_LOG_DIR}/ CustomLog ${APACHE_LOG_DIR}/ combined

SSLEngine on SSLCertificateFile /etc/apache2/ssl/ SSLCertificateChainFile /etc/apache2/ssl/ SSLCertificateKeyFile /etc/apache2/ssl/

# Uncomment the following directive when using client certificate authentication #SSLCACertificateFile /path/to/ca_certs_for_client_authentication

# HSTS (mod_headers is required) (15768000 seconds = 6 months) Header always set Strict-Transport-Security "max-age=15768000"



We need to enable two new modules, mod_ssl and mod_headers before we can enable new virtual host config that we just created.

$ sudo a2enmod ssl
$ sudo a2enmod headers

We will also disable miniflux http only virtual host and enable the new virtual config.

$ sudo a2dissite miniflux
$ sudo a2ensite miniflux-ssl

Now, restart Apache 2 service so it will use both modules that we just enable and also new ssl site.

$ sudo service apache2 restart


In this tutorial we learned how-to create our won RSS reader using Miniflux on Ubuntu 14.04 We installed Miniflux on top of Apache, SQLite and PHP stack.

Hopefully using Miniflux will simplify your content collection from the internet and help you reduce time to visit each of your favorite site since you can go to Miniflux and only go to the sites if you find news or tutorial that interest you. Have fun!

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.

Get a Cloud Server