February 3, 2021

282 words 2 mins read



Umami is a simple, fast, website analytics alternative to Google Analytics.

repo name mikecao/umami
repo link https://github.com/mikecao/umami
homepage https://umami.is
language JavaScript
size (curr.) 1994 kB
stars (curr.) 6196
created 2020-07-17
license MIT License


Umami is a simple, fast, website analytics alternative to Google Analytics.

Getting started

A detailed getting started guide can be found at https://umami.is/docs/

Installing from source


  • A server with Node.js 10.13 or newer
  • A database (MySQL or Postgresql)

Get the source code and install packages

git clone https://github.com/mikecao/umami.git
cd umami
npm install

Create database tables

Umami supports MySQL and Postgresql. Create a database for your Umami installation and install the tables with the included scripts.

For MySQL:

mysql -u username -p databasename < sql/schema.mysql.sql

For Postgresql:

psql -h hostname -U username -d databasename -f sql/schema.postgresql.sql

This will also create a login account with username admin and password umami.

Configure umami

Create an .env file with the following

DATABASE_URL=(connection url)
HASH_SALT=(any random string)

The connection url is in the following format:



The HASH_SALT is used to generate unique values for your installation.

Build the application

npm run build

Start the application

npm 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

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

docker pull ghcr.io/mikecao/umami:postgresql-latest

Or with MySQL support:

docker pull ghcr.io/mikecao/umami:mysql-latest

Getting updates

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

git pull
npm install
npm run build



comments powered by Disqus