Skip to content

I Added Analytics to the Blog: Here’s Exactly What I’m Collecting

Terminal output from 'docker stats' showing CPU and memory usage for the Rybbit analytics container stack including ClickHouse, Postgres, and Redis.

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:

  1. 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.
  2. The Expansion: I wiped that hardware and joined the J4125 to my main Proxmox cluster as a third node.
  3. 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.

Join the conversation