Yan edcf5bd407 stabilize event chart colors per label
Colors in the events-tab chart were assigned by the dataset index from
Object.keys(map), so changing the date range or reloading the page
reshuffled keys and produced a different color for the same event each
time.

Pick the palette slot deterministically from a hash of the label
(hex6 / FNV-1a), and walk the palette greedily in hash-sorted order so
the assignment is independent of the API response order. When two
labels prefer the same slot, the later one steps to the next free
slot, so the visible set of up to 12 events all get distinct colors.
The right shift on the hash sidesteps the FNV-1a low-bit bias mod 12
(FNV prime is close to 2^24).
2026-05-08 08:00:11 -04:00
2025-04-17 19:08:25 +02:00
2026-04-14 09:27:07 -07:00
2026-04-24 08:58:39 +03:00
2026-03-06 09:58:43 -08:00
2022-12-27 21:38:23 -08:00
2025-12-03 23:01:22 -08:00
2026-05-01 15:34:07 -07:00
2025-03-31 22:49:34 -05:00
2022-12-26 20:50:55 -08:00
2026-04-15 22:02:48 -07:00
2025-10-16 02:42:13 -07:00
2025-04-29 09:53:11 -07:00
2025-04-29 14:36:52 -07:00
2025-11-21 21:35:11 -08:00
2025-09-01 16:17:55 -07:00
2025-09-03 17:16:03 -07:00

Umami Logo

Umami

Umami is a simple, fast, privacy-focused alternative to Google Analytics.

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

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

S
Description
No description provided
Readme MIT
30 MiB
Languages
TypeScript 96.6%
JavaScript 2.7%
CSS 0.6%