Cara Self-Host Uptime Kuma di VPS untuk Monitoring Website dan Server
Menjalankan monitoring server mandiri membantu Anda mendeteksi downtime lebih cepat sebelum dikeluhkan pelanggan. Pelajari cara self-host Uptime Kuma di VPS.
Banyak pemilik website dan pengelola aplikasi baru menyadari layanan mereka sedang tidak bisa diakses setelah menerima pesan keluhan dari pelanggan. Mengandalkan pengecekan manual melalui browser tentu tidak efektif, terutama jika gangguan server terjadi di luar jam kerja. Oleh karena itu, menerapkan cara self-host uptime kuma di vps menjadi langkah praktis untuk membangun sistem peringatan dini yang memantau ketersediaan layanan Anda sepanjang waktu.

Uptime Kuma adalah aplikasi pemantau (monitoring tool) open-source yang ringan dan memiliki tampilan dashboard yang informatif. Melalui aplikasi ini, Anda dapat memantau status HTTP/HTTPS website, ketersediaan port TCP database, latensi ping server, hingga masa berlaku sertifikat SSL. Bagi Anda yang ingin langsung menggunakannya tanpa konfigurasi sistem manual, Flaz Cloud menyediakan layanan cloud apps Uptime Kuma yang dapat diaktifkan dalam hitungan detik. Artikel ini membahas cara kerja Uptime Kuma, kesalahan konfigurasi yang perlu dihindari, serta langkah instalasinya di server VPS Linux.
Kesalahan Umum Saat Menjalankan Monitoring Server Mandiri

Berdasarkan kasus teknis yang sering ditanyakan kepada tim support Flaz Cloud, terdapat dua kesalahan arsitektur yang kerap dilakukan pengguna saat baru pertama kali memasang sistem pemantau server.
Menempatkan Uptime Kuma di Server yang Sama dengan Website Utama
Kesalahan paling mendasar adalah menginstal Uptime Kuma di dalam satu VPS yang sama dengan website atau aplikasi produksi yang sedang dipantau.
Jika VPS utama mengalami gangguan jaringan, kehabisan memori RAM, atau sistem operasinya berhenti merespons, maka container Uptime Kuma yang berada di dalamnya juga akan ikut mati. Akibatnya, Uptime Kuma tidak dapat mengirimkan pesan peringatan ke Telegram, WhatsApp, atau email Anda. Sistem pemantau wajib ditempatkan pada lingkungan terpisah agar dapat mendeteksi kegagalan server produksi dari luar secara akurat.
Mengatur Interval Pengecekan Terlalu Rapat
Uptime Kuma memungkinkan Anda mengatur jeda waktu pengecekan (heartbeat interval) hingga setiap 20 detik sekali. Jika Anda memantau puluhan website dan API sekaligus dengan interval 20 detik, Uptime Kuma akan menulis ratusan ribu baris catatan log ke dalam database SQLite setiap harinya.
Dalam waktu beberapa minggu, ukuran file database akan membengkak dan meningkatkan beban operasi baca-tulis (I/O) disk server. Untuk memantau pemakaian ruang penyimpanan agar tidak penuh tanpa disadari, Anda dapat membaca panduan cara mengecek kapasitas storage VPS Linux.
Langkah Instalasi Uptime Kuma Menggunakan Docker Compose
Jika Anda menggunakan VPS terpisah untuk memantau infrastruktur Anda, menjalankan Uptime Kuma menggunakan Docker Compose adalah metode yang paling rapi dan mudah dikelola.
Menyiapkan File Konfigurasi dan Volume Data
Masuk ke terminal SSH server VPS Anda, buat direktori kerja khusus, dan buat file docker-compose.yml:
mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
nano docker-compose.yml
Masukkan konfigurasi berikut ke dalam file:
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: always
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
Pemetaan volume ./data:/app/data bertujuan untuk menyimpan database SQLite dan pengaturan notifikasi di direktori fisik server. Tanpa konfigurasi volume ini, seluruh daftar website yang Anda pantau akan hilang ketika container diperbarui atau di-restart.
Jalankan container di latar belakang dengan perintah :
docker compose up -d
Mengatur Reverse Proxy Nginx dengan Dukungan WebSocket
Uptime Kuma menggunakan protokol WebSocket (Socket.io) untuk memperbarui grafik ping dan status layanan secara real-time di layar browser. Jika Anda memasang Nginx sebagai reverse proxy di depan port 3001 tanpa menyertakan header WebSocket, halaman dashboard Uptime Kuma hanya akan tertahan di layar loading dan gagal menampilkan data.
Pastikan blok konfigurasi virtual host Nginx Anda menyertakan baris proxy_set_header Upgrade dan Connection seperti contoh berikut:
server {
listen 80;
server_name status.domainanda.com;location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Setelah menyimpan konfigurasi di atas, uji konfigurasi dengan sudo nginx -t lalu muat ulang Nginx dan pasang sertifikat SSL Let's Encrypt menggunakan Certbot.
Fitur Pemantauan Penting yang Sebaiknya Diaktifkan

Agar pemantauan berjalan efektif dan tidak hanya memeriksa status jaringan luar, manfaatkan beberapa metode pengecekan yang tersedia di dalam Uptime Kuma.
Pengecekan Keyword HTML pada Halaman Website
Memantau status HTTP 200 OK terkadang belum cukup untuk memastikan aplikasi web berjalan normal. Pada beberapa kasus, halaman website yang mengalami kegagalan koneksi database atau error skrip PHP tetap mengembalikan kode status HTTP 200 sambil menampilkan pesan teks kesalahan di layar.
Untuk mengatasi hal ini, gunakan tipe monitor HTTP(s) - Keyword. Dengan fitur ini, Uptime Kuma akan memeriksa apakah sebuah kata kunci tertentu (misalnya nama brand di bagian footer atau teks judul halaman utama) benar-benar muncul di dalam struktur HTML halaman. Jika kata kunci tersebut tidak ditemukan, sistem akan langsung menandai layanan sebagai status down. Pemahaman mengenai metrik ketersediaan ini dibahas lebih lanjut dalam artikel pentingnya monitoring performa website.
Peringatan Kedaluwarsa Sertifikat SSL
Sertifikat SSL yang kedaluwarsa akan memunculkan peringatan keamanan di browser pengunjung dan menghentikan integrasi webhook API. Pada pengaturan monitor HTTPS di Uptime Kuma, aktifkan opsi Certificate Expiry Notification.
Anda dapat mengatur agar sistem mengirimkan pesan pengingat otomatis ke tim teknis 14 hari atau 7 hari sebelum masa aktif sertifikat SSL berakhir, sehingga Anda memiliki waktu yang cukup untuk memeriksa proses auto-renew di server.
Integrasi Notifikasi dan Status Page Publik
Uptime Kuma mendukung lebih dari 90 saluran pengiriman notifikasi, mulai dari Bot Telegram, Discord, Slack, webhook HTTP, WhatsApp API, hingga pengiriman peringatan email melalui SMTP Relay.
Selain untuk penggunaan internal tim teknis, Anda juga dapat membuat halaman Status Page publik dengan domain khusus (misalnya status.bisnisanda.com). Halaman ini berguna untuk memberikan transparansi status operasional layanan kepada pelanggan Anda. Untuk melengkapi pengawasan di sisi internal sistem operasi, Anda juga dapat menerapkan tips monitoring server VPS Linux.
Menjalankan Uptime Kuma Tanpa Repot di Flaz Cloud
Mengelola infrastruktur pemantau yang terpisah dari server produksi adalah langkah penting agar notifikasi gangguan tetap terkirim saat server utama mengalami kendala.
Jika Anda tidak ingin menyewa satu VPS penuh hanya untuk menjalankan aplikasi pemantau atau enggan mengatur konfigurasi Docker dan WebSocket Nginx secara manual, Flaz Cloud menyediakan layanan cloud apps Uptime Kuma siap pakai. Layanan berbasis container terisolasi ini dapat langsung digunakan sekali klik, sudah dilengkapi sertifikat SSL otomatis, serta berjalan di infrastruktur terpisah sehingga tetap aktif memantau server utama Anda.
Bagi Anda yang membutuhkan server khusus untuk menjalankan berbagai perkakas administrasi sistem sekaligus, pilihan server VPS NVMe kami juga tersedia dengan alokasi resource yang fleksibel. Jika Anda membutuhkan bantuan dalam merancang sistem monitoring untuk aplikasi web bisnis Anda, tim support Flaz Cloud siap membantu memberikan saran teknis yang sesuai.
FAQ
1. Mengapa halaman dashboard Uptime Kuma terus berputar di layar loading setelah dipasang di balik Nginx?
Masalah ini terjadi karena konfigurasi reverse proxy Nginx belum meneruskan koneksi protokol WebSocket. Uptime Kuma membutuhkan komunikasi dua arah secara real-time melalui Socket.io. Pastikan Anda menambahkan baris proxy_set_header Upgrade $http_upgrade; dan proxy_set_header Connection "upgrade"; pada blok lokasi konfigurasi Nginx Anda.
2. Berapa spesifikasi minimal server yang dibutuhkan untuk menjalankan Uptime Kuma?
Uptime Kuma sangat ringan. Untuk memantau sekitar 10 hingga 30 endpoint website dengan interval pengecekan 60 detik, alokasi memori RAM 512 MB hingga 1 GB dengan 1 vCPU sudah memadai. Jika Anda menggunakan layanan container Cloud Apps di Flaz Cloud, resource sudah disesuaikan agar aplikasi berjalan lancar tanpa perlu menyewa VPS besar.
3. Mengapa Uptime Kuma sebaiknya ditempatkan pada server yang terpisah dari website utama?
Jika Uptime Kuma berada di dalam server yang sama dengan website utama, ketika server tersebut mengalami mati total, gangguan jaringan data center, atau kehabisan memori, Uptime Kuma juga akan berhenti bekerja. Menempatkannya di server atau container terpisah memastikan sistem pemantau tetap hidup untuk mengirimkan notifikasi darurat kepada Anda.
4. Apa perbedaan antara pemantauan tipe HTTP(s) biasa dengan HTTP(s) Keyword di Uptime Kuma?
Monitor tipe HTTP(s) biasa hanya memeriksa apakah web server mengembalikan kode status sukses (seperti 200 OK). Sementara itu, tipe HTTP(s) Keyword mengunduh isi respons halaman dan mencari teks spesifik yang Anda tentukan. Metode kedua jauh lebih akurat untuk mendeteksi halaman blank putih atau pesan error aplikasi yang masih mengembalikan status HTTP 200.
5. Bagaimana cara membatasi ukuran database Uptime Kuma agar tidak memenuhi ruang disk?
Buka menu Settings di dashboard Uptime Kuma, lalu masuk ke tab Monitor History. Atur masa simpan data riwayat melalui fitur Keep Data Period menjadi 30 hari atau 90 hari, dan gunakan tombol Shrink Database untuk menjalankan perintah VACUUM pada SQLite. Selain itu, gunakan interval pengecekan wajar antara 60 hingga 120 detik untuk layanan standar.