Getting found · Edition No. 5 · 30 Aug 2026

umami-software/umami

Self-installed website analytics with no cookies, running on an existing PostgreSQL database.

← Getting foundRead the whole edition →
Umami: counting visitors without cookies. Where people came from and which pages they left on.

38.7k stars · MIT · v3.3.1 (2026-08-20) · Track this in Rising ↗

Self-hosted, cookie-free website analytics — the measurement floor for every other marketing move.

Verified27 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 23 Oct 2026, 4 days before this check.

Releases100

Latest release v3.4.1 on 23 Oct 2026.

Maturity90

Public since July 2020, a little over 6 years.

Adoption92

39,734 stars and 8,431 forks.

Activity85

198 commits and 106 new issues in the last 90 days.

Community100

439 contributors. 62 pull requests merged in 90 days.

Security40

No security policy file says how to report a problem. 2 published security advisories.

Licence MIT: permissive: use it for anything, keep the noticeSetup effort 2 of 5Payoff 5 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 27 Oct 2026 from the repository on GitHub. Covered in Edition 5.

▶Repo detailsthe review · specs · pros & cons · install

What it does

You add a small script tag to a site and it records page views. The dashboard shows visitors, page views, where people came from, which campaign links they followed, which pages they left on, and how fast pages loaded. Goals can be defined so a particular action is counted as a conversion. Recent versions add custom dashboards, Core Web Vitals, which are Google's three page-speed measurements, and session replay, which plays back an anonymous recording of one visit. Several people can have accounts, and sites can be grouped. It needs Node.js 18.18 or newer and PostgreSQL 12.14 or newer, and it reuses a database that is already there. What it does not do is match a full analytics suite on deep questions: there is no serious funnel or cohort analysis, and the README names PostgreSQL as the only supported database.

Why it matters

Who it suits. Anyone publishing anything with the intention of being found. Campaign links are the part that pays immediately: they turn "an article was published" into "that article sent nine people, two of whom signed up". It also suits anyone who wants visitor figures without a consent banner, since no cookies are set. Skip it if the questions are about cohorts and multi-step funnels, because a heavier product answers those. And skip it if the site already has a working analytics tool, because two of them is a maintenance job for no new information.

Verdict. Worth two hours, and the first thing on this page to install. It is in excellent health: 39,311 stars, a release on 17 September 2026, code landing on 11 October 2026, and only 42 open issues for a project that size. The session replay in current versions is more useful than it sounds, because watching six real visits through a confusing screen beats any amount of discussion about what to fix. Two honest costs. Upgrades, backups and uptime become somebody's job, which is one more service on a machine that entry #8 now measures. And it is deliberately shallower than the large commercial products, so a question about cohorts will eventually go unanswered. plausible/analytics is the closest alternative and is a heavier install; PostHog/posthog answers the deep questions and costs far more to run.

Stars38.7k
LicenceMIT
Latestv3.3.1 (2026-08-20)checked 7 Sep 2026
Written inTypeScript
NeedsDocker Compose, Docker and PostgreSQL
RunsSelf-hosted on your own server
Summary (Key Points)from the README
Key features
  • Privacy-first analytics: Tracks traffic, campaigns, behavior, conversions, and revenue without cookies.
  • Deployment choice: Runs self-hosted or in the cloud.
  • Two-factor authentication: Available once you set a 64-character hex `TWO_FACTOR_ENCRYPTION_KEY`, which you can generate with `openssl rand -hex 32`.
  • MCP endpoint: Set `MCP_ENABLED=1` to enable the `/mcp` endpoint, then authenticate with an API key from Settings → API keys.
  • Configurable base URL: `API_URL` changes the base URL for internal UI API calls. Relative paths are served under `BASE_PATH`, and absolute URLs are proxied through the local `/api` route.
  • Docker images: Official images and a Docker compose file that runs Umami with a PostgreSQL database.
  • Simple updates: Pull the latest source or Docker images, install any new dependencies, and rebuild.
Ways to install
Platform or methodWhat it needsEffort
Installing from sourceNode.js 18.18+, PostgreSQL v12.14+, an `.env` file, a build step, and a start commandModerate
Docker imageDocker, plus a PostgreSQL database you provideLow
Docker composeDocker and Docker compose; the file runs Umami with PostgreSQLLow
Important
  • Default login: The build step creates a user with username `admin` and password `umami`. Change these credentials right after installation.
  • Database tables: The first build creates the database tables automatically.
  • Two-factor authentication: It stays unavailable, and cannot be required, until `TWO_FACTOR_ENCRYPTION_KEY` is set.
  • MCP is off by default: You must set `MCP_ENABLED=1` before the `/mcp` endpoint works.
  • Port and proxy: The source install launches on a default port, and you must either proxy requests from your web server or change the port to serve the app directly.
  • Version requirements: Source installs need Node.js 18.18 or later and PostgreSQL 12.14 or later.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
2 / 5
Payoff
5 / 5
Good
  • Reuses an existing PostgreSQL database, so the install is one container rather than a new service to back up.
  • No cookies, so in most places no consent banner is needed and the landing page stays uninterrupted.
  • Session replay and page-speed measurements are included, which removes two more tools from a future shopping list.
Watch for
  • Shallower than the large commercial suites on funnels and cohorts: fine for a small site, a limit later.
  • Upgrades, backups and uptime are now a local job, on a machine that is probably already busy.
  • PostgreSQL is the only database the README supports, so an existing MySQL is of no help.
Install
# Docker, the quickest route
git clone https://github.com/umami-software/umami.git
cd umami
docker compose up -d
# Or from source against an existing database
pnpm install
# .env with DATABASE_URL=postgresql://user:pass@host:5432/umami
pnpm run build       # creates the tables on first run
pnpm run start       # serves on localhost:3000
Screenshots
umami-software/umami: GitHub preview card

Also in Edition No. 1.

On Stack Radar: Marketing & Growth › Conversion & Growth Analytics › Attribution.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.