💡 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.