Skip to content
$_ setuptracking

Install Recipes

Pillar: tested install recipes for the major self-hosted analytics platforms. Each recipe runs on a fresh VPS before publication. Cost figures are real invoice line-items, not list prices. If a recipe stops working after an upstream release, it gets a visible “verified” date update or an “outdated” badge.

This is the core of the cookbook — what most people land on first. The format is intentionally narrow: one tool, one host, one stack, one set of commands you can copy-paste into your terminal. No “depending on your setup” branches.

Published recipes

Four recipes live, each with hero diagram, full docker-compose.yml or apt step-list, real cost over 3 years, and a troubleshooting card covering the failure modes we hit during the test deploy.

Picking the right one for you

If you’re not sure which platform suits your event volume, privacy posture, and engineering hours, run the 60-second Stack Picker — it asks six concrete questions and locks you onto one recommendation, with the reason explained.

For a cost-only comparison without the wizard, see the 3-year price-and-pageview matrix. The numbers cover VPS, backup storage, and renewal lockstep — not just sticker prices.

Recipes shipping next

Following the same test-deploy-then-publish protocol. ETA dates reflect when the test box is provisioned, not aspirational target.

  • Rybbit on Hetzner — €4.51/mo, Postgres-only stack. Boots in <5 min.
  • Pirsch CE on Coolify — Go single-binary, built-in geo without IP storage.
  • GoatCounter on a $5 droplet — JSON-only, no JS event funnels by design.
  • Fathom CE — last verified-self-host build was archived; will re-evaluate when the maintainer publishes a stable tag.
  • Plausible CE on Coolify — same software, different ops surface for teams already running Coolify.

How each recipe is verified

Read the full methodology for the deploy → verify → bench protocol. Short version: every recipe runs end-to-end on a fresh VPS before publishing; cost numbers come from invoice line-items I actually paid; recipes get a “Last verified {date}” stamp every time they’re re-run.