Self-hosting your web analytics solves two problems at once: you stop paying per pageview, and the question "where does our visitor data go" gets a one-word answer. For an EU business that second part is worth more than the first, because the awkward conversations about analytics are rarely about money.
The three common self-hosted options have very different appetites, though, and the sizing advice you find online is usually written by whoever maintains the tool. Here is a straight comparison of what each one needs, which of our shapes fits, and what it costs per month in each location.
The three you are choosing between
| Tool | Storage engine | Resource profile | Realistic minimum shape |
|---|---|---|---|
| Umami | PostgreSQL or MySQL | Lightest of the three. A Node app plus a normal relational database. | VPS I (2 GB) for small sites, VPS II (4 GB) with room to breathe |
| Plausible (self-hosted) | PostgreSQL and ClickHouse | Two databases. ClickHouse is fast and not shy about memory. | VPS III (8 GB); 4 GB only for very small sites |
| Matomo | MySQL / MariaDB | PHP plus a database that grows quickly; report archiving is the expensive part. | VPS II (4 GB) to start, VPS III–IV as traffic and history grow |
The pattern to notice: the tool that stores raw events in a columnar database (Plausible) needs the most memory even at low traffic, while the lightest option (Umami) trades some query flexibility for running comfortably on a €4 machine. Matomo sits in the middle until you turn on the heavier reports, at which point the archiving job — not the traffic — sets your shape.
Sizing by traffic, honestly
Analytics load is writes plus report queries. Writes are tiny; reports are not. A rough guide for a single site:
| Monthly pageviews | Umami | Matomo | Plausible |
|---|---|---|---|
| Up to ~100k | VPS I | VPS II | VPS III |
| ~100k – 1M | VPS II | VPS III | VPS III |
| ~1M – 5M | VPS III | VPS IV | VPS IV |
| Above 5M | VPS IV+ | VPS V+ | VPS V+ |
And what those cost per month with us:
| Shape | RAM / vCPU / disk | Bucharest | Warsaw · Amsterdam | Frankfurt · Vienna |
|---|---|---|---|---|
| VPS I KVM | 2 GB / 1 / 20 GB | €4.00 | €5.00 | €5.50 |
| VPS II KVM | 4 GB / 2 / 40 GB | €6.00 | €8.00 | €9.00 |
| VPS III KVM | 8 GB / 2 / 60 GB | €10.00 | €14.00 | €16.00 |
| VPS IV KVM | 16 GB / 4 / 80 GB | €16.00 | €24.00 | €26.00 |
At those prices the hosting is rarely the deciding factor: a €10 machine in Bucharest carries a million pageviews a month on any of the three tools. What costs you is choosing the heaviest tool for a site that needed the lightest.
Where to put it, and why the location matters more here
An analytics endpoint is called by every visitor on every page. Two consequences:
- Latency is user-visible if you load the tracker synchronously (you should not) and still matters for the request itself. Put the analytics box near the bulk of your audience rather than near your office.
- The data lands where the machine is. This is the entire point for an EU business: our five locations — Bucharest, Warsaw, Amsterdam, Frankfurt and Vienna — are all in EU member states, so visitor data never leaves the Union, and there is no transfer mechanism to document. The price list per location shows what each city costs, and Bucharest versus Warsaw covers the CEE choice.
Hosting inside the EU is the part you can solve with a location dropdown. It does not by itself make your analytics lawful — that depends on what you collect, whether it is personal data, how long you keep it and whether you set a cookie. All three tools can be configured to run without cookies and without storing raw IP addresses; that configuration is your decision, not a property of the server.
Serve the tracker from your own domain
The practical benefit people miss: when the analytics instance answers on a subdomain of your own site, the tracker is a first-party request. It is not blocked as a third-party script, the data is not shared with anyone, and you are not asking your visitors' browsers to talk to a domain they have never heard of. Point a subdomain at your VPS, terminate TLS there with an ACME certificate, and keep the dashboard behind authentication.
Disk, retention and the thing that grows
Raw event storage grows linearly with traffic and never shrinks unless you tell it to. Before you launch:
- Decide a retention period and configure it. Twelve or twenty-four months is plenty for most businesses, and short retention is also a data-protection argument in your favour.
- Watch database size as a metric, not disk free space. You want to see the trend before the wall.
- If you run out of room, add disk rather than jumping shapes: extra storage is €4 a month per 50 GB increment, up to three increments per machine.
Prove the shape before you commit
Every shape above is available on hourly billing, so the sizing question is answerable in an afternoon rather than in arguments:
- Order the candidate shape hourly — a VPS III is €0.0139 an hour in Bucharest, €0.0222 in Frankfurt.
- Install the tool, then replay a month of your access logs into it, or point a copy of your site's tracker at it for a day.
- Open the heaviest report you actually use and watch memory and query time.
- Destroy the machine. Four hours of a VPS III in Bucharest is about €0.06.
Hourly services need €5 of account credit to start, and a stopped machine keeps billing — destroy it to stop the meter.
How Noded Can Help
If you are replacing a SaaS analytics bill, start with Umami on a VPS I or VPS II in the location nearest your audience and see whether the lighter tool covers your reporting. If you need Plausible's model or Matomo's depth, order a VPS III on hourly billing from the hourly VPS page and test the reports you care about before switching to the monthly price. Our PostgreSQL sizing notes apply directly to the database half, and if you would rather have a second opinion on the tool choice, open a ticket.
FAQ
Which self-hosted analytics tool is lightest?
Umami, by a clear margin — a Node application plus PostgreSQL runs on a 2 GB machine for a small site. Plausible needs ClickHouse alongside PostgreSQL and wants 8 GB to be comfortable. Matomo sits between the two until report archiving becomes the bottleneck.
Does self-hosting analytics in the EU make me GDPR-compliant?
It removes the international transfer question, which is a real and common problem. Lawfulness still depends on what you collect, your retention period and whether you set cookies. All three tools can be run cookieless and without storing raw IPs.
How much traffic can a €10 VPS handle?
Our 8 GB shape comfortably serves around a million pageviews a month on any of the three tools, with the database on the same machine. Report queries, not incoming events, are what eventually push you up a shape.
Where should the analytics server live?
Closest to the majority of your visitors, since every page view makes a request to it. All five of our locations are EU-based, so residency is satisfied in every one of them.
What happens when the event table gets huge?
Set retention first, then add storage increments (50 GB for €4 a month, up to three) before considering a bigger shape — analytics data grows on disk long before it needs more RAM.