umami/README.md

3.2 KiB

umami

Umami is a simple, fast, privacy-focused alternative to Google Analytics.

Getting started

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

Installing from source

Requirements

  • A server with Node.js version 12 or newer
  • A database. Umami supports MySQL and Postgresql databases.

Install Yarn

npm install -g yarn

Get the source code and install packages

git clone https://github.com/umami-software/umami.git
cd umami
yarn install

Configure umami

Create an .env file with the following

DATABASE_URL=connection-url

The connection url is in the following format:

postgresql://username:mypassword@localhost:5432/mydb

mysql://username:mypassword@localhost:3306/mydb

Build the application

yarn build

Create database tables

yarn update-db

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

Start the application

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.

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 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
yarn install
yarn build

To update the Docker image, simply pull the new images and rebuild:

docker compose pull
docker compose up --force-recreate

Setting up a local development environment for Umami

If you want to run Umami locally for development purposes, you can follow these instructions.

Prerequisites:

  • nvm
  • Docker
  • Yarn
  1. Set correct Node version and install dependencies:
nvm use
npm i
  1. Run the development Dockerfile which will start PostgreSQL and Adminer (for database administration)
docker-compose -f docker-compose.development.yml up 
  1. Create an .env file with the following content:
DATABASE_URL=postgresql://umami:umami@localhost:54320/umami
  1. Run:
ln -s ./db/postgresql prisma
npm run build-db-client

This will synlink the schema from db/postgresql to prisma/ and generate your Prisma client.

  1. Run migrations
yarn update-db
  1. Start the server
yarn dev

You can now visit: http://localhost:3000/

  1. Debug database

An Adminer instance is provided, you can reach it at: http://localhost:8080/

  1. Database migrations

You can generate a database migration like this:

  1. Make a change in schema.prisma
  2. Run npx prisma migrate dev --name my_cool_migration

License

MIT