Mengapa Uptime Kuma?
Dalam dunia infrastruktur digital, pemantauan (monitoring) adalah kunci untuk memastikan ketersediaan layanan (uptime) yang maksimal. Gagalnya layanan sekecil apa pun dapat berdampak langsung pada reputasi dan pendapatan.
Uptime Kuma muncul sebagai pilihan unggulan di kalangan komunitas self-hosted karena berbagai alasan:
Antarmuka Modern: Dasbor yang menarik, responsif, dan mudah dipahami, menawarkan tampilan status yang jelas dan ringkas.
Notifikasi Komprehensif: Mendukung berbagai layanan notifikasi populer, seperti Telegram, Discord, Slack, Email, Webhook, dan puluhan lainnya.
Ringan dan Efisien: Dibangun dengan Node.js, ia sangat ringan, ideal untuk di-deploy di Virtual Machine (VM) atau container berdaya rendah.
Metode Pemantauan Beragam: Mampu memantau HTTP/S, TCP, Ping, Port Monitoring, Certificate Expiry, hingga Status Page khusus.
Untuk panduan ini, kita akan memilih metode instalasi yang paling umum dan terkelola dengan baik: Docker Compose. Metode ini memberikan isolasi, kemudahan upgrade, dan portabilitas yang superior dibandingkan instalasi bare-metal. Server target adalah Ubuntu 24.04 LTS.
Pilar 1: Persiapan Server Ubuntu 24.04
Sebelum menginstal Uptime Kuma, server Ubuntu Anda harus dalam kondisi prima dan memiliki semua prerequisite yang diperlukan.
1.1 Pembaruan Sistem dan Prasyarat
Selalu mulai dengan memperbarui daftar paket dan meng-upgrade sistem untuk memastikan keamanan dan stabilitas.
# Perbarui daftar paket
sudo apt update
# Upgrade paket yang terinstal
sudo apt upgrade -y
# Instal paket-paket dasar yang mungkin dibutuhkan
sudo apt install -y curl wget git vim ca-certificates lsb-release
1.2 Menginstal Docker Engine dan Docker Compose
Uptime Kuma akan berjalan di dalam container Docker. Docker Compose akan menyederhanakan proses deployment dan manajemen. Kita akan menginstal Docker dari repository resmi Docker untuk mendapatkan versi terbaru yang stabil.
Langkah A: Menambahkan Docker Repository
# Hapus versi Docker lama (jika ada)
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done
# Tambahkan GPG key resmi Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Tambahkan repository Docker ke daftar sumber APT
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Perbarui daftar paket lagi dengan repository Docker
sudo apt update
Langkah B: Instalasi Docker dan Docker Compose
# Instal Docker Engine, containerd, dan Docker Compose
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Langkah C: Konfigurasi Izin Pengguna
Untuk menghindari penggunaan sudo setiap kali menjalankan perintah Docker, tambahkan user Anda ke grup docker.
# Ganti $USER dengan username Anda (misalnya: ubuntu)
sudo usermod -aG docker $USER
# Untuk menerapkan perubahan grup, Anda perlu log out dan log in kembali, atau jalankan perintah berikut:
newgrp docker
Langkah D: Verifikasi Instalasi
Jalankan container uji coba Docker:
docker run hello-world
Jika instalasi berhasil, Anda akan melihat pesan yang mengatakan: “Hello from Docker!”.
Pilar 2: Deployment Uptime Kuma dengan Docker Compose
Sekarang kita akan membuat file konfigurasi yang diperlukan untuk menjalankan Uptime Kuma secara persisten.
2.1 Struktur Direktori dan Data Persisten
Penting untuk menyimpan data Uptime Kuma (termasuk database, konfigurasi, dan logs) di luar container. Hal ini memungkinkan container untuk di-upgrade atau diganti tanpa kehilangan data.
# Buat direktori untuk konfigurasi Uptime Kuma
mkdir -p uptime-kuma
cd uptime-kuma
# Buat direktori data persisten
mkdir -p ./data
2.2 Membuat File docker-compose.yml
Buat dan edit file konfigurasi docker-compose.yml di dalam direktori uptime-kuma.
vim docker-compose.yml
Masukkan konten berikut. Konfigurasi ini menggunakan image resmi Uptime Kuma dan mengikat volume data ke direktori data lokal Anda.
version: '3.7'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
# Volume untuk data persisten
- ./data:/app/data
# Volume untuk soket Docker (opsional, jika Anda ingin memonitor container Docker di host yang sama)
# - /var/run/docker.sock:/var/run/docker.sock
ports:
# Port 3001 di host akan diarahkan ke port 3001 di container
- 3001:3001
restart: always
environment:
# Opsi untuk zona waktu, opsional
- TZ=Asia/Jakarta
2.3 Menjalankan Kontainer
Simpan file docker-compose.yml dan jalankan deployment dengan Docker Compose:
# Unduh image dan jalankan kontainer di latar belakang (-d)
docker compose up -d
Verifikasi Kontainer
Periksa status container Anda:
docker ps
Anda harus melihat container uptime-kuma dengan status Up dan port 3001/tcp terdaftar.
Pilar 3: Konfigurasi Web Server (Reverse Proxy Nginx)
Meskipun Uptime Kuma sudah berjalan di port 3001, mengaksesnya melalui http://alamat-ip:3001 tidak ideal. Untuk keamanan, kredibilitas, dan kemudahan akses, kita akan mengonfigurasi Nginx sebagai Reverse Proxy dan menambahkan SSL/TLS (HTTPS) menggunakan Certbot.
3.1 Instalasi Nginx dan Certbot
# Instal Nginx
sudo apt install -y nginx
# Instal Certbot dan plugin Nginx untuk manajemen SSL
sudo apt install -y python3-certbot-nginx
3.2 Konfigurasi Server Block Nginx
Asumsikan Anda ingin mengakses Uptime Kuma melalui subdomain, misalnya monitor.domainanda.com.
Buat file konfigurasi server block Nginx:
Bashsudo vim /etc/nginx/sites-available/uptime_kumaMasukkan konfigurasi Nginx berikut. Konfigurasi ini menangani Reverse Proxy dan WebSocket (penting untuk fitur real-time Uptime Kuma):
Nginxserver { listen 80; server_name monitor.domainanda.com; # Redirect semua HTTP ke HTTPS (akan diaktifkan oleh Certbot) return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name monitor.domainanda.com; # Konfigurasi SSL (akan diisi oleh Certbot) # ssl_certificate /etc/letsencrypt/live/monitor.domainanda.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/monitor.domainanda.com/privkey.pem; # Konfigurasi Keamanan Tambahan ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d; ssl_protocols TLSv1.3; ssl_prefer_server_ciphers off; # Reverse Proxy untuk Uptime Kuma location / { proxy_pass http://localhost:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Konfigurasi Penting untuk WebSocket (Real-Time Updates) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; # Mengatasi timeout untuk koneksi panjang (WebSocket) } }Aktifkan server block dan uji konfigurasi Nginx:
Bash# Ganti "monitor.domainanda.com" dengan domain Anda sudo ln -s /etc/nginx/sites-available/uptime_kuma /etc/nginx/sites-enabled/ sudo nginx -t # Reload Nginx sudo systemctl reload nginx
3.3 Mengamankan dengan SSL/TLS (HTTPS)
Gunakan Certbot untuk mendapatkan dan menginstal sertifikat SSL gratis dari Let’s Encrypt.
# Pastikan port 80/443 terbuka di firewall!
sudo certbot --nginx -d monitor.domainanda.com
Certbot akan meminta alamat email dan persetujuan persyaratan, lalu secara otomatis memodifikasi file Nginx Anda dengan path sertifikat yang benar.
Pilar 4: Konfigurasi Uptime Kuma dan Finalisasi
Sekarang, Anda dapat mengakses dasbor Uptime Kuma melalui URL aman Anda (https://monitor.domainanda.com).
4.1 Akses Awal dan Pembuatan Akun
Buka browser Anda dan navigasikan ke domain yang sudah Anda siapkan.
Anda akan disambut oleh layar setup awal.
Buat Akun Administrator:
Username: Masukkan username pilihan Anda (misalnya,
admin).Password: Masukkan kata sandi yang sangat kuat.
Timezone: Pilih zona waktu yang sesuai (misalnya,
Asia/Jakarta).
Klik “Create”. Anda akan diarahkan ke dasbor utama.
4.2 Menambahkan Monitor Pertama
Untuk menguji sistem, mari kita tambahkan monitor HTTP/S pertama Anda.
Di dasbor, klik “Add New Monitor”.
Monitor Type: Pilih “HTTP(s)”.
Friendly Name: Beri nama yang mudah diingat (misalnya,
Website Utama).URL: Masukkan URL lengkap situs web yang ingin Anda pantau.
Interval: Biarkan default (60 detik) atau setel lebih pendek jika diperlukan.
Klik “Save”.
Uptime Kuma akan segera mulai melakukan ping ke URL tersebut dan menampilkan hasilnya di dasbor. Jika status berwarna hijau (UP), instalasi Anda sukses sepenuhnya.
4.3 Mengatur Notifikasi
Salah satu fitur terbaik Uptime Kuma adalah notifikasi.
Di dasbor, klik “Settings” di kanan atas.
Pilih “Notification” di panel kiri.
Klik “Setup Notification” dan pilih penyedia yang Anda inginkan (misalnya, Telegram).
Masukkan kredensial yang diminta (seperti Chat ID dan Bot Token untuk Telegram).
Klik “Test” untuk memastikan notifikasi berfungsi, lalu “Save”.
Anda dapat mengaitkan Service notifikasi ini ke monitor spesifik saat mengeditnya.
Kesimpulan: Pusat Pemantauan yang Fleksibel
Anda telah berhasil membangun sistem pemantauan layanan self-hosted yang kuat dan modern menggunakan Uptime Kuma di Ubuntu 24.04, di-deploy melalui Docker Compose dan diamankan dengan Nginx Reverse Proxy dan SSL.
Penggunaan container memastikan manajemen maintenance di masa mendatang (seperti upgrade Uptime Kuma) akan menjadi proses yang cepat dan tanpa risiko. Infrastruktur Anda kini memiliki mata yang tajam, siap memberi tahu Anda secara real-time sebelum masalah layanan membesar.
Perintah Kunci untuk Manajemen Uptime Kuma
Gunakan perintah-perintah berikut untuk mengelola service Uptime Kuma di server Anda:
# Perintah Kunci: Menghentikan kontainer Uptime Kuma
docker compose down
# Perintah Kunci: Memulai ulang kontainer Uptime Kuma
docker compose restart
# Perintah Kunci: Melakukan upgrade Uptime Kuma
docker compose pull
docker compose up -d
# Perintah Kunci: Melihat log kontainer
docker logs uptime-kuma -f

