Cara Install Umami Web Analytics di Ubuntu 20.04
Umami adalah web analytics yang mengusung kesederhanaan, mudah digunakan, dan dapat di-hosting di server sendiri (self-hosted).
Umami ditargetkan dapat menjadi alternatif dari Google Analytics, berfokus pada privasi dan open source. Umami hanya mengumpulkan metrik yang dibutuhkan dan ditampilkan dalam satu halaman.
Tutorial Server
Server dan perangkat lunak yang digunakan pada tutorial kali ini:
- VPS Ubuntu 20.04
- Node.js 16 LTS install via NVM
- MariaDB 10.3
- Git
- PM2
- Nginx
- SSL Let’s Encrypt
- Subdomain umami.musaamin.my.id
Install Node.js
Node.js diinstall dengan menggunakan NVM (Node Version Manager).
1 2 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc |
Install Node.js versi LTS terbaru.
1 | nvm install --lts |
Install packages umami
Clone umami repository dan install.
1 2 3 | git clone https://github.com/mikecao/umami.git cd umami npm install |
Install MariaDB
Install MariaDB database.
1 | apt install mariadb-server -y |
Membuat database untuk umami.
1 2 3 4 5 6 | mysql create database umami; grant all privileges on umami.* to 'umami'@'localhost' identified by 'rahasia'; flush privileges; exit |
Import struktur database untuk umami.
1 | mysql -u umami -p umami < sql/schema.mysql.sql |
Konfigurasi
Membuat file konfigurasi .env.
1 | nano .env |
Masukkan konfigurasi koneksi database dan hash salt.
1 2 | DATABASE_URL=mysql://umami:rahasia@localhost:3306/umami HASH_SALT=randomstring |
Build dan Start
Build aplikasi.
1 | npm run build |
Jalankan umami.
1 | npm start |
Secara default berjalan di port 3000, akses http://IP_SERVER:3000 atau http://localhost:3000.
Jika port 3000 sudah ada yang memakai, gunakan nomor port lain, misal 7000.
1 | npx next start -p 7000 |
Tekan CTRL+C untuk menghentikan server.
Nginx Reverse Proxy
Install PM2 untuk process manager.
1 2 3 | npm install pm2 -g PORT=7000 pm2 start npm --name umami -- start pm2 save |
Install Nginx.
1 | apt install nginx -y |
Membuat file Nginx server block untuk umami.
1 | nano /etc/nginx/conf.d/umami.conf |
Masukkan konfigurasi berikut, sesuaikan server_name dan nomor port yang digunakan.
1 2 3 4 5 6 7 8 9 10 | server { server_name umami.musaamin.my.id; location / { proxy_pass http://localhost:7000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } |
Restart Nginx.
1 | systemctl restart nginx |
Install SSL Let’s Encrypt
Install certbot Let’s Encrypt untuk Nginx.
1 | apt install certbot python3-certbot-nginx -y |
Request SSL untuk server_name umami.
1 | certbot --non-interactive -m email@example.com --agree-tos --no-eff-email --nginx -d umami.musaamin.my.id --redirect |
Akses https://server_name, login dengan menggunakan username admin dan password umami.
Selamat mencoba 🙂