Self-Hosting FreshRSS with Tailscale
-- Sat 15 November 2025

I have a M2 Mac Mini that I've mostly used with MacOS because of the usual conveniences of using a proprietary OS (software support). I've experimented with most of the package management solutions on MacOS (homebrew, macports, nix, pkgsrc) and I've always found them wanting for one thing or the other. I currently use Nix on my MacOS installation, mostly because nix-darwin gives me a similar experience to how I manage my linux machines with guix system.

However, on this machine I also maintain an asahi linux installation. The linux installation is based on the asahi-guix project, which I believe is paused due to the maintainer being busy. I've taken up maintainence of the packages I use myself, but I haven't been able to build an updated kernel yet (or get a built kernel working). However, the installation works pretty well for my uses and the I don't really have much to complain about with regards to the stability of the linux here (I could use the official Fedora-based Asahi Linux but it's just not as cool).

I already have an x86 desktop machine that I use for most of my projects/work, so I thought I can use this machine for self-hosting some apps, so I can avoid paying rent to all the rent-seekers of the internet. Also, since this M2 Mac Mini is the lowest spec model with 8GB & 256GB of RAM & Storage, there's not really much I can even use it for. I've tried using it for AI experimentation, for which it does work, but everytime I see the high swapping on MacOS, I fear for the health of the storage on the machine.

With all this in mind, I took it upon myself to host something on this device, because I've heard Apple-silicon devices have low power consumption, not sure how true it is for asahi (the power-management stuff might not've been fully implemented). Thinking upto here, I saw it fit to host a feed reader on this device, since I don't use any, and if it breaks it doesn't have any impact on my life.

I already have Tailscale setup on most of my devices, for SSH access over the internet. I decided to continue using tailscale here, since I don't intend for the services I host to be accessible over the internet. I added the podman & podman-compose packages to my guix home config for setting up the containers. (I did see a miniflux package in the guix repo, but decided to use the path of least resistance for my own sanity). I enabled Tailscale Serve and setup a freshrss service which is accessible on my tailnet on a nice url like freshrss.tailnet.ts.net. Got the official docker-compose.yml from the freshrss github and modified it to run on port 8081 (since a lot of software already uses port 8080 on localhost and I'd rather not modify all of them to use another port).

Finally, I did a podman compose up and freshrss was accessible on localhost:8081. Also, I then had to mess around with the tailscale serve to expose the service on the tailnet and I was good to go. Installed an RSS Reader from F-Droid on my phone and pointed it to the tailnet url for freshrss and it just worked, after I had setup my account in the freshrss instance and enabled API access.

I have simplified how I setup my self-hosted instance above... a lot. None of it was really that simple. I had trouble with tailscale not picking up the service. I found a fix on a reddit post where someone suggested assigning a tag to the machine, after which an authorization button pops up on the service page. Had some issues with DNS as well (I still do, I can only make MagicDNS work on Android devices, none of my Guix installations have MagicDNS working. Maybe since none of them have systemd-resolvd. I do see some documentation in the Tailscale docs around this. Still need to figure how to make it actually work though.)

For the future, I would like to self-host VaultWarden, Navidrome (on an Android Device), PenPot and a few other services. This should allow me to remove some subscriptions for online services from my monthly budget. Podman/Docker does ease the burden of hosting things yourself. I still have a RPI3 B+, I bought 6-7 years ago now, to try self-hosting, but I never did host anything there, mostly because of the weird way the OS worked on the device and running an OS off an SD card never really sat right with me. I do think Guix has a lot of potential for hosting apps locally without any containers, I just don't have the time right now to properly package stuff for Guix and then host it locally. Maybe some day.