22 Agustus 2026
Uptime Kuma dan Notifikasi Saat Service Jatuh
Kenapa notifikasi outage penting di homelab, cara kerja polling Uptime Kuma, deployment Docker Compose, jenis monitor dan notifikasi Telegram, plus keterbatasan serta strategi backup.
Homelab saya berkembang dari satu server eksperimen menjadi beberapa service yang dipakai sehari-hari. Pemantauan manual tidak lagi praktis, dan masalah terbesar bukan service yang mati total, melainkan service yang jatuh tanpa ada yang tahu sampai ada yang komplain. Uptime Kuma dipakai untuk mengumpulkan status service dan mengirimkan notifikasi saat gangguan, supaya downtime tidak berakhir jadi kejutan.
Mengapa Notifikasi Outage Penting
Service bisa berhenti merespons tanpa indikasi di host: proses jalan, log diam, tapi permintaan menggantung. Cek terjadwal penting bukan demi angka uptime, tapi agar kegagalan diketahui dalam hitungan menit. Uptime Kuma memeriksa ketersediaan secara berkala dan menyimpan riwayat hasil, sehingga pola down bisa ditelusuri tanpa membuka setiap service manual.
Cara Kerja: Polling, Riwayat, dan Penyimpanan
Uptime Kuma adalah aplikasi Node.js yang berjalan sebagai server mandiri. Setiap monitor berjalan sebagai task berkala dengan interval minimum 20 detik; hasil tiap pemeriksaan disimpan sebagai heartbeat history di database SQLite di folder data (/app/data dalam container). Dashboard, status page, dan badge uptime dihitung dari riwayat ini. Semuanya lokal, satu instance cukup memantau seluruh stack tanpa layanan eksternal.
Memasang dengan Docker Compose
Buat file docker-compose.yml di direktori khusus:
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./data:/app/data
Jalankan dengan:
docker-compose up -d
Setelah container berjalan, buka http://localhost:3001 dan buat akun admin pertama. Data tersimpan di volume ./data yang di-mount tadi; antarmuka web cukup intuitif untuk dieksplorasi.
Jenis Monitor yang Bisa Dibuat
Bukan sekadar HTTP check:
- HTTP/HTTPS — memeriksa kode status, kata kunci, atau pengalihan URL.
- Ping — memeriksa konektivitas dasar.
- Port TCP — memastikan port tertentu terbuka.
- DNS — memeriksa resolusi nama domain.
- Docker — memantau status kontainer Docker.
Satu dashboard cukup untuk berbagai kebutuhan; tidak perlu instrumen terpisah per protokol.
Retry dan Kegagalan Sementara
Tidak semua kegagalan nyata: jaringan nge-lag, DNS lambat sebentar, koneksi putus sesaat. Uptime Kuma memungkinkan mengatur retry agar notifikasi palsu bisa dihindari. Konfigurasikan jumlah pengulangan dan interval di pengaturan monitor; sedikit kesabaran berujung notifikasi yang lebih bermakna.
Menyiapkan Notifikasi
Uptime Kuma mendukung puluhan provider: Telegram, Discord, Slack, Gotify, dan email (SMTP). Pilihan saya jatuh ke Telegram: setiap monitor dihubungkan ke bot, sehingga service down langsung muncul sebagai pesan di ponsel tanpa membuka dashboard, termasuk laporan saat server pulih. Jalur notifikasi bisa gagal terpisah dari monitor, misalnya hostname provider yang tidak bisa di-resolve; periksa DNS, konektivitas keluar, dan konfigurasi provider sebelum mengubah monitor.
Status Page dan Badge
Fitur status page publik bisa diisi monitor terpilih. Monitor yang dipublikasikan mendapat endpoint badge berformat tetap, misalnya https://<uptime-host>/api/badge/<id>/status dan /uptime. Badge itu saya sematkan di halaman Projects situs ini, sehingga status tiap proyek tampil sebagai lencana kecil yang memperbarui dirinya tanpa membuka dashboard.
Kontra dan Keterbatasan
- Satu instance = satu titik kegagalan. Jika host atau container Uptime Kuma mati, pemantauan ikut buta. Perlu health check eksternal atau instance kedua di host berbeda — “siapa yang menjaga penjaga” adalah pertanyaan nyata.
- SQLite butuh volume lokal. Database tidak mendukung filesystem jaringan seperti NFS; folder data harus di-mount ke direktori lokal agar tidak korup.
- Autentikasi terbatas. Antarmuka tidak punya mekanisme autentikasi kuat secara default; jangan expose langsung ke internet tanpa lapisan keamanan di depan.
- Bukan real-time. Interval terendah 20 detik dan status page menyimpan cache beberapa menit, jadi informasi selalu tertunda sedikit.
- Badge hanya untuk monitor yang dipublikasikan ke status page; monitor internal tidak punya endpoint publik.
Keamanan dan Restriksi
Gunakan VPN, jaringan yang aman, atau reverse proxy dengan autentikasi di depan. Uptime Kuma mendukung 2FA untuk akun admin; folder data harus dilindungi karena menyimpan kredensial notifikasi.
Backup dan Pemulihan
Semua konfigurasi monitor, riwayat, dan pengaturan notifikasi ada di database dalam folder data. Backup ./data cukup untuk memulihkan semuanya; di homelab, direktori ini masuk cadangan tingkat VM harian. Pemulihan tinggal mengembalikan folder dan menyalakan ulang container, tanpa konfigurasi ulang dari nol. Jangan lupa uji pemulihannya — cadangan yang tidak pernah diuji sama seperti tidak punya cadangan.
Kesimpulan
Uptime Kuma menjawab kebutuhan utama: tahu lebih cepat saat service jatuh, lewat satu antarmuka untuk HTTP, TCP, DNS, ping, dan Docker. Deployment sederhana, data persisten, dan notifikasi Telegram membuatnya cocok untuk homelab satu mesin. Batasannya jujur: polling bukan real-time, dan instance tunggal tetap butuh jalur pemantauan eksternal serta backup yang teruji.
