๐Ÿ“ˆ Umami

Umami makes monitoring traffic and site analytics easy. GDPR friendly, F/OSS and self hostable.

Umami

Umami (Code) is a lightweight, GDPR friendly analytics platform that's makes monitoring your site traffic easy!

Umami screenshot (source: umami.is)

We like Umami so much we use it here at AWSMFOSS.

There are a lot of closed and open source options in the analytics space, and many of them have wildly different feature sets:

  • Some track only page views
  • Some track user journeys
  • Some track funnels specifically (more sales focused)
  • Some try to record all interactions

Umami does a great job at doing simple and advanced functionality in the same project, and is completely Free and Open Source.

If you don't want to run it yourself, you can even use their hosted service and save yourself some time and hassle (it's FREE for hobbyists!):

Pricing โ€“ Umami

<Description of the project, who should use it, what it's for, etc>

๐ŸŒ  Features

Umami has a ton of features and is a strong candidate for any hobbyist or enterprise considering analytics

  • Basic page tracking with referrer, geographic region, browser stats and user agent parsing
  • Language detection
  • UTM tracking (custom attributes also allowed)
  • Reporting
  • Generic event tracking
  • Team and site based organization with authorization
  • Data comparison
  • Data anonymization
  • Data import and export

There's a lot more โ€“ check out the feature page to learn more!

๐Ÿค– As described by AI

The Umami software project is an open-source web analytics tool designed to provide privacy-focused analytics for websites. Unlike traditional analytics platforms, Umami does not collect personal data or track individual users, ensuring compliance with privacy laws such as GDPR and CCPA. It offers a simple and intuitive interface that allows website owners to monitor traffic, user behavior, and performance metrics without compromising visitor privacy.

Umami is lightweight and easy to deploy, making it an attractive option for developers and website administrators who prioritize privacy and data security. The tool is built with modern technologies and provides real-time data on page views, device types, and referrer sources, among other metrics. Users can self-host Umami, giving them full control over their data, or use cloud hosting options. Its open-source nature means that it is continually being improved by a community of contributors, making it a robust and flexible choice for web analytics.

๐Ÿ“บ Watch this

"Umami" is quite the difficult term to search for (and get this tool) in YouTube, but with "analytics" you'll find more of what you're searching for:

Umami is one of the most well known alternatives to Google Analytics these days, and it's a stable tool used by large and small companies alike.

๐Ÿ‘Ÿ Getting started

The Umami docs are excellent and worth a read:

Overview โ€“ Umami

If you want to skip all that though, we'll get you started quickly below.

๐Ÿณ With Docker

Since umami (the software) requires a database, we can use docker compose here to start it and it's dependencies:

---
version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      APP_SECRET: replace-me-with-a-random-string
    depends_on:
      db:
        condition: service_healthy
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
      interval: 5s
      timeout: 5s
      retries: 5
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - umami-db-data:/var/lib/postgresql/data
    restart: always
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 5
volumes:
  umami-db-data:

In production you're going to want to keep those credentials out of YAML that anyone can read, but importantly, you can see that there is an official image for Umami that you can easily run:

ghcr.io/umami-software/umami:postgresql-latest

Build software better, together
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.

While you don't have to deploy with docker compose, with the official image you can even use a hosted database like RDS or Neon to host your Postgres database and connect it to your Umami instance.

๐ŸŸข With NodeJS

Umami is a NodeJS project, so it can also be built and run with the local NodeJS software stack.

The typical NodeJS project setup applies which starts with cloning the software (ex. from GitHub) and:

npm install -g yarn # ensure that yarn is installed
cd umami # cd to where you git clone-d umami
yarn install # install dependencies

If running locally, before you build and run the project you'll have to set up a database locally, and configure Umami with the environment variables necessary to connect.

To start a temporary database (which will LOSE ALL DATA after you stop the container) you can run:

docker run \
  --rm \
  -p 5432:5432 \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=umami \
  --name umami-db \
  postgres:16-alpine

After the database is started, you must update your .env in the umami directory to include the database connection string Umami should use:

DATABASE_URL=postgres://postgres:umami@localhost:5432

Then you can build and start Umami locally:

yarn build
yarn start


๐Ÿง‘โ€๐Ÿ’ป Want to contribute?

Umami is a massively popular project with over 20k โญs! But that doesn't mean that you can't find somewhere to contribute. Head over to the issue tracker:

Issues ยท umami-software/umami
Umami is a simple, fast, privacy-focused alternative to Google Analytics. - Issues ยท umami-software/umami

The project has been MIT licensed from the beginning and it creates high quality releases regularly.

๐Ÿ“ฌ Want Awesome F/OSS in your inbox?

We'll send you new articles as soon as they go live.