zkbro

💡 Self-host something new day 4 - FreshRSS

2025-06-26 21:11

This nearly broke me. The default installation guide uses the Apache2 web server, but I am already running a Caddy web server, so rather than run 2, I had to modify a bunch of things around user access permissions in the installation script and elsewhere, configure my Caddyfile, and a bunch of other stuff.

What I also didn't realise is it looks like I have set up a server that ANYONE can create a user account on and I will be hosting their RSS feed for them. So I guess now I'm an accidental RSS host provider much like 32-Bit Cafe have been for me (and continue to be, until I fully get my head around administering my own one). I guess I could point the DNS to my local IP, and use Tailscale to access it. Hmm dare I say is DNS stuff starting to make sense? Nah not yet.

Anyway, here are some things I had to do to get it running.

Download the source code.

Expose the "p" public folder to the web by adding these lines to my /etc/caddy/Caddyfile:

rss.zkbro.com { 
  root * /home/zkbro/sites/freshrss/p 
  php_fastcgi unix//run/php/php8.2-fpm.sock 
  file_server 
  encode gzip 
  log { 
    output file /var/log/caddy/freshrss.log
    format json 
  } 
}

Add a new host record "rss" on namecheap.

I then had to make sure the "caddy" user could access and write to certain folders. I had actually mucked this up previously, and was why I wasn't running caddy from systemctl. I learnt a bit about user and group read-write-execute permissions and tidied a few things up. After allowing caddy to do a few things I am now running from systemctl. That's a win!

These are some commands I found useful:

Check permissions of a specific user by listing files:

sudo -u USER ls /path/to/folder

"Permission denied" means no good.

Check what groups a user is a part of:

groups USERNAME

Add a user to a group:

sudo usermod -aG GROUP USER

Permission changes:

sudo chmod -R g+rx /path/to/folder  # group read and execute
sudo chmod -R g+w /path/to/folder  # group write
sudo chmod -R g+rX /path/to/folder  # group read, write and execute

There's many good tutorials out there, but these were some of the commands I ended up using. sudo -h is useful too.

Back to FreshRSS. I'm looking forward to playing further with this. Maybe I'll host for my family? I'd like to create a custom theme. I also want to start filtering on my feeds, which I could never get working previously. Maybe it will now.

Ok, better sleep now.