Umami is a modern, privacy-focused alternative to Google Analytics. https://umami.is
Find a file
Gavin Mogan bf4e6ea96f Migrate to docker actions
Originally just wanted to add the standard opencontainer labels that
docker/metadata provide

but with "mr-smithers-excellent" seemed to only half implement docker
support, and a higher risk than docker for supply chain issues, so I
went all out and also added cosign to sign the images.

Docker metadata tags supports all the custom code to create version
tags, out of the box and fully maintained

Also dropped the manual workflow, just merged it into cd.yml since you
can select tags when you manual dispatch, and thats less to maintain
2025-09-06 07:06:23 -07:00
.github Migrate to docker actions 2025-09-06 07:06:23 -07:00
.husky Fix build issues. 2021-11-22 14:53:36 -08:00
cypress Added optional website ID for creation 2025-07-06 21:18:04 +01:00
db create and apply mysql migrations 2025-07-18 10:26:24 -07:00
podman Fixed typo in README.md 2025-04-17 19:08:25 +02:00
public Merge pull request #3471 from sufyanfa/feat/ar-translation 2025-06-10 11:52:17 -07:00
scripts create and apply mysql migrations 2025-07-18 10:26:24 -07:00
src fix: put Google in the right order of grouped domains 2025-08-28 08:29:30 +02:00
.dockerignore Updated packages. 2023-04-21 14:39:06 -07:00
.eslintrc.json update cypress tests, update zod validation error messaging to UI 2025-03-07 13:06:38 -08:00
.gitignore chore: finish migration of yarn/npm to pnpm everywhere 2025-08-22 16:21:57 -07:00
.prettierignore Updated packages. 2023-04-21 14:39:06 -07:00
.prettierrc.json Initial commit. 2020-07-17 01:03:38 -07:00
.stylelintrc.json Added search to filter dropdown. Updated eslint packages. 2024-02-29 21:18:34 -08:00
app.json Changed HASH_SALT to APP_SECRET. 2022-12-27 21:38:23 -08:00
cypress.config.ts add api-testing to cypress tests 2025-03-12 10:32:54 -07:00
docker-compose.yml ♻️ refactor(docker): remove versioning in docker compose file as it's deprecated 2025-02-21 15:04:48 +05:30
Dockerfile Fixed wrong Prisma version in Docker. 2025-05-09 17:16:24 -07:00
jest.config.ts Fix test. 2025-03-31 22:49:34 -05:00
lang-ignore.json Update mn-MN.json 2024-02-05 14:21:16 +08:00
LICENSE Updated packages. 2022-12-26 20:50:55 -08:00
netlify.toml Adds @netlify/plugin-nextjs package & fixed dashboard link id 2022-10-25 15:01:49 +01:00
next-env.d.ts Updated report icon. Removed failing test. 2025-04-14 14:43:16 -07:00
next.config.mjs Converted variables to be runtime. 2025-07-24 22:41:23 -07:00
package.components.json add date-fns-tz 2024-05-04 13:36:08 -07:00
package.json Added download functionality. 2025-07-22 00:24:37 -07:00
pnpm-lock.yaml Added download functionality. 2025-07-22 00:24:37 -07:00
pnpm-workspace.yaml Added workspace file. 2025-04-29 10:41:12 -07:00
README.md chore: finish migration of yarn/npm to pnpm everywhere 2025-08-22 16:21:57 -07:00
rollup.components.config.mjs Removed FormattedMessage usage. 2025-02-07 10:40:30 -08:00
rollup.tracker.config.mjs Updated packages. Next 15.3.1. Prisma 6.7.0. 2025-05-01 00:35:10 -07:00
tsconfig.json Fix test. 2025-03-31 22:49:34 -05: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 or newer
  • A database. Umami supports MariaDB (minimum v10.5), MySQL (minimum v8.0) and PostgreSQL (minimum v12.14) databases.

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
mysql://username:mypassword@localhost:3306/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

To build the Umami container and start up a Postgres database, run:

docker compose up -d

Alternatively, to pull just the Umami Docker image with PostgreSQL support:

docker pull docker.umami.is/umami-software/umami:postgresql-latest

Or with MySQL support:

docker pull docker.umami.is/umami-software/umami:mysql-latest

🔄 Getting Updates

To get the latest features, simply do a pull, install any new dependencies, and rebuild:

git pull
pnpm install
pnpm run 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