VPS Murah Nevacloud

Yuk, Pasang Watchtower di VPS: Update Docker Otomatis Tanpa Sentuh Terminal!

Halo Sobat Online! Pernah merasa lelah karena harus update Docker otomatis satu per satu? Setiap ada versi baru n8n, Nextcloud, atau Immich, kita harus SSH ke VPS, jalankan docker compose pull, lalu docker compose up -d. Sekali dua kali sih gampang. Tapi kalau container-nya sudah belasan seperti koleksi self-hosted kita, rutinitas ini jadi pekerjaan yang membosankan dan gampang kelupaan.

Kabar baiknya, ada asisten setia bernama Watchtower yang bisa mengerjakan semua itu untuk kita. Yuk, kita pasang bareng-bareng!

Apa Itu Watchtower?

Bayangkan Watchtower seperti satpam ronda yang keliling tiap malam mengecek setiap rumah (container) di kompleks (VPS) kita. Kalau ada rumah yang catnya sudah kusam alias image Docker-nya sudah ada versi baru di registry, satpam ini langsung mengecat ulang rumahnya: menarik image baru, mematikan container lama dengan sopan, lalu menyalakannya lagi dengan konfigurasi yang sama persis.

Secara teknis, Watchtower adalah aplikasi open-source yang berjalan sebagai satu container kecil di VPS. Ia hanya butuh akses ke Docker socket (/var/run/docker.sock) supaya bisa “ngobrol” dengan Docker engine. Cara kerjanya sederhana:

  1. Setiap interval tertentu (standarnya tiap 24 jam), Watchtower mengecek digest image dari semua container yang berjalan.
  2. Kalau digest di registry berbeda dari yang sedang dipakai, berarti ada versi baru.
  3. Watchtower menarik (pull) image baru, menghentikan container lama secara graceful, lalu membuat container baru dengan image tersebut.
  4. Semua opsi container lama (port mapping, volume, environment variable) dipertahankan apa adanya.

Catatan penting soal nama image: proyek aslinya containrrr/watchtower sudah lama tidak dirawat, dan kelanjutannya yang aktif sekarang adalah nickfedor/watchtower (sudah versi 1.23.x). Jadi pastikan Teman-teman memakai image yang baru ini, ya!

Prasyarat Sebelum Mulai

  • VPS dengan Docker dan Docker Compose sudah terpasang (kalau mengikuti seri self-hosted kita, ini pasti sudah ada).
  • Minimal satu container Docker yang sedang berjalan, misalnya n8n atau Uptime Kuma.
  • Akses SSH ke VPS sebagai user yang bisa menjalankan docker.

Langkah 1: Pasang Watchtower Pakai Docker Compose

Cara paling rapi adalah membuat folder khusus supaya file compose-nya tidak tercampur dengan aplikasi lain:

  • Buat folder baru, misalnya mkdir -p ~/watchtower && cd ~/watchtower.
  • Buat file docker-compose.yml dengan isi berikut:

services:
  watchtower:
    image: nickfedor/watchtower:latest
    container_name: watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  • Jalankan dengan perintah docker compose up -d.
  • Cek statusnya dengan docker ps dan pastikan container bernama watchtower berstatus Up.

Selesai! Dengan konfigurasi bawaan ini, Watchtower akan memantau semua container dan mengecek pembaruan tiap 24 jam. Gampang banget, kan?

Langkah 2: Mulai dengan Mode Aman Dulu (Monitor-Only)

Sobat Online, sebelum membiarkan Watchtower mengupdate semuanya otomatis, ada baiknya kita pemanasan dulu dengan mode monitor-only. Di mode ini Watchtower hanya melapor kalau ada update, tanpa mengubah apa pun. Ibarat satpam magang: boleh lapor, belum boleh bertindak.

  • Tambahkan environment variable berikut ke service watchtower:

environment:
  - WATCHTOWER_MONITOR_ONLY=true
  • Jalankan ulang dengan docker compose up -d.
  • Lihat laporannya lewat docker logs watchtower — di sana tertulis container mana saja yang punya versi baru.

Jalankan mode ini seminggu dulu. Kalau semua laporan terlihat wajar, baru matikan mode monitor-only untuk update sungguhan.

Langkah 3: Atur Jadwal Update Sendiri

Standarnya Watchtower ronda tiap 24 jam di jam acak. Kalau Teman-teman ingin update jalan tiap dini hari misalnya jam 4 pagi (saat pengunjung sepi), gunakan jadwal cron:

  • Tambahkan environment variable berikut:

environment:
  - WATCHTOWER_SCHEDULE=0 0 4 * * *
  • Formatnya adalah cron 6 kolom (detik, menit, jam, tanggal, bulan, hari). Contoh di atas artinya tiap jam 04:00:00.
  • Jalankan ulang dengan docker compose up -d.

Dengan jadwal tetap, kita bisa menebak kapan container akan restart dan menghindari jam sibuk.

Langkah 4: Batasi Container yang Boleh Diupdate

Tidak semua container cocok diupdate otomatis. Database seperti Postgres atau aplikasi yang sensitif versi mayor sebaiknya dikecualikan. Caranya pakai label:

  • Jalankan Watchtower dengan flag scope, tambahkan ke compose:

command: --label-enable
  • Lalu pada container yang BOLEH diupdate otomatis, tambahkan label:

labels:
  - "com.centurion.watchtower.enable=true"
  • Container tanpa label tersebut akan diabaikan Watchtower.

Pola ini paling aman: hanya aplikasi stateless seperti Uptime Kuma, n8n, atau Immich yang diberi label, sedangkan database dibiarkan update manual.

Langkah 5: Pasang Notifikasi Telegram

Update diam-diam tanpa kabar itu menyeramkan. Untungnya Watchtower bisa mengirim notifikasi Telegram setiap kali selesai update, memakai format Shoutrrr:

  • Buat bot Telegram lewat @BotFather dan catat tokennya.
  • Cari chat ID lewat @userinfobot (atau buat grup dan masukkan bot ke sana).
  • Tambahkan environment variable berikut:

environment:
  - WATCHTOWER_NOTIFICATIONS=shoutrrr
  - WATCHTOWER_NOTIFICATION_URL=telegram://TOKEN_BOT@telegram?channels=CHAT_ID
  • Ganti TOKEN_BOT dan CHAT_ID dengan nilai asli, lalu docker compose up -d.
  • Untuk mengetes, jalankan sekali manual: docker exec watchtower /watchtower --run-once lalu cek Telegram masuk atau tidak.

Mulai sekarang, setiap pagi kita bangun dan ada laporan rapi di Telegram: container apa saja yang naik versi semalam. Rasanya seperti punya asisten pribadi!

Kapan Sebaiknya JANGAN Update Otomatis?

Jujur-jujuran ya Sobat Online, update Docker otomatis bukan solusi untuk semua keadaan. Hindari auto-update pada:

  • Database (Postgres, MariaDB, Redis) — lompatan versi mayor bisa merusak format data. Update manual dengan backup dulu.
  • Aplikasi yang di-pin versinya — kalau compose memakai tag spesifik seperti image: postgres:15, Watchtower hanya mengecek tag itu, jadi relatif aman. Justru yang memakai tag latest perlu ekstra hati-hati karena bisa lompat versi mayor tiba-tiba.
  • Aplikasi produksi kritis — gunakan mode monitor-only plus update terjadwal di jam sepi, dan selalu siapkan backup (ingat tutorial rclone kita!).

Aturan praktisnya: otomatis untuk aplikasi stateless, manual untuk data penting. Kombinasi keduanya bikin tidur nyenyak.

Cara Verifikasi Watchtower Bekerja

  • Lihat log berkala: docker logs --tail 50 watchtower.
  • Paksa satu putaran pengecekan: docker exec watchtower /watchtower --run-once.
  • Cek versi image container sebelum dan sesudah: docker images | grep n8n.
  • Pastikan Watchtower mengupdate dirinya sendiri juga — iya, ia bisa self-update!

Kalau log menunjukkan “Found new image, updating”, berarti semuanya berjalan sesuai rencana.

Kesimpulan

Selamat Sobat Online! Sekarang VPS kita punya satpam ronda pribadi. Dengan Watchtower, rutinitas pull dan up -d manual tiap minggu resmi pensiun — container tetap segar dengan patch keamanan terbaru, kita dapat laporannya di Telegram, dan waktu luang bisa dipakai ngoprek hal lain yang lebih seru.

Mulai dari mode monitor-only, atur jadwal di jam sepi, beri label hanya pada container yang aman, dan kecualikan database. Pelan-pelan tapi pasti, server kita makin mandiri. Semangat mengotomasi, dan sampai jumpa di tutorial berikutnya!

Baca juga

Nevacloud VPS Indonesia

Tinggalkan Balasan

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