Umami
Simple, fast, privacy-focused web analytics
Umami is a simple, fast, privacy-focused alternative to Google Analytics that collects no personal data and uses no cookies. It targets developers and site owners wanting easy, ethical analytics. It is deployed via Docker.
Umami setup guides & articles
Hands-on coverage of Umami from the blog.
Ditching Google Analytics: Plausible, Umami, or Matomo
Plausible, Umami, and Matomo compared on features, RAM, and script weight — plus GA4 migration paths and why the cookie banner finally goes away.
SEO & GrowthMeasuring SEO With Self-Hosted Analytics
Measuring SEO with self-hosted analytics — Plausible, Umami, or Matomo paired with Search Console, and the events worth tracking on content sites.
Key features
- Cookie-free privacy analytics
- Clean modern dashboard
- Multi-site and multi-user
- Tiny tracking script
Pros & cons
Strengths
- Very easy to self-host
- Privacy-friendly
- Clean interface
Trade-offs
- Fewer features than Matomo
- Requires a database
Umami replaces
Last reviewed Aug 26, 2026 · 815 words
Umami is the self-hosted analytics tool I recommend when someone wants Google Analytics gone by tonight. One Postgres container, one app container, a script tag, and you have pageviews, referrers, countries, devices and custom events with no cookies and no consent banner to argue about. 512 MB of RAM covers it. The compose file below is the entire install.
The whole deployment
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
APP_SECRET: replace-with-a-long-random-string
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
POSTGRES_DB: umami
volumes:
- ./umami-db:/var/lib/postgresql/data
restart: unless-stopped
Start it, open port 3000, log in as admin with the password umami, and change that password immediately. Add a website, then paste the generated tag into your site's <head>:
<script defer src="https://stats.example.com/script.js" data-website-id="your-website-id"></script>
Put Caddy or your existing reverse proxy in front for TLS. MySQL is supported through the mysql-latest image tag if you already run it, but Postgres is the path the project tests hardest.
The 2 env vars that save your data from ad blockers
Filter lists block requests to any path called script.js on a host that looks like analytics, and a good share of technical audiences run uBlock Origin. Umami handles this with 2 settings: TRACKER_SCRIPT_NAME renames the script (set it to something like stats-tracker and load /stats-tracker.js instead), and COLLECT_API_ENDPOINT renames the /api/send collection path. Combine both with a first-party subdomain and you recover most of the sessions a stock install silently loses. On a developer-focused site I have seen the difference land around 20 to 30 percent of visits; your audience will vary.
What you get, and the wall you hit
The dashboard is one page per site: visitors, views, bounce, visit time, then breakdowns by page, referrer, browser, OS, device, country, city and UTM. Custom events are a data-umami-event attribute on any element or a umami.track() call, and event properties can carry small payloads. The reports section adds funnels, retention, goals and user journeys; teams let several people share sites with per-site roles, and a per-site share link publishes a read-only dashboard, which is how I show visitor numbers to a client without creating an account for them. A realtime view shows the last few minutes of traffic, useful for checking that the tag fired after a deploy. An API with tokens exists if you want to pull numbers into your own dashboard.
The wall is depth. There is no session replay, no heatmaps, no per-visitor profile timeline, no e-commerce module of the kind Matomo ships, and campaign attribution stops at UTM parameters. A marketing team needing those will find Umami a summary rather than a tool. For a blog, a docs site, a SaaS landing page or a homelab, the summary is exactly what you wanted.
Umami vs Plausible in one paragraph
Both are cookie-free and light; the difference is what you pay and how you deploy. Plausible Community Edition wants Postgres plus ClickHouse and is deliberately trimmed compared with its paid cloud, while Umami is MIT-licensed with one database and the same features everywhere. Plausible's interface is arguably prettier; Umami's is more configurable and handles many sites per instance without friction. The Plausible vs Umami comparison goes deeper, and the notes on leaving Google Analytics cover what you give up from GA4 either way.
Keeping it alive
Updates are docker compose pull && docker compose up -d; the app runs its database migrations on start, so back up the Postgres volume first with pg_dump. Keep the app and database on the same compose file so the two upgrade together; a Postgres major-version jump needs a dump and restore, and doing it beside an Umami upgrade is how people end up with an empty dashboard. Data grows slowly, a few hundred bytes per pageview, so a 10,000-visit-a-month site accumulates well under 1 GB a year. Umami also sells a cloud version with a free tier if you would rather not host at all, and the tracking script is identical, so moving between the two later is a config change.
What I'd do
The compose file above on whatever box already runs your reverse proxy, TRACKER_SCRIPT_NAME and COLLECT_API_ENDPOINT set on day one, a stats. subdomain under your own domain, and a weekly pg_dump into your existing backups. Fifteen minutes of setup, then leave it alone. Reach for Matomo only if someone specifically needs heatmaps or e-commerce reports, and Plausible only if its interface wins the room.
Compare Umami
19 head-to-head comparisons.
- Umami vs PostHog
- Umami vs Plausible
- Umami vs Matomo
- Umami vs Rybbit
- Umami vs Fathom Lite
- Umami vs OpenPanel
- Umami vs GoatCounter
- Umami vs Ackee
- Umami vs Shynet
- Umami vs Tianji
- Umami vs Open Web Analytics
- Umami vs Counterscale
- Umami vs Vince Analytics
- Umami vs Litlyx
- Umami vs Swetrix
- Umami vs Pirsch
- Umami vs Counter.dev Selfhost
- Umami vs Offen Fair Web Analytics
- Umami vs Medama
Similar web analytics apps
Superset
Web AnalyticsModern data exploration and visualization platform
Replaces Tableau, Power BI
Metabase
Web AnalyticsOpen-source business intelligence and dashboards
Replaces Tableau, Looker
PostHog
Web AnalyticsOpen-source product analytics platform
Replaces Google Analytics, Mixpanel
Postiz
Web AnalyticsSchedule posts, track the performance of your content, and manage all
Replaces Buffer, Hootsuite
Netron
Web AnalyticsVisualizer for neural network and machine learning models
Plausible
Web AnalyticsLightweight, privacy-friendly website analytics
Replaces Google Analytics