Skip to content

Umami

Privacy-first web analytics you can self-host or use in the cloud, without cookies.

Stars
39.9k
Forks
8.5k
Licence
MIT
Language
TypeScript
Last update
4 days ago
Type
App

What it is

Umami is a web and product analytics platform that shows traffic, campaigns, user behavior, conversions, and revenue in one dashboard. It is designed to avoid cookies and tracking that identifies individual visitors. You can run it on your own server or use the hosted cloud version.

  • Track page views and visitor traffic on a website
  • Measure which marketing campaigns bring conversions
  • Review user behavior and journeys across pages
  • Monitor revenue alongside traffic data

Great for

  • Website owners who want traffic stats without a cookie banner
  • Teams that want to keep visitor data on their own server
  • Developers comfortable running a Node.js app with PostgreSQL
  • Marketers tracking campaigns and conversions in one place

Not ideal for

  • People who need zero server setup and do not want to run anything: the README's install path requires Node.js and PostgreSQL, though a cloud option exists
  • Users who need a MySQL or other database: the README only lists PostgreSQL requirements
  • Teams needing a detailed feature list beyond the README: the truncated README gives limited feature detail
Step-by-step guide: how to use UmamiInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Run with Docker

    You'll need: Node.js 18.18+ · PostgreSQL 12.14+ · pnpm (for source install) · Docker (for Docker install)

    Get the source and install packages

    git clone https://github.com/umami-software/umami.git

    Install dependencies

    pnpm install

    Build the application

    pnpm run build

    Start the application

    pnpm run start
  2. 2

    Run it

    • Create a .env file with DATABASE_URL pointing to your PostgreSQL database
    • Run pnpm run build to create database tables and the default admin login
    • Run pnpm run start
    • Open http://localhost:3000 and log in, then change the default password
  3. 3

    Get the most out of it

    • Set API_URL to change the base URL used by internal UI API calls
    • Set TWO_FACTOR_ENCRYPTION_KEY to enable two-factor authentication
    • Set MCP_ENABLED=1 and create an API key under Settings to use the /mcp endpoint
    • Put the app behind a reverse proxy such as nginx to serve it on a public domain

Downloads

Strengths

  • Privacy-focused design that the README says uses no cookies
  • Self-hostable or available as a cloud service
  • MIT licensed and actively maintained, with a large community

Trade-offs

  • Self-hosting requires Node.js 18.18+ and PostgreSQL 12.14+, so it is not a one-click setup from source
  • The build step creates a default admin login with a well-known password that must be changed
  • Two-factor authentication and the MCP endpoint need extra configuration

How it compares

ProjectStarsTypeLevelUpdatedBest for
umami (this)39.9kAppintermediate4 days agoWebsite owners who want traffic stats without a cookie banner
goaccess21.1kAppintermediate9 days agoSystem administrators who want quick traffic stats over SSH
uPlot10.6kLibraryintermediate6 days agoWeb developers who need a fast chart for large time series data
dashboards11kLibraryintermediate5.0 years agoDevelopers who need a starting layout for an internal analytics dashboard
duckdb42.7kLibrarybeginner4 days agoAnalysts who want to run SQL directly on CSV, Parquet, or JSON files
awesome-datascience30.3kCurated listbeginner5 days agoBeginners who want a guided set of links to start learning data science

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.