๐ Umami
Umami makes monitoring traffic and site analytics easy. GDPR friendly, F/OSS and self hostable.
Umami (Code) is a lightweight, GDPR friendly analytics platform that's makes monitoring your site traffic easy!
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!):
<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:
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
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:
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.