Self-hosted Analytics dengan Umami: Google Analytics Alternative yang Privacy-Friendly
Panduan lengkap setup Umami analytics self-hosted sebagai alternatif Google Analytics. Privacy-friendly, cepat, dan data sepenuhnya milik kamu.
- Mengapa Umami?
- Keunggulan Umami vs Google Analytics
- Kapan Harus Pakai Umami?
- Setup Umami dengan Docker
- Step 1: Persiapan
- Step 2: Clone Umami
- Step 3: Konfigurasi Environment
- Step 4: Buat Docker Compose
- Step 5: Jalankan Umami
- Step 6: Login
- Konfigurasi Website
- Step 1: Tambah Website
- Step 2: Dapatkan Tracking Code
- Step 3: Pasang di Website
- Setup di Astro (ByteNesia)
- Fitur Umami
- 1. Real-time Analytics
- 2. Custom Events
- 3. Goal Tracking
- 4. Custom Dashboard
- Backup dan Maintenance
- Backup Database
- Update Umami
- Monitoring
- Deploy Umami di Server
- Menggunakan Cloudflare Tunnel
- Security Hardening
- Perbandingan dengan Analytics Lain
- Studi Kasus: Umami untuk ByteNesia
- Kebutuhan:
- Solusi:
- Hasil:
- Kesimpulan
Google Analytics memang powerful, tapi ada harga yang harus dibayar: data pengunjung kamu dikirim ke Google. Bagi yang peduli privasi, Umami adalah alternatif yang sangat baik. Analytics yang sepenuhnya milik kamu, di-host di server kamu sendiri.
Mengapa Umami?
Keunggulan Umami vs Google Analytics
| Fitur | Umami | Google Analytics |
|---|---|---|
| Self-hosted | Ya | Tidak |
| Privacy-friendly | Ya (GDPR compliant) | Tidak |
| Open source | Ya | Tidak |
| Tanpa cookie | Ya | Tidak |
| Cepat | Sangat ringan | Berat |
| Data ownership | 100% milik kamu | Milik Google |
| Biaya | Gratis | Gratis (tapi data = bayaran) |
Kapan Harus Pakai Umami?
- Kamu peduli privasi pengunjung
- Kamu ingin data analytics tetap milik kamu
- Kamu tidak butuh fitur kompleks GA (funnel, attribution, dll)
- Kamu ingin analytics yang ringan dan cepat
- Kamu host website sendiri di homelab
Setup Umami dengan Docker
Step 1: Persiapan
Pastikan Docker dan Docker Compose sudah terinstall:
# Cek Docker
docker --version
# Cek Docker Compose
docker-compose --version
Step 2: Clone Umami
# Buat direktori
mkdir -p ~/umami && cd ~/umami
# Clone repository
git clone https://github.com/umami-software/umami.git .
# Masuk ke direktori
cd umami
Step 3: Konfigurasi Environment
# Copy environment template
cp .env.example .env
Edit file .env:
# Database
DATABASE_URL=postgresql://umami:your_password@db:5432/umami
DATABASE_TYPE=postgresql
# App
APP_SECRET=your_random_secret_key_here
Generate random secret:
# Generate random string
openssl rand -base64 32
Step 4: Buat Docker Compose
# docker-compose.yml
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:your_password@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: your_random_secret_key
depends_on:
db:
condition: service_healthy
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: your_password
volumes:
- umami-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U umami"]
interval: 5s
timeout: 5s
retries: 5
restart: always
volumes:
umami-db-data:
Step 5: Jalankan Umami
# Build dan jalankan
docker-compose up -d
# Cek status
docker-compose ps
# Lihat logs
docker-compose logs -f
Step 6: Login
Buka browser dan akses:
http://localhost:3000
Default credentials:
- Username:
admin - Password:
umami
Langsung ganti password setelah login pertama kali!
Konfigurasi Website
Step 1: Tambah Website
- Login ke Umami dashboard
- Klik + Add Website
- Isi nama dan URL website
- Klik Save
Step 2: Dapatkan Tracking Code
Setelah menambahkan website, Umami akan memberikan tracking code:
<script
defer
src="https://your-umami-domain.com/script.js"
data-website-id="your-website-id"
></script>
Step 3: Pasang di Website
Tambahkan tracking code sebelum tag </head> di website kamu:
<!DOCTYPE html>
<html>
<head>
<!-- ... meta tags lainnya ... -->
<script
defer
src="https://your-umami-domain.com/script.js"
data-website-id="your-website-id"
></script>
</head>
<body>
<!-- ... konten website ... -->
</body>
</html>
Setup di Astro (ByteNesia)
Jika kamu menggunakan Astro seperti ByteNesia:
---
// src/layouts/BaseLayout.astro
---
<!DOCTYPE html>
<html lang="id">
<head>
<!-- ... meta tags lainnya ... -->
<!-- Umami Analytics -->
<script
defer
src="https://analytics.bytenesia.afrizalab.my.id/script.js"
data-website-id="your-website-id"
></script>
</head>
<body>
<slot />
</body>
</html>
Fitur Umami
1. Real-time Analytics
Umami menampilkan data real-time tanpa delay. Kamu bisa melihat:
- Visitor aktif saat ini
- Halaman yang sedang dilihat
- Referrer sources
- Browser dan device info
2. Custom Events
Kamu bisa track custom events:
// Track button click
umami.track('button-click', { button: 'subscribe' });
// Track form submission
umami.track('form-submit', { form: 'contact' });
// Track file download
umami.track('file-download', { file: 'ebook.pdf' });
3. Goal Tracking
Setup goals untuk track konversi:
- Newsletter signup
- Product purchase
- Form submission
- Time on page
4. Custom Dashboard
Buat dashboard yang sesuai kebutuhan kamu:
- Halaman paling populer
- Referrer terbaik
- Browser distribution
- Country/city analytics
Backup dan Maintenance
Backup Database
# Backup Umami database
docker exec umami-db-1 pg_dump -U umami umami > umami-backup.sql
# Restore database
cat umami-backup.sql | docker exec -i umami-db-1 psql -U umami umami
Update Umami
# Pull update terbaru
docker-compose pull
# Restart dengan update
docker-compose up -d
# Cleanup image lama
docker image prune
Monitoring
# Cek resource usage
docker stats umami
# Cek logs
docker-compose logs --tail=100 umami
Deploy Umami di Server
Menggunakan Cloudflare Tunnel
Jika kamu ingin mengakses Umami dari mana saja:
# Tambahkan route di Cloudflare Tunnel config
# /etc/cloudflared/config.yml
ingress:
- hostname: analytics.yourdomain.com
service: http://localhost:3000
- service: http_status:404
Security Hardening
# Batasi akses hanya dari IP tertentu
# Di nginx config:
location / {
allow 192.168.1.0/24;
deny all;
proxy_pass http://localhost:3000;
}
Perbandingan dengan Analytics Lain
| Fitur | Umami | Plausible | Matomo | GA4 |
|---|---|---|---|---|
| Self-hosted | Ya | Ya (bayar) | Ya | Tidak |
| Harga | Gratis | $9/bulan | Gratis | Gratis |
| GDPR | Ya | Ya | Ya | Tidak |
| Cookie | Tidak | Tidak | Ya | Ya |
| Open source | Ya | Ya | Ya | Tidak |
| Performance | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
Studi Kasus: Umami untuk ByteNesia
Kebutuhan:
- Track visitor tanpa Google Analytics
- Privacy-friendly untuk pengunjung Indonesia
- Data analytics tetap milik sendiri
- Tidak butuh fitur kompleks GA4
Solusi:
- Platform: Umami di Docker
- Database: PostgreSQL
- Domain: analytics.bytenesia.afrizalab.my.id
- Server: Homelab yukikatherina
Hasil:
- Real-time analytics tanpa cookie
- Page views, referrers, devices tertrack
- Data 100% milik sendiri
- Loading time website lebih cepat (tanpa GA script)
Kesimpulan
Umami adalah alternatif Google Analytics yang sangat baik untuk kamu yang peduli privasi dan ingin memiliki data analytics sendiri. Setup-nya mudah dengan Docker, fiturnya cukup untuk kebutuhan analytics basic, dan yang terpenting, data pengunjung kamu tetap milik kamu.
Artikel Terkait
Memulai Homelab: Panduan Lengkap untuk Pemula
Pelajari cara membangun homelab sendiri dari nol. Dari pemilihan hardware hingga setup software, semuanya dijelaskan secara lengkap.
HomelabMonitoring Server dengan Grafana & Prometheus
Panduan monitoring homelab dengan Grafana dan Prometheus. Install node_exporter, scrape metrics, buat dashboard, dan pasang alert supaya masalah ketahuan lebih awal.
HomelabBackup & Restore Homelab: Panduan Agar Data Tidak Hilang
Panduan lengkap backup dan restore homelab. Strategi 3-2-1, backup VM/LXC dengan Proxmox, backup Docker volume, dan cara memastikan backup bisa dipulihkan.
Ide kamu layak dibaca ribuan orang.
ByteNesia dibangun untuk semua orang. Kalau kamu punya pengalaman, tutorial, atau opini tentang teknologi, tulis dan bagikan lewat sini. Nama kamu akan tercantum sebagai kontributor.
Tulis apa saja: review tools, tutorial homelab, tips security, atau cerita pengalaman tech kamu.