Umami is a free, open source web & product analytics project written in TypeScript and released under MIT. It has 38,885 GitHub stars, 8,053 forks and 127 open issues, and was last pushed 8 hours ago. On this registry it ranks #2 of 25 tracked projects in Web & Product Analytics, and is listed as an open source replacement for 3 paid products, with 5 head-to-head comparisons available. It gained 130 stars over the last 6 tracked days.

What is Umami?

Umami is a privacy-first, open-source web and product analytics platform that gives site owners and product teams traffic, campaign, behavior, conversion and revenue reporting without cookies or surveillance, run either self-hosted or in the cloud.

What it is

Umami is a TypeScript analytics platform released under the MIT licence. It collects traffic, campaigns, behavior, conversions and revenue in one place, and it states plainly that it uses no cookies and performs no surveillance. It ships in two shapes: a self-hosted application that an operator runs against their own PostgreSQL database, and a cloud offering reachable from the project homepage at umami.is. The repository carries 38,878 stars and 8,051 forks, which places it among the more widely adopted projects in the Data & Analytics / Web & Product Analytics category, and it sits alongside the web-analytics, product-analytics, audience-segmentation, cohort-analysis and user-journey topics its maintainers tag it with.

The concrete problem it solves is ownership of analytics data. The project positions itself as an open alternative to Google Analytics and to Mixpanel. Both of those products require page instrumentation that reports visitor behavior to a third party, and Google Analytics in particular pushes sites toward cookie consent machinery. Umami replaces that arrangement with an application you deploy yourself, writing events into a PostgreSQL database you control. For teams that have been told to stop shipping visitor data to external vendors, or that simply want one place for traffic and conversion numbers without a consent banner attached to every page, the swap is the whole point of the project.

Key capabilities

  • Cookie-free, surveillance-free measurement, so visitor tracking does not depend on client-side cookie storage.
  • Reporting across five named areas in one interface: traffic, campaigns, behavior, conversions and revenue.
  • Analysis features implied by the project topics: audience segmentation, cohort analysis, user journey views, charts and statistics.
  • Environment configuration through a .env file, with DATABASE_URL as the required setting and the connection format postgresql://username:mypassword@localhost:5432/mydb.
  • Optional API_URL to redirect internal UI API calls, either to a relative path such as /internal-api or to an absolute URL proxied through the local /api route, and BASE_PATH for serving under a subpath.
  • Two-factor authentication, enabled by setting TWO_FACTOR_ENCRYPTION_KEY to a 64-character hex string generated with openssl rand -hex 32; the feature cannot be enabled or required until that key exists.
  • Official Docker image at docker.umami.is/umami-software/umami:latest, plus a Docker compose file that runs Umami together with a PostgreSQL database.

Who uses it and how

  • Self-hosters running the application on a server with Node.js 18.18 or later and PostgreSQL v12.14 or later, then placing it behind a reverse proxy such as nginx or changing the application port to serve it directly.
  • Operators who prefer containers, deploying the published Docker image alongside PostgreSQL using the supplied compose file with docker compose up -d.
  • Teams migrating off Google Analytics or Mixpanel that need the data to stay inside infrastructure they already run.
  • Organizations that want a managed option instead of operating a database, using the cloud service at umami.is.
  • Contributors and integrators drawn from a large base: 8,051 forks and 127 open issues indicate active outside participation, not a single-maintainer script.

Getting started

The full guide lives at umami.is/docs. The fastest path is Docker: pull docker.umami.is/umami-software/umami:latest and run docker compose up -d, which starts Umami with PostgreSQL. From source, clone the repository, run pnpm install, create .env with DATABASE_URL, then pnpm run build and pnpm run start, which serves on http://localhost:3000 by default.

How it compares

Against Google Analytics and Mixpanel, the differences are licence, hosting and data ownership rather than feature counts. Umami is MIT-licensed and can be self-hosted, so the event data lands in a PostgreSQL database the operator controls, while Google Analytics and Mixpanel are proprietary services that receive the data on their own infrastructure. Umami also offers a cloud option, so choosing it does not force self-hosting, but the self-hosted route is the one that removes third-party data transfer and per-event vendor cost entirely.

When to use it — and when not to

Pick Umami if you are willing to operate a PostgreSQL database, a Node.js 18.18 or later runtime and a reverse proxy, and if keeping analytics data in-house matters more than zero-ops convenience. Do not pick it if nobody on the team wants to run a database and a web server, since the self-hosted path assumes all three pieces. Note two practical cautions: the build step creates a login user named admin with the default password umami, which must be changed immediately, and the README covers installation well but defers nearly everything else to the external docs site.

project readme (upstream, from github) — read inline

Umami Logo

Umami

Umami is a privacy-first analytics platform. Traffic, campaigns, behavior, conversions, and revenue in one place — no cookies, no surveillance, self-hosted or in the cloud.

GitHub Release MIT License Build Status Umami Demo


🚀 Getting Started

A detailed getting started guide can be found at umami.is/docs.


🛠 Installing from Source

Requirements

  • A server with Node.js version 18.18+.
  • A PostgreSQL database version v12.14+.

Get the source code and install packages

git clone https://github.com/umami-software/umami.git
cd umami
pnpm install

Configure Umami

Create an .env file with the following:

DATABASE_URL=connection-url

Optional: set API_URL to change the base URL used by internal UI API calls. Relative paths are served under BASE_PATH; absolute URLs are proxied through the local /api route. For example, API_URL=/internal-api or API_URL=https://api.example.com/api.

Optional: set TWO_FACTOR_ENCRYPTION_KEY to a 64-character hex string to enable two-factor authentication. Generate one with openssl rand -hex 32. Two-factor authentication is unavailable and cannot be required until this key is set.

The connection URL format:

postgresql://username:mypassword@localhost:5432/mydb

Build the Application

pnpm run build

The build step will create tables in your database if you are installing for the first time. It will also create a login user with username admin and password umami.

Start the Application

pnpm run start

By default, this will launch the application on http://localhost:3000. You will need to either proxy requests from your web server or change the port to serve the application directly.


🐳 Installing with Docker

Umami provides Docker images as well as a Docker compose file for easy deployment.

Docker image:

docker pull docker.umami.is/umami-software/umami:latest

Docker compose (Runs Umami with a PostgreSQL database):

docker compose up -d

🔄 Getting Updates

To get the latest features, simply do a pull, install any new dependencies, and rebuild:

git pull
pnpm install
pnpm build

To update the Docker image, simply pull the new images and rebuild:

docker compose pull
docker compose up --force-recreate -d

🛟 Support

GitHub Twitter LinkedIn Discord

Frequently asked questions

Is Umami free to use?

Umami is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Umami do?

Empower your website with privacy-focused analytics

What is Umami written in?

Umami is primarily written in TypeScript. Its source is publicly available at https://github.com/umami-software/umami, and it has 38,885 GitHub stars.

What is a good open source alternative to Google Analytics?

Umami is one of the open source options listed as an alternative to Google Analytics, Mixpanel, Mixpanel. Compare licences, stars and activity side by side on the Umami profile.