Following my previous articles on finding a good RSS Reader to manage all my favourite feeds (Like Google Reader, Flipboard, Newsstand, Feedly,….) but directly from my own server (Self-hosted server), it’s time to test and write a small article on Tiny Tiny RSS.
Tiny Tiny RSS is probably the most popular RSS Reader. It’s an open source web-based news feed (RSS/Atom) reader under GPLv3.
It also includes keyboard shortcuts, multi-users, OPML import/export, multi-languages, filters, podcasts, ….
On of its strength is the various list of plugins and themes available, on top of an official Android app.And here is how to install it on Debian/Ubuntu server. I assume you have a working LAMP server or similar. (They recommend having PHP 5.3 and PostgreSQL or MySQL (Although PostgreSQL should be faster than MySQL, I’ll use MySQL in this tutorial as it is more common)
1) In your /var/www, download the latest archive
cd /var/www wget https://tt-rss.org/gitlab/fox/tt-rss/repository/archive.tar.gz?ref=master -o
2) Extract the archive and rename it to have a nice folders organization
tar -xzf archive.tar.gz\?ref=master mv tt-rss.git/ ttrss
3) Change folder owner to apache web user
chown -R www-data:www-data /var/www/ttrss
4) Go to http://yourIP/ttrss/install/ to run the web based installationYou will need to create a dedicated database/user. To do so, I suggest you to use PHPMyAdmin, which will ease the process.On the installer, select your Database type (MySQL) and enter the username/password and dedicated database name. If installed on localhost, you will not need to set any Host name and port. Here is my configuration’s example.If the configuration works (“test configuration”), you can initialize the database.It will generate a configuration file that you can actually either copy/paste manually or simply save it through the web installer (That’s where it’s good to have proper permission on ttrss folder)When done, you’re good to go to your Tiny Tiny RSS instance!
The default admin username/password combo is simply admin/password.You will be able to manage the entire list of feeds, add users, filters, labels, etc…so don’t forget to add Freedif.org feeds!5) Set up a cron task to update regularly your feeds.You will need to create a cron job to update your feeds regularly. If you want for example to update your feeds every 30m, you can edit your crontab
and add the following line at the end:
*/30 * * * * /usr/bin/php /var/www/ttrss/update.php --feeds --quiet
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/ttrss 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 ttrss (In root):
and paste/adapt the following content:
<VirtualHost *:80> ServerAdmin email@example.com ServerName rss.domain.tld Redirect / https://rss.domain.tld </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/myblog.pem SSLCertificateKeyFile /etc/ssl/private/myblog.key ServerAdmin firstname.lastname@example.org ServerName rss.domain.tld DocumentRoot /var/www/ttrss <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/ttrss> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> </IfModule>
Adapt the content (Servername, webmaster, SSL certificate and directory, …).
The first part will redirect all the connection from port 80 (HTTP) to port HTTPS (port 443) to force secure connection. If so, please configure your SSL certificate.
When done, save the file (CTRL+X then Yes) and reload apache: (In root)
You should now be all set!