I’ve spent years shouting about privacy. And now, I’ve installed a tracker. I know. The irony is thick enough to cut, and the hypocrisy probably looks huge from where you’re sitting.
But for the sake of transparency, hear me out: I needed a pulse check. I want to know if my guides and rants are actually being read, or if I’m just yelling into the digital void. But Google Analytics is a non-starter; I’m not turning my readers into data points for a corporate ad machine.
I settled on self-hosting Rybbit. It’s open-source, GDPR-compliant, and crucially, cookieless.
The problem? Privacy isn’t free.
Most people associate “tracking” with a 1kb pixel of JavaScript that phones home to a server in California. A real analytics stack like Rybbit is a different beast entirely. It needs a backend, a Postgres database for data, Redis for caching, and ClickHouse to actually crunch the numbers.
My Docker stack was already humming along perfectly, and it didn’t have the headroom for a whole new ecosystem of containers. Furthermore, I have a “no late-night tinkering” policy (the wife has boundaries for a reason). So, I had to optimise in small, stolen moments during my lunch breaks.
It took a major infrastructure shuffle:
- The Migration: I pulled AdGuard Home and WireGuard off an old Intel J4125 mini PC and moved them into a dedicated, ultra-lean Alpine Linux LXC. Alpine is so efficient that the services are practically running on air.
- The Expansion: I wiped that hardware and joined the J4125 to my main Proxmox cluster as a third node.
- The Optimisation: With the hardware freed up, I moved a handful of my lighter, low-resource containers onto the new node, giving me the breathing room to launch the Rybbit stack on my primary server.
It was a chore, but the setup is rock-solid. No crashes, no drama, just a stable cluster.
If you hit F12 on your browser while reading this, you won’t see a load of third-party junk. I serve everything over HTTPS, and there are no persistent cookies or fingerprinting scripts. If you use a blocker like Brave, you’ll see zero trackers.
I’ve updated my Privacy Policy to include the full breakdown, but the tl;dr is this: I’m tracking events, not people. I don’t know who you are, and I don’t want to. I just want to know if the guide I spent all day documenting actually helped someone.
When you use “free” analytics, the cost is paid by your readers in the form of tracking and data harvesting. When you self-host a privacy-first stack, the cost is paid by the site owner in hardware planning, container management, and the occasional “geek tax” spent migrating LXC containers during a lunch break.
I think that’s a fair trade.
