Rich Site Summary (RSS) – also commonly called Really Simple Syndication attracted my attention early on in its rise to popularity. I liked that it gave me a way to keep up to date with a website / blog that posted material without having to visit that site to poll for new updates. Previous to RSS there were tools that alerted you to website updates, allowing you to keep tabs on many sites without the boring manual labour of visiting them all only to find nothing had changed.
Initially I used a stand alone desktop reader, I used several different ones as they evolved and even had a different set of feeds for work and home. Much after the initial launch of Google Reader did I switch to using it as it gave me a consistent experience across multiple machines – but I had to give up the ability to see intranet RSS feeds at work.
Once I had a smart phone, one of the first things I wanted to do was read my feeds on it. Enter NewsRob which provided fantastic support for Google Reader and had rock solid offline support.
It shouldn’t be news to anyone that Google Reader is closing down, so a couple of weeks ago I decided it was time to move to another solution so I could kick the tires before the shut down. I did look at a couple, but most of the alternatives simply want to have you move over to their free hosted solution. Certainly this is low effort, and probably the destination for most. In my search I came across Tiny Tiny RSS, a self hosted solution.
Short version of the story: it seems to fit my needs fairly well. The web client is good with some tweaks and the Android story is a bit weak relative to NewsRob (lacking good offline support) but I haven’t tried the official app yet.
If you want the long version – read on, I’ll cover installation and set up.
Download the latest, follow the install notes. I found some MySQL set up hints, and of course when asked for a password I used a generated one.
Creating the MySql database:
$ mysql -p -u root
mysql> CREATE USER 'ttrss'@'localhost' IDENTIFIED BY 'SecretPassword';
Query OK, 0 rows affected (0.16 sec)
mysql> CREATE DATABASE ttrss;
Query OK, 1 row affected (0.07 sec)
mysql> GRANT ALL PRIVILEGES ON ttrss.* TO "ttrss"@"localhost" IDENTIFIED BY 'SecretPassword';
Query OK, 0 rows affected (0.02 sec)
mysql> Bye
Now initialize the database:
$ mysql --user=ttrss --host=localhost --password=SecretPassword ttrss < /var/www/tt-rss/schema/ttrss_schema_mysql.sql
Hopefully it’s obvious that I installed tt-rss into the /var/www/tt-rss directory. Now you can visit the TT-RSS instance you installed – in my case it was https://lowtek.ca/tt-rss/install/
Simply fill in the form and test the configuration. Copy the config file that is created into the ‘config.php’ file in the root of your TT-RSS install. You’ll want to review config.php, but it should be pretty much right.
I took the additional step of ensuring that all the files in the tt-rss install were owned by the http user and group.
You can now login as admin, remember to change the password. I opted to use a regular user for my day to day usage and leave the admin to be special. As I have SSL setup for my webserver, I also always use the https:// connection to keep my bits safe.
To make the feeds update you’ll need something running on your server to do that. I used the daemon approach as outlined on this forum post, make sure you set the script to be executable.
Migrating from Google Reader is simple. If you want a long version consider checking out this article on lifehacker. The short version is that you use Google Takeout to grab just the Google Reader data. In the zip file from takeout there is a Reader/subscriptions.xml file we need to feed into our TT-RSS instance.
With your subsriptions.xml file in hand, visit your TT-RSS instance, use the Actions->Preferences menu item. Pick the Feeds tab, then click on OPML at the bottom of that page. Upload the subscriptions.xml file and you’re done.
A few other notes: If you want to use one of the apps, or an alternate web front end you’ll need to go into Preferences and “Enable API access” – this is a per user configuration. Again under preferences locate the Plugin page and turn on ‘googlereaderkeys’ – for me this improved the experience a great deal. I’ll also recommend the ‘videoframes’ plugin available on GitHub as it allows for embedded youtube videos and the like in you feeds.
Considering I’m hosting this on my 5MB DSL line the performance isn’t too bad. Certainly not as snappy as Google Reader, but with the tweaks above the stock web client is certainly meeting my daily needs. On the Android side, I’m using TTRSS-Reader which works, but I find to be poor relative to my NewsRob experience. There is an official Android app as well, that has a 7 day free trial – however from what I’ve read the offline support isn’t any better than the one I’m using. I’ll probably play with this as time goes on.
There isn’t (yet) an iOS solution for TT-RSS. This is unfortunate. There are several web clients that have reasonable mobile stories and provide an ‘ok’ experience to iOS or other mobile / tablet devices without an app available.
Overall I’m glad I picked a self hosted solution. This isn’t the right path for everyone (or even most) but it’s working well for me.