Skip to main content

RSS Reader self-hosted with a Raspberry Pi

A rusty robot reading the news on a tablet

I use RSS feeds to gather my news. I need to keep up to date with technology for work, but I have always had curiosity in the topic since the 80s.

For a long time, I have been using an app called Reeder on iOS and Mac. It’s excellent, it works across my Apple devices, happily filling up with news everyday. I probably use it at least once a day without any exaggeration. The benefit of Reeder is that it uses iCloud to store and sync news feeds and articles. It works well, but these days, I use Android too. I found a smashing RSS aggregator called Read You, it has a wonderful interface using Material Design. The problem is that iCloud doesn’t work on Android.

I looked into it and there is the option of paying for a service like Feedly or Inoreader. They’re good options, but I’m not keen on monthly charges, especially since iCloud was all included. So I looked for a self-hosted version and very quickly came across FreshRSS. FreshRSS can be installed locally and uses a standard Google Reader API for RSS apps to use. 

Quite why Google ever dropped Google Reader will always be a mystery to me.

Anyway, I found a good tutorial from PiMyLifeUp to install FreshRSS on a Raspberry Pi Zero 2. RSS takes little resources and speed isn’t too important so a Pi Zero was perfect, easily powered off a USB port from my router, happy days.

The tutorial almost worked perfectly, I needed to tweak the PHP step as 8.0 wasn’t available anymore, but it all worked. I was able to export my feeds in an OPML file and import into FreshRSS. Tweaked some settings and Reeder and Read You were happily syncing with the Pi. 

The last step in the equation was being able to download the latest articles away from home, in other words outside my local network. I have done this before with port forwarding, but I wondered if there was a better way.

Once again, PiMyLifeUp came to the rescue with another tutorial using Cloudflare. I host my domain with Cloudflare and they can provide a secure tunnel to the Pi without opening ports. Perfect! I followed the instructions and it worked, I was able to connect to my Pi Reader on 5G. Until I closed my Terminal window and it stopped.

It turns out that the Cloudflare tunnel opens as a foreground task, once you close Terminal, it stops. What you need to do is set up a service to run as a background task. PiMyLifeUp had the steps but I couldn’t get it working. Then I couldn’t the tunnel working and I was quickly despairing I’d even had the idea. The problem with Pi projects like these is that they start working and then break just by looking at them funny. I’ve had this happen so many times, sinking hours and hours into a project before giving up.

However this time, I looked for help and not on forums that end up confusing you even more. That’s the other thing with Pi (or Linux in general) there is a lot of help out there, but somehow it just gets more confusing.

I asked Gemini.

Gemini asked for what I was seeing and offered step by step instructions to fix the problem. I quickly found there was a yml config file that needed some extra spaces, which was good. Eventually we got the tunnel working but not as a background task. What really impressed me is that Gemini kept plugging away at giving my clear advice, step-by-steps and asking for feedback. Like me, it kept saying “well this is weird”, or “this is a head scratcher “, and “we will get there”. In the end we did and it praised me for not giving up, even though it was pretty exhausting and Gemini apologised for taking me in circles to get the fix. 

I think learnt that Gemini can genuinely help in these technical issues. It understood what FreshRSS was, it knew about Raspberry Pi, Cloudflare, tunnels and configuration files that would have been difficult to diagnose. It offered several workarounds and explained its thinking throughout. 

I have a cross platform RSS service that syncs news articles on my favourite apps.

Comments

Popular posts from this blog

Hello world, again

  After countless times of trying to get self-hosting to work on my Raspberry Pi, I've gone the easy route.😓 It's frustrating because I'm good with this stuff, but every time I try to set something up, I lose hours and hours with configurations and tutorials that just don't seem to come together. I've lost a lot of posts but I will try to salvage and add them here as needed.

Running Chromium on a Pi

A while back, I blogged that I had bought a Raspberry Pi 400 and that I was really pleased with it. Since then, I have experimented with several operating systems from the default Raspberry OS to Ubuntu MATE and now Chrome OS. It's easy to do and if you have a few microSD cards, it's not destructive, simply insert the one you're in the mood for and boot up. So why Chromium OS? Because I've been so pleased with the Pi400, I am selling my Mac mini. I love that mini, but it is frustrating with forgetting my keyboard, booting to a blank screen and several other niggles. I can't complain about the operation, but with a work Mac, my iPad Air 4 (with keyboard) and the Pi400, it is sort of surplus. Oh, and I have an old 2013 MacBook Air used for roasting and it's still working perfectly. I've been using Raspberry OS as the main OS on the Pi 400 for a week of two and it's been fine. I've configured it the way I want it and to be honest, no complaints. However...

Raycue Mac mini hub

  Late last year, I bought a new Mac min. I've always had a soft spot for the Mac mini computers and more or less have used each generation. This one with the M4 processor is a powerhouse and will happily work on video, audio editing and anything else I throw at it. There are 3x USB-C ports on the back, 2on the front and given that I use 2 of them for displays, I saw the Raycue and thought it might be a tidy way to increase connectivity. I ordered from Raycue direct, after checking previous iterations and other reviews. It arrived a month later (they had more orders than expected and Christmas got in the way). On the front are 2 USB-A ports, a USB-C, microSD and full size SD card slots. On the rear is an extra power point, a USB-C for the host computer, an audio port, HDMI, and another USB-A. It's all perfect for my needs. The Mac mini sits on top and it only adds 2cm to the height. Inside the hub is an SSD slot for increasing storage. I took the liberty of fitting a 2TB SSD t...