Umami is an open-source web and product analytics platform. Understand acquisition, behavior, conversion, and retention with privacy-first analytics — no cookies, self-hosted or in the cloud.
A detailed getting started guide can be found at umami.is/docs.
- A server with Node.js version 20.19+ (22 LTS recommended).
- A PostgreSQL database version v12.14+.
git clone https://github.com/umami-software/umami.git
cd umami
pnpm installCreate an .env file with the following:
DATABASE_URL=connection-url
APP_SECRET=random-string # generate with: openssl rand -hex 32The connection URL format:
postgresql://username:mypassword@localhost:5432/mydbpnpm run buildThe 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. You will be required to change this password after signing in.
pnpm run startBy 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.
To bind to the HOSTNAME and PORT set in your .env file, start with pnpm run start:env instead.
Umami provides Docker images as well as a Docker compose file for easy deployment.
Docker image:
docker pull docker.umami.is/umami-software/umami:latestDocker compose (Runs Umami with a PostgreSQL database):
docker compose up -dTo get the latest features, simply do a pull, install any new dependencies, and rebuild:
git pull
pnpm install
pnpm buildTo update the Docker image, simply pull the new images and rebuild:
docker compose pull
docker compose up --force-recreate -d