Tiny Tiny RSS on NearlyFreeSpeech.NET

RSS is awesome, and can be made more awesome when aggregated in the cloud. Cloud services can change or die, but Tiny Tiny RSS puts you back in control, which is most awesome. All you need is a web server, like the equally awesome NearlyFreeSpeech.NET.

Back in control
Tiny Tiny RSS is an open source feed aggregator. Functionally, it’s just a feed reader that sits in the cloud, like the late Google Reader, with one difference – you provide the server. You control if and when the service ends, upgrades, extends, etc. You are in command!

How to do it
My Web hosting needs are modest, and my time is limited, but I do have a bit of technical prowess, and I like to control my own destiny as much as possible. NearlyFreeSpeech.NET offers a very stable, well built shared hosting service where you pay only for what you use. More importantly, they give members a lot of control over their sites, which makes rolling out custom web-apps like Tiny Tiny RSS possible, and perhaps even simpler than rolling your own server. Read on for the details…

Getting Tiny Tiny RSS (hereafter TTRSS for brevity) working on NearlyFreeSpeech.NET (hereafter NFSN) is a four step process:

  1. Create the site
  2. I do all my development in a virtual machine, then push changes up to NFSN via rsync. In my virtual machine, I created a “reader” folder and placed the TTRSS source inside. You can get the source as a tarball, or clone the github repository. Once the source is unpacked, copy config.php-dist to config.php and modify a few lines.

    • define('DB_TYPE', "pgsql"); – change pgsql to mysql
    • define('DB_HOST', "localhost"); – change localhost to yourMySQLProcess.db
    • define('DB_USER', "fox"); – change fox to tinytinyrss
    • define('DB_NAME', "fox"); – change fox to tinytinyrss
    • define('DB_PASS', "XXXXXX"); – change XXXXXX to a long, random password
    • define('DB_PORT', ''); – put 3306 in the quotes
    • define('SELF_URL_PATH', 'http://example.org/tt-rss/'); – change the url to point to your new TTRSS instance

    Then make sure the last line in the file is ?> with no empty lines after! Upload that entire directory. I created a

  3. Set permissions
  4. The cache, feed-icons, images, and lock directories must be owned and writable by group “web”; i.e. do chgrp -R web cache feed-icons images lock in the TTRSS directory on NFSN

  5. Create the database
  6. TTRSS stores your feeds in a database, as you may have gathered. You will need to create a database in your MySQL process on NFSN called “tinytinyrss” with a user called “tinytinyrss” and the password you chose for config.php. You can do this with phpMyAdmin.

    • Click on the “Users” tab and then the “Add user” link.
    • Set “tinytinyrss” as the “User name”, skip the “Host” line, and input the password you chose into the “Password” and “Re-type” boxes (alternatively, you can generate a good password here, and place it in config.php)
    • Choose the “Create database with same name and grant all privileges” radio button
    • Click “Add user”. The “tinytinyrss” database and user will be created and ready to go
  7. Final setup
  8. Goto your new TTRSS URL and login (username: admin, password: password). In the upper right corner click “Actions…” then “Preferences…” then “Personal Data / Authentication” and change the admin password. Then create a new user. Logout and back in as the new users and you are ready to go! If you want to use the Android client (recommended!) you have to enable API access in Preferences.

Why do it?
RSS and similar feeds are awesome for keeping up with all sorts of websites with regularly updated content: podcasts, blogs, news sites, etc. I “subscribed” to my first feed back in the days before mobile data plans, and smart-phones. Catching up on my favorite content meant refreshing my feeds using Thunderbird or whatever other program happened to be my favorite at the time. Naturally, I had to physically be at my computer, with a working Internet connection, for this to work, but I didn’t know any different, so life was good.

RSS in the cloud is more awesome!
Smartphones and Google Reader changed all that. Having a cloud service check my feeds for me, so I could access the information from anywhere at any time made RSS even more awesome. Unfortunately, Google decided that it wasn’t interested in sustaining that service. Others providers, like Feedly, Inoreader, and the excellent TheOldReader, among others, rose to the occasion, offering similar services.

Once bitten, twice shy
The problem with all of these services, as excellent as they may be, is that they could go the way of the mammoth and Google Reader at any time, and there is very little the common web feed enthusiast can do about it. I’m a globe-trotting, airplane flying, physicist, and I want access to my feeds on my terms. Enter Tiny Tiny RSS.