Feeds a la Tiny Tiny RSS

posted in: Technicalities, www | 3

[update 2012-10-04] In the meantime, I helped Nic with what he calls scratching some itches for ex-Google-Reader users: we now have gritttt, and gritttt has a) a means to import shared/stared items from g-reader into tt-rss; b) drive-by sharing, meaning you can share any page in tt-rss on the fly; and c) a widget that can display the latest shared items from tt-rss on your website. More here. [/update]

[update 2011-11-10] Both this and Nic’s article have been featured on tt-rss’ project site. There are a bunch of other interesting and useful articles, too, so check it if you’re interested in tt-rss. [/update]

A while ago, Google updated their reader, killing one of the best features: sharing. I looked around a bit for a suitable alternative and in the end settled with tiny, tiny rss.


  1. It runs on my server, so nothing can be done to it unless I approve
  2. Sharing is easy
  3. It’s simple

Nic, who thankfully came up with this great alternative, has a more techno-philosophical article on the switch.

Some minor issues I had while installing:

1. open_basedir not supported

Problem: during installation I got the fatal error

php.ini: open_basedir is not supported

Solution: Open <tt-rss-root>/sanity_check.php and find the entry Update: in recent versions it’s in <root/include>

if (ini_get(“open_basedir”)) { $err_msg = “php.ini: open_basedir is not supported.”; }

Comment it out (using // at the start of each line).

All credit and a major hat tip goes to demaya.

[update 2011-11-22:]

Solution 2: see here (thanks to Reperiam for his comment below pointing it out.)


2. No folders after import

Problem: In Goolgle Reader I had organised my feeds in folders, they were gone in tt-rss

Solution: Before importing, go to preferences in tt-rss and enable feed categories

3. OPML-Import error/timeout

Problem: On importing the OPML I had a timeout in Firefox and the following error in Chrome:

Exception: TypeError: Cannot read property ‘innerHTML’ of null Function: opmlImportComplete()

TypeError: Cannot read property ‘innerHTML’ of null

at opmlImportComplete (http:///prefs.js?1320259102:791:35)

at HTMLIFrameElement.<anonymous


at HTMLIFrameElement.onload


Solution: Ignorance. Apparently it’s not a tt-rss problem but one of the browser, so just ignore it.

4. Cache needs to be writable

Just make sure that on your server


is writable (including subdirectories)

5. No Cron jobs

Problem: My hosting plan does not include cron jobs nor where the other ways to update tt-rss viable.


Solution: There are four possible solutions as far as I can see.

  1. Update manually.
    It’s tedious and not a very good solution, but it works. Just bookmark <http://your.tt-rss.url>/backend.php?op=globalUpdateFeeds&daemon=1 Run it manually and be patient. Sometimes I had to run it two to three times in row due to timeout issues.
  2. Run cron locally
    Adding the cronjob to your local crontab works great – but of course only and only if your machine is running. When on linux
    (a) open a terminal(b) type <crontab -e>
    (c) paste the cronjob (full example under > Long version > 1. > »full example«)
    (d) on nano »ctrl+o«, »enter«, »ctrl+x«
  3. Run Cron remotely
    The smoothest solution is to find someone with a hosting plan that includes cronjobs and ask him nicely to add your cron job.
  4. Upgrade your hosting plan so you have your own cron jobs

6. Content directly below headline

In Google Reader the content would open directly under the headline. In tt-rss you have by default one area for the headlines and a second one for the content.

If you want one area and the content directly below the headline, go to preferences and where it says »combined display«, switch to »yes« (and maybe also »Automatically expand articles in combined mode«).

That’s it. I’m lovin’ Tiny, tiny RSS so far and I’m glad I can care a little less about the G.

3 Responses

  1. Nic

    Regarding the open_basedir – fix: In recent versions of tt-rss (I think > 1.5.10 or so), sanity_check.php lives in the include-directory.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.