Umami is a simple, fast, privacy-focused alternative to Google Analytics.
A detailed getting started guide can be found at https://umami.is/docs/
A fast way to get up and running is to use Railway
See Running on Railway to get started.
- A server with Node.js 12 or newer
- A database (MySQL or Postgresql)
npm install -g yarn
git clone https://github.com/mikecao/umami.git
cd umami
yarn install
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.
Create an .env
file with the following
DATABASE_URL=(connection url)
HASH_SALT=(any random string)
The HASH_SALT
is used to generate unique values for your installation.
The connection url is in the following format:
postgresql://username:mypassword@localhost:5432/mydb
postgresql://username:mypassword@localhost:5432/mydb?socket=/var/run/postgresql/
mysql://username:mypassword@localhost:3306/mydb
mysql://username:mypassword@localhost:3306/mydb?socket=/var/run/mysql/
Note when using the socket method, a hostname is still required but the value is ignored. See Prisma docs for Postgresql and MySQL for all available database configuration options.
yarn build
yarn 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.
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
To get the latest features, simply do a pull, install any new dependencies, and rebuild:
git pull
yarn install
yarn build
To update the Docker image, simply pull the new images and rebuild:
docker-compose pull
docker-compose up --force-recreate
MIT