VPS Murah Nevacloud

Yuk, Pasang Uptime Kuma di VPS: Monitor Website Sendiri Tanpa Biaya Bulanan

Halo Sobat Online! Skenario ini pasti tidak asing: pagi-pagi kamu buka website sendiri dan yang muncul justru layar putih bertuliskan 502 Bad Gateway. Ternyata layanan sudah tumbang sejak tengah malam, dan tidak ada satu pun yang memberi tahu. Supaya kejadian itu tidak terulang, kita akan belajar cara install Uptime Kuma di VPS — alat monitoring open-source yang memeriksa website, port, dan server setiap menit, lalu mengirim notifikasi begitu ada yang tidak sehat.

Anggap Uptime Kuma seperti petugas ronda yang berkeliling kompleks 24 jam tanpa ngantuk. Ia mengetuk pintu satu per satu: website, port SSH, sertifikat SSL. Begitu ada pintu yang tidak dijawab, ia langsung menelepon kamu. Enaknya, alat ini gratis dan berjalan di VPS yang sudah kamu sewa, jadi tidak ada tagihan bulanan tambahan seperti layanan monitoring berlangganan.

Di panduan ini kita praktik berurutan: install Docker, deploy Uptime Kuma dengan Docker Compose, pasang reverse proxy Nginx plus HTTPS (bagian WebSocket-nya sering bikin dashboard blank kalau terlewat), menambah monitor pertama, notifikasi Telegram, sampai status page publik. Semua perintahnya bisa disalin-tempel, dan total waktunya sekitar 30 menit.

Kenapa Monitoring Uptime Wajib, Sih?

Banyak pemilik website masih mengandalkan cara manual: sesekali buka website di HP, atau menunggu ada pengunjung yang mengeluh di WhatsApp. Masalahnya, masalah jarang datang saat kita sedang memantau. Beberapa alasan monitoring sendiri lebih masuk akal:

  • Ketahuan lebih cepat. Layanan tumbang jam 2 pagi bisa kamu pindai jam 2:05, bukan jam 8 pagi saat kantor buka.
  • Tidak tergantung pihak ketiga. Kalau penyedia layanan monitor gratis sedang bermasalah, kamu ikut buta. Kalau monitoring ada di VPS sendiri, kamu yang pegang kendali.
  • Riwayat tersimpan. Data cek (uptime, waktu respons) disimpan di database kamu sendiri, jadi bisa dipakai sebagai bukti saat mengklaim ke provider hosting.
  • Bisa memantau hal yang tidak terlihat dari browser. Port database, port SSH, atau sertifikat SSL yang tinggal 7 hari lagi kedaluwarsa.

Apa Itu Uptime Kuma dan Apa Saja yang Bisa Dipantau?

Uptime Kuma adalah aplikasi monitoring self-hosted buatan Louis Lam, ditulis dengan Node.js dan dirilis di bawah lisensi MIT. Proyeknya sudah menembus lebih dari 90 ribu bintang di GitHub, dan sejak Oktober 2025 jalur versi 2.x menjadi versi stabil — seri 1.x ditutup oleh rilis 1.23.17. Saat artikel ini ditulis, rilis terbaru yang tersedia adalah 2.5.3 (22 Agustus 2026), jadi kita akan memakai seri 2.

Yang bisa dipantau Uptime Kuma cukup luas:

  • HTTP(S) — cek status code, kata kunci di halaman, atau waktu respons.
  • Ping ICMP dan Port TCP — memastikan host atau layanan seperti database benar-benar hidup.
  • DNS dan gRPC — untuk memantau layanan internal.
  • Sertifikat SSL — pengingat dini sebelum sertifikat kedaluwarsa.
  • Push heartbeat — script cron di server lain melapor ke Uptime Kuma.

Untuk notifikasi, ia mendukung Telegram, email/SMTP, Slack, Discord, webhook, dan puluhan kanal lain. Semua konfigurasinya lewat antarmuka web, jadi tidak perlu menghafal sintaks YAML.

Persiapan Sebelum Pasang Uptime Kuma di VPS

Siapkan empat hal ini dulu:

  1. VPS Linux (panduan ini memakai Ubuntu 22.04/24.04/26.04) dengan akses root atau user bersudo. Spesifikasi 1 vCPU dan 1 GB RAM sudah lebih dari cukup; container Uptime Kuma hanya memakai sekitar 200 MB RAM.
  2. Subdomain khusus, misalnya kuma.domainmu.com. Penting: Uptime Kuma tidak mendukung akses lewat subfolder seperti domainmu.com/kuma, jadi sediakan satu subdomain.
  3. Docker Engine beserta plugin Compose (kita pasang di langkah 1).
  4. Bot Telegram sebagai kanal notifikasi (opsional, kita bahas di langkah 6).

Langkah 1: Cara Install Uptime Kuma di VPS dengan Docker Compose

1a. Install Docker Engine dari Repositori Resmi

Docker menyediakan repositori apt resmi untuk Ubuntu. Sebelum menambah repositori, pastikan tidak ada paket Docker bawaan distro yang menabrak. Perintah berikut menghapusnya lebih dulu (aman dijalankan, walau biasanya melaporkan paket tidak ada):


sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world

Catatan: hindari script get.docker.com untuk server produksi. Dokumentasi Docker sendiri menyebut skrip kemudahan itu hanya untuk lingkungan uji dan pengembangan, sedangkan repositori apt resmi ikut serta dalam pembaruan rutin apt upgrade.

1b. Deploy Uptime Kuma dengan Docker Compose

Buat direktori kerja dan file Compose-nya. Isi file ini mengikuti template resmi dari repositori Uptime Kuma, hanya dengan pengikatan port ke 127.0.0.1:


sudo mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
sudo nano compose.yaml

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      # <Host Port>:<Container Port>
      - "127.0.0.1:3001:3001"

Tiga hal penting pada konfigurasi di atas:

  • Tag image :2, bukan :latest. Tag latest sudah deprecated dan masih menunjuk ke seri 1, jadi bisa “turun versi” diam-diam saat kamu menarik image baru. Mau versi tertentu? Pakai louislam/uptime-kuma:2.5.3. Ada juga varian 2-rootless kalau ingin dijalankan tanpa hak root.
  • Folder /app/data wajib dipetakan ke direktori lokal atau volume. Database di dalamnya berupa SQLite yang membutuhkan POSIX file lock; menyimpannya di NFS atau storage jaringan lain berisiko membuat database korup.
  • Port dibuka hanya di 127.0.0.1, bukan ke publik, karena Nginx yang akan melayani HTTPS di langkah 4.

Jalankan dan periksa statusnya:


sudo docker compose up -d
sudo docker compose ps
curl -I http://127.0.0.1:3001

Container yang sehat akan berstatus Up. Kalau ia terus restart, sudo docker compose logs uptime-kuma akan menunjukkan penyebab sebenarnya — paling sering masalah izin tulis pada folder data.

Langkah 2: Buat Akun Admin Lewat SSH Tunnel

Karena port 3001 hanya terbuka di localhost, akses dulu lewat SSH tunnel dari komputer kamu:


ssh -L 3001:127.0.0.1:3001 root@IP-VPS

Setelah terhubung, buka http://localhost:3001 di browser dan isi formulir pembuatan akun admin. Tidak ada username/password default di Uptime Kuma — akun pertama yang kamu buat itu satu-satunya akun administrator. Perlakukan kredensialnya serius: Uptime Kuma tidak mengirim email reset password, jadi catat di password manager. Kalau benar-benar lupa, pemulihannya dilakukan lewat perintah CLI (ada panduan resminya di wiki proyek).

Langkah 3: Akses Publik dengan Nginx, HTTPS, dan WebSocket

Berikut bagian yang paling sering bikin orang bingung: Uptime Kuma berbasis WebSocket. Artinya, reverse proxy wajib mengirim header Upgrade dan Connection, bukan hanya proxy_pass biasa. Kalau header ini terlewat, dashboard bisa terbuka tapi angkanya tidak pernah bergerak.

Buat /etc/nginx/sites-available/kuma.domainmu.com:


server {
    listen 80;
    listen [::]:80;
    server_name kuma.domainmu.com;

    location / {
        proxy_pass         http://127.0.0.1:3001;
        proxy_http_version 1.1;
        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   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
    }
}

Aktifkan konfigurasi dan pasang sertifikat HTTPS gratis:


sudo ln -s /etc/nginx/sites-available/kuma.domainmu.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo apt install -y python3-certbot-nginx
sudo certbot --nginx -d kuma.domainmu.com
sudo certbot renew --dry-run

Certbot akan menambahkan blok listen 443 beserta pengalihan otomatis dari HTTP ke HTTPS, sekaligus memasang timer pembaruan sertifikat. Dua catatan tambahan:

  • Kalau kamu memakai Cloudflare di depan subdomain ini, aktifkan WebSockets di dashboard Cloudflare (menu Network), karena kalau tidak, koneksi realtime-nya diputus di sisi edge.
  • Setelah situs hanya bisa diakses lewat proxy, nyalakan Settings → Reverse Proxy → HTTP Headers → Trust Proxy. Dengan begitu Uptime Kuma mempercayai header X-Forwarded-* dan menampilkan IP pengunjung yang benar di log.

Langkah 4: Tambah Monitor Pertama

Buka https://kuma.domainmu.com, lalu klik Add New Monitor di sidebar kiri:

  1. Monitor Type: pilih HTTP(s).
  2. Friendly Name: misalnya “Website Utama”.
  3. URL: https://donnebanget.com (atau domainmu sendiri).
  4. Heartbeat Interval: 60 detik sudah cukup untuk sebagian besar website.
  5. Accepted Status Codes: biarkan 200-299.
  6. Klik Save — muncul satu kartu hijau dengan grafik detak.

Ulangi untuk kebutuhan lain: pilih TCP Port untuk memastikan port database atau SSH benar-benar terbuka, Ping untuk memantau host, dan HTTP(s) – Keyword kalau ingin memastikan halaman memuat kata tertentu (bukan sekadar membalas status 200).

Langkah 5: Kirim Notifikasi ke Telegram

Monitoring tanpa notifikasi sama saja dengan alarm yang dimatikan. Cara tercepat adalah bot Telegram:

  1. Chat @BotFather di Telegram, kirim /newbot, ikuti instruksinya, dan simpan token yang diberikan.
  2. Kirim pesan apa pun ke bot barumu, lalu ambil chat ID lewat endpoint https://api.telegram.org/bot<TOKEN>/getUpdates.
  3. Di Uptime Kuma, masuk ke Settings → Notifications → Setup Notification, pilih Telegram, isi Bot Token dan Chat ID, lalu klik Test. Pesan uji harus masuk ke chat-mu sebelum disimpan.

Setelah tersimpan, centang notifikasi tersebut sebagai default supaya semua monitor yang kamu tambahkan berikutnya otomatis mengirim notifikasi ke kanal yang sama.

Langkah 6: Bikin Status Page Publik

Ingin memberi tahu pengunjung bahwa layananmu sedang gangguan tanpa harus membuka tiket? Uptime Kuma punya fitur Status Page:

  1. Buka menu Status Pages → New Status Page.
  2. Isi nama halaman dan slug (misalnya status).
  3. Tambahkan monitor yang ingin ditampilkan, atur grup dan tema warna.
  4. Aktifkan statusnya, lalu buka https://kuma.domainmu.com/status.

Halaman ini bisa dijadikan tautan resmi saat ada insiden, sehingga kamu tidak perlu menjawab pertanyaan “kenapa ya websitenya error?” satu per satu.

Update dan Backup Uptime Kuma

Untuk memperbarui versi, cukup tarik image baru dan buat ulang container-nya — data di folder ./data tidak tersentuh:


cd /opt/uptime-kuma
sudo docker compose pull
sudo docker compose up -d --force-recreate
sudo docker compose logs --tail=50

Biasakan membackup folder /opt/uptime-kuma/data sebelum update. Isinya adalah seluruh konfigurasi monitor, akun, dan riwayat cek, jadi folder itu saja sudah cukup untuk memulihkan instalasi di VPS lain.

Kendala yang Sering Muncul

  • Dashboard terbuka tapi angka tidak bergerak — header Upgrade dan Connection "upgrade" belum ada di konfigurasi Nginx. Kalau lewat Cloudflare, pastikan WebSockets diaktifkan.
  • Halaman 502 di browser — container belum jalan. Cek sudo docker compose ps dan sudo docker compose logs uptime-kuma.
  • Container restart terus — biasanya folder data tidak bisa ditulis proses container, atau dipetakan ke mount jaringan seperti NFS yang tidak mendukung file lock SQLite.
  • Tidak bisa login dan lupa password — reset lewat CLI di dalam container mengikuti panduan resmi wiki Uptime Kuma; karena itu simpan kredensial di password manager sejak awal.

Kesimpulan

Dengan Uptime Kuma di VPS sendiri, kamu baru saja membangun monitoring website yang berjalan 24 jam: Docker menjalankan aplikasinya, Nginx plus HTTPS menjaga aksesnya tetap aman, Telegram mengabari begitu ada gangguan, dan status page publik membuat pengunjung tetap tenang. Semuanya tanpa biaya langganan, hanya modal VPS yang sudah kamu miliki.

Sobat Online, mulai hari ini kamu tidak perlu lagi menebak-nebak apakah website-mu sehat — kamu akan tahu dari notifikasi sebelum ada yang mengeluh. Pasang monitor pertama untuk website utama dan database-mu malam ini, lalu tambahkan satu monitor baru setiap kali ada layanan baru. Selamat memantau, dan semoga notifikasi yang masuk selalu berisi kabar baik! 🚀

Baca juga

Nevacloud VPS Indonesia

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *