FreshRSS: A Simpler Self Hosted RSS Manager

I’ve been using Tiny Tiny RSS for … well years. Almost a decade. I like it a lot, the interface is nice and pretty to use. But there have always been some serious lingering issues with it.

  1. The developer is very opinionated, to the point of aggression
  2. The development is Docker, to the point that non-Docker support is non existent
  3. Support for ‘non modern’ browsers means Safari is not supported

Now I’m opinionated, and I can be curt and blunt at times. And I work with a lot (A LOT) of people who are similar. I do plugin reviews for — trust me, I know from opinionated developers. I have lost track of the time I’ve spent arguing with prima donnas who cannot fathom that their code might not be god’s gift to the universe.

The majority of people, thankfully, are not like that. They recognize no one is perfect, they understand that sometimes you have to make allowances in your code for the sake of a system, and most of all they aren’t aggro when told “no.” (If you find yourself getting pissed off, BTW, when someone reviews your code, yes, I’m talking about you.)

Anyway. Andrew Dolgov is an amazing developer, a talented one at that. But he has a very ‘my way or GTFO’ kind of flow, and since it’s a single-man project, I really do get that. And for the time that he happily supported PHP on whatever, I didn’t care. The code worked, he didn’t have any strong opinions that offended me (like being a Nazi sympathizer, and yes, I’ve ditched software I love for that), and so what if he was a bit prickly?

But… He’s Docker all in. And I like Docker, but I don’t want to run it all the time, and certainly not for a flippin’ RSS reader that is PHP and SQL and that’s it. As time went on, it got harder and harder and harder to manage and maintain a slight fork, to the point that it’s just not worth it.

The Replacement: FreshRSS

FreshRSS. It’s a barebones, simple, easy to install RSS reader. How easy? It’s practically a ‘famous five minute install.’

The selling points are:

That’s really all I needed.

The install was to download the latest release, unzip it on my server, and then I went to the URL where I’d installed it ( i.e. ) and entered the DB credentials. Then I made a new account and boom. Done.

Much like with TTRSS, I have to set up a cron job to run the refresh, which I set to hourly:

php /home/username/ > /home/username/FreshRSS.log 2>&1

Now I have to migrate my content to actually have something to check.

The Migration

First up, you have to export from TTRSS, which is not as obvious as all that. The best way is via command line:

$ php ./update.php --opml-export "ipstenu:ipstenu.opml"

Don’t waste time with the various plugins, they’re not supported and in my experience, don’t work. Also if you’re mystified trying to find out how to export, it’s not just you. I had to trawl through the forums to find an example that didn’t work, but did link me to the code and I was able to figure it out from there.

Once you have that, save the OPML file and pop over to FreshRSS and import. It will keep your categories and everything.

Yeah, that was it!

The Tweaks

Most of the settings are fine as is. I turned off the option to mark as read when I scroll by (I regularly use unread to know what I need to handle next):

I also added in a filter to mark a specific feed as read unless it mentions a keyword which was as easy as a filter for -intitle:keyword to that feed.

I picked a theme that made me happy to boot.

All in all, it was a super easy move.