How to Install Umami on Ubuntu 20.04
-
by cobra_admin
- 72
Introduction
Umami is a self-hosted web analytics alternative to Google Analytics that focuses on privacy. This guide explains how to install Umami on Ubuntu 20.04.
Requirements
- Deploy a fully updated Ubuntu 20.04 server with at least 2 GB of RAM.
- Create a fully qualified domain name for the server, such as umami.example.com.
- Install Node.JS and NVM.
- Install MySQL.
1. Create the Database
- SSH to your server as root.
- Log in to MySQL as root.
# mysql -u root
- Create a
umami
database and aumami_connect
user. Replace StrongPassword with a unique password.mysql> CREATE DATABASE umami; CREATE USER 'umami_connect'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPassword'; GRANT ALL PRIVILEGES ON umami.* TO 'umami_connect'@'localhost'; FLUSH PRIVILEGES;
- Exit MySQL.
mysql> QUIT;
2. Install Umami
- Clone the GitHub repository.
# git clone https://github.com/mikecao/umami.git
- Change to the umami directory.
# cd umami
- Install the necessary dependencies.
# npm install
- Configure the database for Umami. When prompted, enter the password you chose for the umami_connect user.
# mysql -u umami_connect -p umami < sql/schema.mysql.sql
- Create an environment file for Umami.
# nano .env
- Paste the following to the file. Replace StrongPassword with the password you chose when you created the database. Replace the value of HASH_SALT with a unique value.
DATABASE_URL=mysql://umami_connect:StrongPassword@localhost:3306/umami HASH_SALT=Replace_This_With_A_Unique_Value HOSTNAME=127.0.0.1 PORT=3010
- Save and exit the file.
- Build Umami.
# npm run build
- Install PM2 to automatically restart Umami in case of error or reboot.
# npm install pm2 -g
- Launch Umami with pm2
# pm2 start npm --name "umami" -- run start-env
- Generate a pm2 startup script and save the configuration.
# pm2 startup # pm2 save
3. Install Caddy as a Proxy Server
By default, Umami is only accessible from localhost. To expose Umami to the internet, use Caddy to proxy the connection and manage SSL certificates.
- Install Caddy.
# apt install -y debian-keyring debian-archive-keyring apt-transport-https # curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc # curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # apt update # apt install caddy
- Edit the CaddyFile.
# nano /etc/caddy/Caddyfile
- Replace the contents of Caddyfile with the following. Replace
umami.example.com
with your server’s domain name.umami.example.com reverse_proxy 127.0.0.1:3010
- Save and exit the file.
- Start Caddy.
# caddy run
- Verify Caddy is running and configured to restart after a reboot.
# systemctl status caddy
4. Test Umami
In your web browser, navigate to your server’s domain name with HTTPS. For example:
https://umami.example.com
Log in as:
- Username: admin
- Password: umami
Introduction Umami is a self-hosted web analytics alternative to Google Analytics that focuses on privacy. This guide explains how to install Umami on Ubuntu 20.04. Requirements Deploy a fully updated Ubuntu 20.04 server with at least 2 GB of RAM. Create a fully qualified domain name for the server, such as umami.example.com. Install Node.JS and…
Introduction Umami is a self-hosted web analytics alternative to Google Analytics that focuses on privacy. This guide explains how to install Umami on Ubuntu 20.04. Requirements Deploy a fully updated Ubuntu 20.04 server with at least 2 GB of RAM. Create a fully qualified domain name for the server, such as umami.example.com. Install Node.JS and…