Umami is a simple, fast, privacy-focused alternative to Google Analytics.
Configuration necessary to deploy Umami to Vercel are the following steps:
- Follow instructions for setting up a Vercel Project here
- Create Storage on your preferred provider, e.g. Vercel, Supabase, etc.
- Create GitHub Secrets for
VERCEL_ORG_ID
,VERCEL_PROJECT_ID
,VERCEL_TOKEN
, andDATABASE_URL
- Configuration in Vercel should look like this: Also, you should set Node version to 18.x in Vercel settings.
After this you can either manually trigger deployment to Vercel at your GitHub Actions with Vercel Preview Deployment
or Vercel Production Deployment
.
A detailed getting started guide can be found at umami.is/docs.
- A server with Node.js version 16.13 or newer
- A database. Umami supports MySQL (minimum v8.0) and PostgreSQL (minimum v12.14) databases.
npm install -g yarn
git clone https://github.com/umami-software/umami.git
cd umami
yarn install
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
yarn 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.
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 -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
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