Cara Install Plausible Analytics di Ubuntu 20.04
Plausible adalah web analytics yang ringan dengan lisensi open source. Plausible memposisikan diri sebagai alternatif dari Google Analytics, sederhana, menghormati privasi, dan sesuai dengan aturan privasi dan perlindungan data seperti GDPR, CCPA, dan PECR.
Plausible tersedia dalam versi dua versi yaitu cloud dengan biaya $9/bulan untuk 10.000 pageviews dan self-hosted yang dapat diinstall di server milik sendiri.
Tutorial Server
Server dan perangkat lunak yang digunakan pada tutorial kali ini:
- VPS Ubuntu 20.04
- Docker 20.10
- Docker Compose 2.2
- Git
- Subdomain plausible.musaamin.my.id
- Nginx reverse proxy
- SSL Let’s Encrypt
Install Docker
Plausible self-hosted berjalan di atas Docker container. Install Docker terlebih dahulu.
Update package index dan install dependensi.
1 2 | apt update apt install apt-transport-https ca-certificates curl gnupg lsb-release -y |
Downlod GPG key untuk Docker.
1 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg |
Pasang Docker repository.
1 2 3 | echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
Update kembali dan install docker-ce.
1 2 | apt update apt install docker-ce docker-ce-cli containerd.io -y |
Install docker-compose.
1 2 | wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -O /usr/bin/docker-compose chmod +x /usr/bin/docker-compose |
Cloning Plausible
Download plausible/hosting repository.
1 2 3 | apt install git -y git clone https://github.com/plausible/hosting cd hosting |
Required Configuration
Generate 64 karakter secret key, copy key hasil generate.
1 | openssl rand -base64 64 | tr -d '\n' ; echo |
Buka file plausible-conf.env.
1 | nano plausible-conf.env |
Masukkan key hasil generate di SECRET_KEY_BASE dan masukkan juga konfigurasi untuk admin dan url.
1 2 3 4 5 | ADMIN_USER_EMAIL=trial@musaamin.web.id ADMIN_USER_NAME=musa ADMIN_USER_PWD=rahasia BASE_URL=https://plausible.musaamin.my.id SECRET_KEY_BASE=UHdvHlsryH3yvpEvd0TJEnrovwAi5r4gnWXLED9ahmFlSGlrBnV/+/GwIGw29db4Go3cmADmXX7ojY+GpYvOfA== |
Jalankan Server
Jalankan server dengan menggunakan docker-compose.
1 | docker-compose up -d |
Ketika perintah di atas dijalankan pertama kali hal yang dikerjakan adalah:
- Membuat Postgres database untuk user data
- Membuat Clickhouse database untuk statistik
- Menjalankan migrations database untuk membuat schema
- Membuat akun admin
- Menjalankan server pada port 8000
Nginx Reverse Proxy
Secara default Plausible berjalan di protokol HTTP pada port 8000 dan diakses dengan menggunakan IP address. Direkomendasikan untuk menjalankan Plausible dengan HTTPS di belakang reverse proxy misalnya dengan Nginx.
Install Nginx.
1 | apt install nginx -y |
Membuat file server block Nginx untuk Plausible.
1 | nano /etc/nginx/conf.d/plausible.conf |
Masukkan konfigurasinya, sesuaikan nama domain (server_name) yang digunakan.
1 2 3 4 5 6 7 8 9 10 11 | server { server_name plausible.musaamin.my.id; listen 80; listen [::]:80; location / { proxy_pass http://127.0.0.1:8000; 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 domain Plausible.
1 | certbot --non-interactive -m email@example.com --agree-tos --no-eff-email --nginx -d plausible.musaamin.my.id --redirect |
Akses https://server-name, Plausible siap digunakan, login dengan menggunakan akun admin yang dikonfigurasikan sebelumnya pada file plausible-conf.env.
Selamat mencoba 🙂