Umami Self-Hosted

BeginnerWebsite

Self-hosted Umami: cookie-free, privacy-first website analytics on a server you run.

Published 27 September 2026

Core Tools
PostgreSQL
PostgreSQL
Docker
Docker
Umami
Umami
Hosting
Hetzner
Railway
DigitalOcean
Hostinger
Render
+1
Reverse Proxy
Traefik
Caddy
NGINX
Self-Hosted PaaS
Coolify
Dokploy

About Umami Self-Hosted

Umami is an open-source web analytics platform built as a privacy-first alternative to Google Analytics. A tracking script of about 2 KB records page views, referrers, UTM campaigns, countries, devices, and custom events without cookies or persistent identifiers: visitors are counted from a salted hash that rotates, so no personal data is stored.

Everything lands in your own PostgreSQL. The stack is one Umami container plus the database, which makes it the lightest analytics setup in this family to run: the app itself uses around 200-250 MB of memory, and a 1 GB server carries both. Since v3, PostgreSQL is the only supported database, so upgrades and backups have a single engine to deal with.

The dashboard covers traffic at a glance, and the reports go further than traffic counts: funnels, attribution, and revenue for sites that send purchase events. One instance tracks any number of websites, each with its own dashboard, and teams or share links give clients and colleagues read access without an account on your server.

It suits developer sites, business websites that want analytics without a consent banner for tracking cookies, and agencies running many client sites from one instance. The trade against Umami Cloud is operations: backups, upgrades, and uptime are yours.

Key Features

  • ✓Cookie-free tracking script of about 2 KB with no personal data stored
  • ✓Page views, referrers, UTM campaigns, devices, and countries on one dashboard
  • ✓Custom events plus funnel, attribution, and revenue reports
  • ✓Any number of websites per instance, with teams and public share links
  • ✓All analytics data in your own PostgreSQL, exportable with a standard dump
  • ✓Official Docker image, portable across any VPS, container platform, or home-lab board

When to Use Umami Self-Hosted

  • →Developer blogs and portfolio sites that want analytics without Google
  • →Business websites that want visitor numbers without a tracking-cookie consent banner
  • →Agencies running analytics for many client sites from a single instance
  • →Open-source projects tracking documentation and landing page traffic
  • →Sites where a third-party analytics script's weight or data sharing is unacceptable

Pros

  • No event, site, or retention limits; the bill is one small server
  • The lightest analytics stack to self-host: one container and PostgreSQL in 1 GB
  • No cookies, so no tracking-cookie consent banner
  • All visitor data stays in a PostgreSQL database you control

Cons

  • Shallower than Google Analytics for behavioral flow and cross-device analysis
  • PostgreSQL is not a columnar store, so very high event volumes slow down reports sooner than ClickHouse-based tools
  • Backups, upgrades, and uptime are yours, and a collector that's down loses those visits for good

Hosting Options for Umami Self-Hosted

Hetzner

Deploy Umami Self-Hosted on Hetzner

A flat-rate root VPS from around €4-5/mo, and Umami with PostgreSQL fits the smallest instance with room to spare. The cheapest way to track many sites with no event caps, with the usual root-VPS tradeoff: database backups and security updates are yours to run.

Railway

Deploy Umami Self-Hosted on Railway

Umami's hosting guides include Railway, which runs the app with managed PostgreSQL in the same project and redeploys on each new release. Railway terminates TLS itself, so the reverse proxy or PaaS choice doesn't apply. The $5/mo Hobby plan plus usage typically lands a small Umami instance with its database around $10/mo.

DigitalOcean

Deploy Umami Self-Hosted on DigitalOcean

A root Droplet from about $6/mo with snapshots and a cloud firewall in the panel. Its managed PostgreSQL (from about $15/mo) can hold Umami's event data with automated backups if you'd rather not run the database yourself, which more than doubles the bill of a stack this light.

Hostinger

Deploy Umami Self-Hosted on Hostinger

The budget VPS in the list, with KVM plans from about $6.50/mo. The entry plan's 4 GB of memory is several times what Umami and PostgreSQL need, so the same server can host the sites being tracked as well. Fewer regions than the larger providers, and backups are yours to set up.

Render

Deploy Umami Self-Hosted on Render

Umami's hosting guides include Render, which runs the app as a web service with managed PostgreSQL and TLS terminated at the platform. Skip the free tier: it sleeps when idle, and every visit that arrives while the collector wakes up goes unrecorded. The $7/mo Starter instance plus a small database runs about $13/mo.

Raspberry Pi

Deploy Umami Self-Hosted on Raspberry Pi

Umami publishes multi-arch images, so the same container runs on a Pi 4 or 5 with PostgreSQL beside it and no monthly bill. Home connections are the weak point for a collector that public websites call on every page view, so pair it with the tunnel addition and accept that a home outage drops those visits.

These are highlighted picks. To see all the tools, check the Hosting & Cloud category.

Reverse Proxy Options for Umami Self-Hosted

Traefik

Umami Self-Hosted with Traefik

Routes to the Umami container from Docker labels and renews Let's Encrypt certificates on its own. Make sure it forwards the visitor's real IP in X-Forwarded-For: Umami derives country and the visitor hash from it, and without it every visit looks like it came from the proxy.

Caddy

Umami Self-Hosted with Caddy

Automatic HTTPS from a few lines of config, the simplest fit for one Umami container. Caddy sets X-Forwarded-For by default, so Umami sees each visitor's real IP for location and unique-visitor counts without extra configuration.

NGINX

Umami Self-Hosted with NGINX

The most familiar proxy, with TLS through Certbot. Pass the visitor's address explicitly with X-Forwarded-For or X-Real-IP; Umami's CLIENT_IP_HEADER setting covers a non-standard header if your setup uses one.

Self-Hosted PaaS Options for Umami Self-Hosted

Coolify

Umami Self-Hosted with Coolify

Free and self-hosted, with a one-click Umami template that provisions PostgreSQL beside it and HTTPS through Coolify's bundled proxy. Coolify can also host the websites being tracked, so the collector and the sites share one dashboard and one server.

Dokploy

Umami Self-Hosted with Dokploy

Free and self-hosted, with Umami in its template catalog, deployed behind its bundled Traefik with HTTPS configured from the dashboard. Check that Dokploy's scheduled backups cover the PostgreSQL volume, since that database is every visit you've ever recorded.

Umami Self-Hosted Add-ons

Each addition below extends this stack with a capability the base stack works fine without. None are required: include the ones your product actually needs when building this stack, and skip the rest.

Tunnel Add-ons

Add a tunnel when you're self-hosting without a static IP or can't open inbound ports — a home server, a VPS behind restrictive network policies, or anywhere a reverse proxy alone can't reach the internet.

Cloudflare Tunnel

Umami Self-Hosted with Cloudflare Tunnel

Makes Umami reachable over HTTPS through an outbound-only connection, with no inbound ports or static IP, for a collector on a Pi or home server. Cloudflare sends the visitor's address in its CF-Connecting-IP header; point Umami's CLIENT_IP_HEADER at it so locations and visitor counts stay correct.

ngrok

Umami Self-Hosted with ngrok

The quicker-start tunnel for testing the tracking script and custom events against an Umami instance on your own machine. Its free-tier limits suit development rather than a collector that live websites call on every page view.

Frequently Asked Questions about Umami Self-Hosted

Why self-host Umami instead of using Umami Cloud?

Limits and data location. Umami Cloud's free Hobby plan covers 100,000 events a month across 3 websites with 6 months of retention, and Pro is $20/mo for 1 million events with 5 years of retention, billing extra events beyond that. A self-hosted instance has no event, website, or retention limits, and no third party ever receives your visitors' data. Cloud does add a few extras the self-hosted version lacks, such as email reports. The cost of self-hosting is small but real: you keep the collector up, back up the database, and apply upgrades.

What does the server need to run?

1 GB of memory and 1 vCPU. Measured upstream, the Umami app uses around 200-250 MB, and PostgreSQL takes most of the rest. Don't go below 1 GB: 512 MB servers run out of memory during upgrades, when schema migrations and the new container overlap with the old one. 20 GB of SSD holds years of events for typical sites. Traffic volume, not the number of sites, is what eventually asks for more.

What needs backing up, and how do upgrades work?

PostgreSQL holds everything: websites, users, and every recorded event. The container is rebuildable from the image, so a scheduled database dump is the whole backup plan. Upgrades are a new image tag; Umami applies its schema migrations on startup, and major versions can take a while on large event tables, so dump the database first. Umami v3 dropped MySQL support, and instances still on MySQL follow the official migration guide to PostgreSQL before upgrading.

Umami or Plausible for self-hosted analytics?

Both are cookie-free, privacy-first analytics with similar dashboards. The real difference is storage. Umami keeps events in PostgreSQL, so it's one container plus a database in 1 GB of memory. Plausible Community Edition stores events in ClickHouse, which needs 2 GB of memory and a CPU with SSE 4.2 or NEON, but aggregates very large event volumes faster. Choose Umami for many small and medium sites on the cheapest server; choose Plausible when a single site's traffic runs to many millions of events a month.

Why are some visits missing from the numbers?

Ad blockers. Filter lists block Umami's default script name and collection endpoint, so a share of visitors never reach the collector. Umami supports renaming both through the TRACKER_SCRIPT_NAME and COLLECT_API_ENDPOINT settings, and serving the script from your own domain avoids most blocking. Also check the proxy: if it doesn't forward the visitor's real IP, locations and unique-visitor counts come out wrong even when the visits are recorded.

Scores

Popularity3/5

A popular open-source analytics pick in web-development circles, running behind Plausible in broader name recognition.

Learning Curve1/5

The lightest stack in the family to run, one container and PostgreSQL, with a UI that needs no explanation.

Flexibility3/5

Answers traffic questions well and stays simple by design; it is not a product-analytics platform.

Performance4/5

A single container plus PostgreSQL keeps pace well past small-site traffic and is frugal with resources in both directions.

Portability5/5

Events sit in your own PostgreSQL, exportable with the database; the container moves to any host unchanged.

Tools in the Umami Self-Hosted Stack

Databases

DevOps & CI/CD

Observability & Monitoring

Hosting (choose one)

Reverse Proxy or PaaS (choose one)

Reverse Proxy

Self-Hosted PaaS

Add-ons (optional — add any, or none)

Tunnel

Umami Self-Hosted Pricing

From ~$5/mo Free to start

Umami, PostgreSQL, and Docker are free and open source, and the stack is light enough that the cheapest instance of any hosting option runs it, at $4-13/mo. Umami Cloud's free Hobby plan covers 100,000 events a month and Pro costs $20/mo for 1 million, so self-hosting is less about saving money at the entry level than about removing event and retention limits and keeping visitor data on your own server.

Server (any provider)$4-13/mo

1 GB of RAM runs Umami (around 250 MB) and PostgreSQL together; the smallest tier of any provider works.

Umami + PostgreSQLFree (open source)

MIT-licensed, with no event, website, or data-retention limits.

Exposure (reverse proxy or PaaS)Free (open source)

Traefik, Caddy, NGINX, Coolify, and Dokploy all self-host free, with free Let's Encrypt certificates.

Umami Self-Hosted System Requirements

CPU
1 vCPU is plenty
RAM
1 GB, of which the app uses 200-250 MB; the rest is PostgreSQL's
Disk
20 GB SSD
OS
Any Linux with Docker

No official requirements published — tekyous guidance based on the bundle's services.

Based on measured numbers (a merged upstream PR reports the app container at 183-255 MB of memory) plus PostgreSQL; 512 MB boxes OOM during upgrades, so 1 GB is the honest floor.