I got the idea, from Peter’s blog post, to see if I could get FreshRSS running on my Pi2 that also hosts Pi-hole. The Pi-hole came about because my TV maker insisted on updating the “smart” software all the time and adding web channels that I didn’t want, but the only way to permanently disable them was to start blocking a bunch of the company’s domains. Anyway, that’s not the point of this post.

This is about getting FreshRSS to work using nginx while letting Pi-hole continue using lighttpd and not having to change the ports of anything because of course that will fall apart when something updates. I started with this guide to give the pi a second static IP so one IP goes to nginx and the other to lighttpd. Of course, this worked… when I eventually followed all the steps instead of wandering off to follow a different guide.

The other guide was for getting FreshRSS to run on a PiZero. Th instructions here were also useful but I didn’t think about it being a couple years old which led me to a bit of frustration. It tells you to install php5-fpm as one of the first steps and then a few php5-... packages so of course I went down that rabbit hold without thinking “hey I’m already running php7.3 on this device”. Once I cleared that hurdle and returned to the first guide to follow it through to the end the whole thing started coming together.

It was so close to being together that I could see FreshRSS for a blink of an eye before getting:

502 Bad Gateway

Searching a bit I landed on a page that would solve my 502 problem. Having been through the whole cycle to use the right php, it seemed reasonable that somewhere along the line php5 would be hiding in my code and it was! The error log told me that it couldn’t run php-fpm. I found the reference in the sites-available configuration file. fastcgi_pass unix:/var/run/php5-fpm.sock; was the problem and after an ls exploration of the folder I landed on fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;. It all was up and running on the pi and from other devices on the network.

The final step was to export my feeds list from feedly and let the system update. Success!

Update (2020-10-19)


I had to re-build this on a new system as a result of needing the older Pi2 (and it’s case) to build a baby monitor. Dealing with users is annoying so following the instructions for adding a cron job doesn’t always have the right permissions or gives other mystifying errors. The way I solved this was to create a file in /etc/cron.d/ to do the automatic feed actualization. File contains only */15 * * * * root /usr/bin/php /usr/share/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1.