Yes, Google Reader is going away, and yes, there are great alternatives. However, if you’re tired of web services shutting down on you, why not take matters into your own hands? Tiny Tiny RSS is a free, open-source syncing RSS platform with more features than Google Reader ever had, and it can’t get shut down. Here’s how to install it and set it up.
What You’ll Get
Setting up Tiny Tiny RSS requires a little patience, but it’s deceptively easy. I had my instance set up and web-accessible within a few hours, and I spent a few more tweaking all of the settings and options just the way I wanted them. At the end of the day you’ll have a web page that you can visit at any time, on any device, to read all of the latest articles from the blogs you subscribe to. Tiny Tiny RSS supports filters and labels, so you can organize those feeds into categories, filter out the stories you don’t want, and organize them so you read the interesting things first. You can also score feeds, so the blogs you like the most float to the top. There are more features than we have time to get into, but you can read more about them here.
Tiny Tiny RSS also has an Android app (sorry, no iOS app), a mobile-friendly web interface, a Chrome extension, and more third-party supported apps. There’s even an XBMC client if you want to read your feeds on the big screen.
There are some things you won’t get with Tiny Tiny RSS that Google Reader offers, though. For example, you won’t get such a broad array of third party apps and clients. Sadly, Tiny Tiny RSS can’t be used with your favorite desktop or mobile feed reader like Reeder or NewsRob. Plus, it’s definitely harder to set up than just importing all of your feeds to Feedly. Even so, if you want ultimate control over your news reading, and you want something that’ll never shut down on you, Tiny Tiny RSS Is worth setting up.
What You’ll Need
Installing Tiny Tiny RSS isn’t difficult, but you’ll definitely need a few things before you begin:
- A web host that supports PHP and MySQL. I used Dreamhost, since they have Linux web servers, they support PHP and have it installed already, and make setting up MySQL databases a one-click affair. Alternatively, if you don’t want to use a web host, you can install Tiny Tiny RSS on a Linux computer you have at home. It’s a bit more complicated, and you’ll need to install PHP and MySQL on your own, but it’s not too hard. We’re going to focus on web servers in this how-to, so check out Linux.com’s how-to guide here if you want to use your own Linux server.
- A URL for remote access. You may want to buy a domain name so you can just type “www.myrssreader.com” in your browser to get to your Tiny Tiny RSS instance. If you already own a domain (and most of you do), it’s easier (and cheaper) to just use a sub-domain of a URL you already own. For example, I used “reader.novawerks.net” for my Tiny Tiny RSS installation. Dreamhost had it up in minutes and it didn’t cost me anything.
- The latest version of Tiny Tiny RSS to install. The archive you download will include all of the files you need to install the application and set up the database.
- Your exported Google Reader subscriptions. Here’s our step-by-step guide to exporting your Reader data. You’ll need the
subscriptions.xmlfile that you get after using Google Takeout.
Tiny Tiny RSS was meant to be installed on Linux computers that you have complete control over, like a Linux box in your house. Since most people don’t have their own Linux web server, we’re going to walk you through installing it on a web hosting company’s servers—which we won’t have complete control over. The developer behind TTRSS says that using this kind of hosting isn’t supported. I think that’s silly, and I’m willing to bet that this is a matter of support and personal preference, not functionality. Basically, if you use something like Dreamhost, you won’t be able to get any help from the developer if something goes wrong. If you want that support and control, you’ll need to use a dedicated Linux server as described above.
Step One: Prep Your Web Server and Create Your Database
Like I mentioned above, I used my web hosting company (Dreamhost) for this, so PHP was already installed, and creating the MySQL database for TTRSS was easy. Most web hosts have similar features, and will give you a web interface to create databases and users. If not, you’ll have to use the command line. With that in mind, follow the corresponding instructions below:
Via the web interface: Check with your hosting provider to make sure that they meet the prerequisites. Odds are they’ll make it easy for you and you can skip forward to step two. In most cases, once you’ve logged in to your host’s management page, there’s a wizard that will help you create a MySQL database and create its first user at the same time. Name the database and user whatever you want. Give the user a strong password to keep it secure. You can see how I did it with Dreamhost (using some example names) in the image to the right.
Via the command line: If your host doesn’t offer one-click tools or a GUI to create a MySQL database (or you prefer the command line), it’s not too difficult to do at the command line. Use your favorite terminal app (I use PuTTY in Windows and iTerm on the Mac) to connect to your web host (Open the tool and type
slogin firstname.lastname@example.org. You’ll be prompted for your password. Your username and password here are created through your web host, so check with them if you’re not sure how to connect.) To create the database, type:
mysql -u root -p -h mysqlhost.mydomain.com CREATE DATABASE ttrssdb
In this example, your database is called “ttrssdb,” and you should replace
mysqlhost.mydomain.com in the above command for the name of the host where your SQL database will live. In my case, I had a separate hostname for my SQL database, but if you’re running everything on the same system, you can omit
-h mysqlhost.mydomain.com from the command to create the database on your local host.
To create the database user, type:
mysql -u root -p -h mysqlhost.mydomain.com GRANT alter,create,delete,drop,insert,update,select ON ttrssdb.* TO ttrssdbusername IDENTIFIED BY strongpassword
Again, change the fields in italics to what you want them to be, and omit the
-h mysqlhost.mydomain.com if you’re setting this all up on the same computer.
Step Two: Install Tiny Tiny RSS and Set Up the Database
Once your server is prepped, now all we have to do is install and configure Tiny Tiny RSS on it. First, download the latest version of TTRSS from the developer’s site. It’ll come as a tarball (a .tar.gz file), so make sure you have an app like 7-Zip (Windows, Free), The Unarchiver (OS X, Free), or PeaZip (Linux, Free) ready if you want to use an app to unpack it.
Once you’ve unpacked the archive, look in the “schema” folder for the database schema (that is, the file that will build and organize TTRSS’s database) that corresponds to the database software you’re using. The
ttrss_schema_pgsql.sql file is for PostgreSQL, and the
ttrss_schema_mysql.sql file is for MySQL. You can import the schema either via command line or using the GUI for your database software. My host offers both command line access and PHPMyAdmin to manage my database.
Via the web interface: First, go to the URL for your database. In this case, it’s “mysqlhost.mydomain.com,” and log in with the username and password you created earlier. Click the “import” tab at the top of the page, and then browse to the schema file you want to import (
ttrss_schema_mysql.sql). PHPMyAdmin should detect the file format automatically. Click “Go,” and wait for the import to complete.
Via the command line: The first time I imported the schema, it timed out on me, so I was worried it didn’t import correctly. I decided to double-check by re-importing it via the command line. To do this, type:
mysql -u ttrssdbusername -D ttrssdb -p -h mysqlhost.mydomain.com < schema/ttrss_schema_mysql.sql
You’ll be prompted for the password for that user account, but assuming you’re in the directory you’ve created for Tiny Tiny RSS, the schema will be imported after a moment or two.
At this point, Tiny Tiny RSS is installed, your database is up and running, and you’ve imported your schema. The only thing left to do now is to connect Tiny Tiny RSS to your database and tweak some of the application settings.
Step Three: Connect Tiny Tiny RSS to Your Database
Go back to your Tiny Tiny RSS folder and find the
config.php-dist file in the root directory. Make a copy of it, rename it
config.php, and open it with your favorite text editor, whether in the command line (pico, vi, emacs, whatever) or by downloading it and opening it with something like Notepad++. If you edit it on the desktop, just make sure to re-upload it with the proper name so your changes take effect.
The fields at the top of the file are the most important, and the ones you need to change in order for TTRSS to find and log in to your database server. Review the entire file though, just to make sure none of the options are things you want to toggle. We’ll tweak some of the additional settings later, but here are the basics, using the example names we’ve been using so far:
define(‘DB_TYPE’, “mysql”); // or mysql
//define(‘DB_PORT’, ‘5432’); // when neeeded, PG-only
Unless your SQL database is on a server using a non-standard port, you probably won’t need to define the DB_PORT. If you’re running everything on the same system, leave DB_HOST blank or as “localhost.” Of course, you should have your own usernames, domain names, and passwords to fill in here, but you get the gist.
Next, scroll down to the basic settings:
The SELF_URL_PATH is the domain where TTRSS is currently installed. If you installed it at http://yourdomain.com/ttrss, fill that in. If you set up a domain and installed TTRSS at its root, just type in the name of the domain, like http://myttrssdomainname.com/. If you’re installing everything on the a server at home, this is where you’ll put in your Dynamic DNS URL. There are more to set up, but these are the ones required to connect TTRSS to your database successfully. Now we’re ready to log in for the first time.
Step Four: Log In and Import Your Feeds
If you’ve set everything up correctly, you should be able to go to http://yourdomain.com/ttrss or http://myttrssdomainname.com/ and see a login screen. Congratulations! The default credentials are “admin” and “password,” so once you’re logged in, the first thing you should do is change the password. Click the Actions menu at the top-right corner of the screen and select Preferences. You should see Personal Data/Authentication near the top of the screen. Click that and you’ll see the password change screen. Give yourself a nice strong password and save it.
Next, let’s import your feeds. If you haven’t exported your subscriptions from Google Reader, now’s the time to do it. Check out our step-by-step to get your data out of Google Reader, and once you have your
subscriptions.xml file, here’s how to import it to TTRSS:
- Click the Actions menu at the top right corner of the screen and select Preferences.
- Click the Feeds tab, and look for the “OPML” option near the bottom of the screen. Click it to open that frame.
- Click Choose File to browse your hard drive for your
subscriptions.xmlfile. Select it, and click OK.
- Click the Import My OPML button to begin your feed import. If you have a lot of subscriptions (especially if some of them are defunct or now dead) this may take a while. Grab some coffee.
When your import is complete, click the Exit Preferences button in the upper right to go back to the main view. Even if your import seems like it’s errored out (this happened to me a couple of times,) it probably imported your feeds okay anyway. You should see all of the subscriptions TTRSS imported in the sidebar, organized the same way they were at Google Reader—if you had folders, they should have come over with you. If you want to edit, rename, color-code, or re-categorize a feed, it’s easy—just click to select it in the sidebar, and click the Actions menu to see all available options for it.
To add new feeds, click the Actions menu and select Subscribe to Feed. If the feed you want to subscribe to requires a login and password, check the “This feed requires authentication” box and you’ll see fields to enter your credentials. If some of your feeds were imported with errors, or they’re dead and TTRSS can’t resolve them, highlight them on the left sidebar, then click Actions and Unsubscribe to remove them from your list.
Step Five: Tell Tiny Tiny RSS to Update Feeds and Update Itself Automatically
Now its time for a few advanced tweaks that will make your experience a little better. Here’s how to make TTRSS update your feeds without doing it manually and how to get automatic updates to the application when the developer releases them:
Make TTRSS Update Your Feeds Without Help
By default, Tiny Tiny RSS only updates feeds when you double-click on them. If you want them to update automatically, you have a few options. You can either tell Tiny Tiny RSS to update quietly in the background while you’re using the site and reading other feeds (and you can always update manually by double-clicking a feed name,) or you can run a background process on your linux server that will keep your database up to date even when you’re not using the webapp.
The latter is the most foolproof method, but most web hosts aren’t about to let you run a background process all the time, even when you’re not logged in. However, if you’re running TTRSS on your own linux box, check out the Updating Feeds page in the Tiny Tiny RSS Wiki for more information on how to set this up.
I opted for the former method, partially because I’m using a shared host, but also because it’s just easier to set up. Open up your
config.php file in a text editor, and scroll down “SIMPLE_UPDATE_MODE” and change its flag from “false” to “true.” This will make TTRSS update your feeds for you every 30 minutes (by default, you can change this in the Preferences) as long as you’re logged in. Set it as a pinned tab, and you’ll never have a problem.
Get Application Updates Automatically
When I started playing with Tiny Tiny RSS, I was using version 1.7.3. The night after I got everything set up the way I wanted it, the developer released version 1.7.5. There is a built-in updater in TTRSS, but you have to turn it on first. Go back to your
config.php file, and look for this field near the bottom of the file:
define(‘PLUGINS’, ‘auth_remote, auth_internal, note’);
Change it to look like this:
define(‘PLUGINS’, ‘auth_remote, auth_internal, note, updater’);
This enables the updater plugin (I have no idea why it isn’t enabled by default) and opens up a new option in the Preferences menu called “Update Tiny Tiny RSS.” Click it to check for updates, or to download and install an update if one is available. Again, this tweak works best if you’re running TTRSS on your own server or an instance you control. I had trouble with it and wound up updating manually anyway (more on that here), so your mileage may vary using it.
Grab the Tiny Tiny RSS Android Client for On The Go Reading
Tiny Tiny RSS is well suited for mobile browsers, but it’s not perfect. If you’d like to take your subscriptions on the go, download the Tiny Tiny RSS client for Android. It takes a few seconds on the settings page to set it up to work with your TTRSS installation (type in your URL, your username, your password, and customize the settings the way you like) and in moments you’ll be reading your feeds on your Android phone.
The app has settings for HTTPS if your instance is running via SSL, and you can tell it to download feed icons and categories if you want to browse your feeds the same way you would on the web. You can tweak the article text size, enable full-screen mode for easy reading, and more. There are even a few themes to choose from. The Android app is free for seven days—after that you’ll need to shell out $1.99 for the unlock key either via Google Play or in-app purchase.
While this guide walks you through setting up a fully-functional Tiny Tiny RSS instance and importing your feeds, it’s still just the tip of the iceberg when it comes to all of the features and options available in the app. Want a daily digest of your subscriptions and all your unread stories? TTRSS can send you one (if you enable it in the preferences and enter your SMTP server settings in your
config.php file). Want to float interesting articles to the top? You can score feeds so the ones you enjoy reading appear at the top of your list. You can even completely tweak the layout and design with custom CSS. Dive into the app settings and explore!
For more information, additional reading, or if you run into trouble and need some help, check out these links:
- Tiny Tiny RSS Forums
- Tiny Tiny RSS Google+ Community
- Tiny Tiny RSS Frequently Asked Questions
- Weekend Project: Replacing Google Reader with Tiny Tiny RSS
- Get TTRSS Notifications in Growl (OS X) or libnotify (Linux)
- XBMC Addon: Tiny Tiny RSS Reader Client
- Tiny Tiny RSS Notifier for Google Chrome
Since Tiny Tiny RSS is free and open source, you could even create additional users for your friends and share your install and let everyone import their own subscriptions, and use it without any fear that it’ll shut down on you. In fact, we’ve already seen a number of people send us their own version of “the next Google Reader/the best replacement for Google Reader,” which is really just a skinned instance of Tiny Tiny RSS (so look out for that, too, especially if someone’s charging money for it!)
If you do plan to build an instance for your friends, or you want something more reliable, grab a dedicated server or a VPS to install and run Tiny Tiny RSS on. Even better, consider carving out a little space on Amazon Web Services’ free tier and setting it up there—it’s an ideal cloud-based, affordable option whether you want to use it on your own, or you want to open the doors to your friends and build a Google Reader replacement for you all to use. You can let someone else manage the back-end, and as long as you keep it alive, you’ll have a true Google Reader replacement that’s leaps and bounds better than the original. Bonus: You control it, and it’ll never go away unless you want it to.