Skip to content
$_ setuptracking
Recipes

What Self-Hosted Analytics Really Costs (Full TCO)

11 min read

Ask “what does self-hosted analytics cost?” on any forum and you’ll get a one-word answer: “€5.49/mo, the price of a Hetzner box.” That number is real — it’s the €5.49/mo Plausible recipe we publish — but it’s also the same trick the cloud vendors pull when they quote “$9/mo”: one line item presented as the whole bill. The honest answer to self-hosted analytics cost is a total cost of ownership question, and total cost of ownership has three columns most pages skip: the VPS, the operational lines (backups, updates), and your own time. This page is the explainer behind the self-hosted TCO calculator — it walks every line so the calculator’s number actually means something.

Here’s the honest version up front. For most sites under ~1M events per month, running it yourself lands around €198 over 3 years in pure infrastructure (one CX23, billed monthly) — but the real total is closer to €313 once you add backups, and “free” only if you value your maintenance time at zero. The interesting part isn’t the floor; it’s the break-even against Plausible Cloud and Fathom, which we’ll table out below.

The number everyone quotes (and what it leaves out)

The €5.49/mo figure is the Hetzner CX23 — 2 vCPU, 4 GB RAM, 40 GB SSD, and (this matters) 20 TB of included traffic. That’s the dominant cost line for self-hosting, and it’s genuinely cheap. What the headline number leaves out is everything that turns a running container into something you’d trust with a year of traffic data:

  • Backups. A €5.49 box with no backup is a €5.49 box that loses your whole event history the day the disk fails. That’s a real line, not optional.
  • Updates. Plausible CE, Matomo, the Docker engine, the OS — all need patching. That’s not money; it’s time, which is the line vendors love to leave off your invoice and on your calendar.
  • Your time. The 30 minutes to deploy, the hour a quarter to patch, the panic afternoon when ClickHouse fills the disk. Honest maintenance accounting puts a number on this even if you never pay it in cash.

None of these are reasons not to self-host. They’re the difference between a forum one-liner and a budget you can defend. The good news: on Hetzner most of them are small, and the egress line — the one cloud providers quietly meter — is effectively zero because 20 TB is far more than any analytics workload ships.

The VPS line: real Hetzner SKUs by events/mo

Stock check before you budget. Hetzner’s Cost-Optimized line (CX and CAX) runs on older hardware kept in deliberately limited supply. The whole line has shown as unavailable for new orders since 13 August 2026 and was still unavailable on 16 September 2026. Every CX price below is Hetzner’s list price; if the box you need cannot be ordered, the current-generation drop-in is the CPX line at roughly three to four times the price — CPX22 (2 vCPU / 4 GB) at €19.99/mo in place of the CX23, CPX32 (4 vCPU / 8 GB) at €35.99/mo in place of the CX33. Re-run the totals below with those numbers before you commit.

The VPS is 80–90% of your bill, so size it to your events per month and stop. Analytics is a write-heavy, read-light workload; the bottleneck is almost always RAM (ClickHouse and MariaDB are hungry), not CPU. These are the Hetzner SKUs we actually deploy on, with the event bands drawn from the live recipe ledgers (Plausible and Matomo on Hetzner, both dated 2026-05-02):

Read:  Umami on Vercel + Neon: Free Self-Hosted Analytics in 5 Minutes
Hetzner SKUSpecs€/moComfortable events/moEgress included
CX232 vCPU / 4 GB / 40 GB SSD€5.49up to ~5M (Plausible CE) · ~1M (Matomo)20 TB
CX334 vCPU / 8 GB / 80 GB SSD€8.49~10M+ comfortably20 TB
CX438 vCPU / 16 GB / 160 GB SSD~€16multi-site / ClickHouse headroom20 TB
Prices and specs as quoted on Hetzner Cloud, August 2026. The CX23 is the cheapest serious box; the bands match what the recipe pages were tested at.

The practical answer to “what’s the cheapest VPS for analytics?” is: the CX23, full stop, until your events per month push a single tool past its comfort band. Plausible CE on a CX23 absorbs roughly 5M events/mo before it starts swapping; Matomo, with its MariaDB schema and richer feature set, gets heavier sooner — closer to ~1M before you’d want to step up to a CX33. If you genuinely don’t know your volume yet, start on the CX23. Resizing a Hetzner box up is a 60-second reboot, not a migration.

One tier below even this: GoatCounter, a single Go binary that runs in ~30 MB of RAM, can ride along on a webserver you already pay for — or the smallest box you can buy. It’s the literal floor of self-hosted analytics pricing (call it the “$5 box” tier), at the cost of a deliberately minimal feature set. The hosted GoatCounter service is even free for reasonable personal/small-business use, which makes it the rare case where “self-host to save money” doesn’t apply — you’d self-host it for control, not cost.

The hidden lines: backups, updates, your time

This is the section the vendor pages and the generic “cheapest VPS” posts skip, and it’s where an honest TCO earns its keep.

Backups — a real €/mo line

Your event store is the asset. A Hetzner Storage Box (100 GB) runs about €3.20/mo and gives you off-box, off-disk backups you can restore from. Over 3 years that’s ~€115 — comparable to the VPS itself, and the single most-skipped line in forum cost estimates. The cheaper alternative is Hetzner’s snapshot feature (billed per GB of snapshot, pennies for an analytics box), but snapshots live in the same failure domain as your server, so they’re a convenience, not a disaster plan. Budget for real off-box backups if the data matters.

Updates — a time line, not a money line

Self-hosted means you own the patch cadence. In practice that’s a git pull + docker compose pull + up -d a few times a year for the app, plus unattended-upgrades handling the OS. Call it an hour a quarter once you’re set up — four hours a year of maintenance. Running everything in Docker is what keeps this cheap: containers pin versions, and a bad upgrade rolls back by re-pulling the previous tag. The version-pinning discipline that Docker gives you is the difference between “updates are a chore” and “updates are a risk.”

Your time — the line nobody invoices

Here’s the credibility marker: if you bill your time at €50/hour and spend ~5 hours/year on setup-amortized + patching + the occasional incident, that’s €250/year of maintenance labor that never shows up on a Hetzner invoice but is absolutely a cost. We’re not telling you to add it to the spreadsheet and conclude cloud wins — we’re telling you it exists so your break-even math is real. For a developer who’d spend that time anyway, the line is near zero. For a marketer who’d rather not touch SSH, it’s the most expensive line on the page, and that’s a legitimate reason to pay for cloud.

Cloud comparison: Plausible & Fathom per-event pricing

Cloud is the opposite cost shape: zero ops, zero maintenance, but a bill that climbs with your traffic. To compare honestly you have to put the per-event (really per-pageview) pricing next to a fixed VPS at the same volume. Here’s where the two cleanest baselines land, priced live at August 2026:

Read:  GoatCounter on a Cheap VPS: Minimal Self-Hosted Analytics
PlanEntry priceVolume includedPricing shapeFree tier?
Plausible Cloud (Starter)$9/mo10k pageviews/moscales up by pageview bandNo — 30-day trial only
Fathom$15/mo100k pageviews/mofixed tiers (not metered per-event): $25 → 200k, $45 → 500k, $60 → 1MNo — paid only
Self-host (CX23)€5.49/moup to ~5M events/moflat — volume doesn’t move the billN/A (you own the box)

The shape is the whole story. Plausible Cloud starts cheaper than a year of cloud feels — $9/mo at 10k — but that’s a 10k-pageview ceiling; the bill rises every time your traffic does. Fathom bundles a generous 100k into its $15 entry and steps up in fixed tiers rather than metering each pageview, which makes it predictable but still volume-coupled. The self-hosted CX23 doesn’t care: 10k events or 5M events, the line reads €5.49. That flatness is the entire economic case for self-hosting, and it’s exactly what the cloud per-pageview tables are structured to obscure.

The break-even: when self-hosting actually saves money

Now the question that matters: at what volume does running it yourself actually beat the cloud plan? Compare 3-year totals — the horizon long enough that setup labor amortizes and the recurring shape dominates.

Events/moSelf-host (CX23 + backups)Plausible Cloud (3-yr)Fathom (3-yr)Verdict
10k~€313~$324 ($9 × 36)~$540 ($15 × 36, 100k tier)Roughly a wash vs Plausible
100k~€313climbs above Starter~$540Self-host pulls ahead
1M~€313~$2,000+ (Business band)~$2,160 ($60 × 36)Self-host wins decisively
5M~€313 (CX23 holds for Plausible CE)enterprise / custom quote~$5,040 ($140 × 36)Not close
Self-host = CX23 €5.49/mo × 36 (~€198) + 100 GB Storage Box backups (~€115) ≈ €313, flat across volume. Cloud columns use entry-plan pricing scaled to the matching pageview band, August 2026. Excludes your setup time.

The break-even is not a single number — it depends which cloud you’re escaping. Against Plausible Cloud at 10k pageviews, self-hosting is a near-wash on cash and only worth it for control, EU residency, or raw SQL access. Against Fathom, or against any plan once you cross ~100k events/mo, the flat €313 3-year cost wins and keeps winning. Below ~10k pageviews with no DevOps appetite, cloud is the smarter spend and we’ll say so plainly in the last section.

Size your own box (the calculator)

Tables generalize; your traffic is specific. The fastest way to turn this explainer into your number is the self-hosted TCO calculator — plug in your events per month and it returns the matching Hetzner SKU and the 3-year cost next to the cloud plan you’d otherwise pay. This page is the “why” behind every figure that calculator outputs: the VPS band, the backup line, the break-even column. Read the reasoning here, get your number there.

If you haven’t settled on a tool yet, cost is the wrong first question — pick the right tool first, then price the box that runs it. The sizing only makes sense once you know whether you’re running minimalist Plausible CE or heavier Matomo, because the comfortable events/mo band moves with the tool.

The cheapest serious setup vs the comfortable one

There are two honest configurations, and the gap between them is small enough that “comfortable” usually wins.

The cheapest serious setup is Plausible CE on a CX23, snapshots for backup, you patch it: €5.49/mo, ~€198 over 3 years, your time as the hidden line. This is the floor for a real install you’d trust — not the GoatCounter “$5 box” minimal floor, but the cheapest box that runs a full-featured privacy-first tool. It’s the €5.49/mo Plausible recipe verbatim.

The comfortable setup adds a real off-box backup (100 GB Storage Box, ~€3.20/mo) and, if you run Matomo or expect to grow past a few hundred thousand events/mo, a CX33 instead of a CX23. Call it €8–12/mo all-in, ~€313–430 over 3-year cost — still less than one year of Fathom at 1M pageviews. The €115 of backups over three years is the cheapest insurance you’ll ever buy against losing your analytics history. Every install recipe on the site carries its own dated ledger so you can see the exact lines per tool.

Read:  Self-Hosted Analytics Backup: Plausible, Matomo, Umami

When the cloud plan is the smarter spend

An honest cost page has to draw the line where self-hosting loses, or none of the rest is trustworthy. Pay for cloud when:

  • You’re under ~10k pageviews/mo and don’t want to touch a server. $9/mo Plausible Cloud is genuinely cheaper than your time, and the cash gap vs self-hosting is a rounding error at this volume.
  • You have zero DevOps capacity. If nobody on the team will SSH in to patch the box or restore a backup, the “your time” line isn’t €250/year — it’s an outage waiting to happen. Cloud’s managed updates are worth real money here.
  • You need a feature only the managed plan ships. Some funnel/team features live behind cloud tiers; if you need them and don’t want to query ClickHouse by hand, pay for them.

Everywhere else — above ~100k events per month, where EU data residency matters, where you want raw SQL on your own data, or where you simply prefer a flat bill that ignores your traffic — the self-hosted box wins on total cost of ownership, and it isn’t close. Size it with the self-hosted TCO calculator and copy the box from the matching recipe.

FAQ

How much does it cost to self-host analytics per month?

The infrastructure floor is €5.49/mo for a Hetzner CX23 — 2 vCPU, 4 GB RAM, 20 TB egress — which runs Plausible CE up to roughly 5M events per month. Add about €3.20/mo for off-box backups and you’re at ~€8/mo all-in. That’s the cash bill; the honest total also counts ~4–5 hours/year of maintenance time, which is free if you’re a developer and a real cost if you’re not.

What’s the cheapest VPS to run self-hosted analytics?

The Hetzner CX23 at €5.49/mo is the cheapest serious box — it carries any privacy-first tool comfortably under ~1–5M events/mo and includes 20 TB of egress, so traffic spikes never add a surprise line. One tier below, GoatCounter’s single Go binary runs in ~30 MB of RAM and can ride along on a webserver you already pay for, making it the literal floor of self-hosted analytics pricing.

Is self-hosting analytics cheaper than Plausible or Fathom Cloud?

It depends on volume. At 10k pageviews/mo, self-hosting (~€313 over 3 years) is roughly a wash with Plausible Cloud ($9/mo) and cheaper than Fathom ($15/mo entry). Above ~100k events/mo the flat self-hosted bill pulls clearly ahead, and at 1M+ it’s not close — cloud plans climb into thousands over three years while the CX23 stays at €5.49/mo. The break-even is volume, not principle.

How much traffic can a €5/mo VPS handle for analytics?

A Hetzner CX23 (€5.49/mo) handles roughly 5M events per month on Plausible CE before it starts swapping, and closer to ~1M on Matomo, whose MariaDB schema is heavier. The limiting resource is RAM, not CPU — analytics is write-heavy and read-light. When you outgrow it, resizing up to a CX33 (€8.49/mo) is a 60-second reboot, not a migration.

What hidden costs does self-hosted analytics have?

Three the headline VPS price hides: backups (a real ~€3.20/mo line for off-box storage — skipping it means one disk failure wipes your history), updates (a few hours a year patching the app, Docker, and OS), and your own time (the most-skipped line — value it honestly even though no one invoices you for it). Egress is the cost cloud hides but self-host doesn’t, because Hetzner includes 20 TB.

At what traffic level does self-hosting beat a cloud plan?

Against Fathom, almost immediately past its 100k entry tier. Against Plausible Cloud, the cash break-even arrives once you climb past the $9 Starter band — practically, somewhere around 100k events/mo, self-hosting’s flat ~€313 over three years overtakes the rising cloud bill and never looks back. Below ~10k pageviews with no DevOps appetite, the cloud plan is the smarter spend.


Found this useful?

Try the Stack Picker to get a personal recommendation, or browse the install recipe library.