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:
- Setiap interval tertentu (standarnya tiap 24 jam), Watchtower mengecek digest image dari semua container yang berjalan.
- Kalau digest di registry berbeda dari yang sedang dipakai, berarti ada versi baru.
- Watchtower menarik (pull) image baru, menghentikan container lama secara graceful, lalu membuat container baru dengan image tersebut.
- 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.ymldengan 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 psdan 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_BOTdanCHAT_IDdengan nilai asli, laludocker compose up -d. - Untuk mengetes, jalankan sekali manual:
docker exec watchtower /watchtower --run-oncelalu 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 taglatestperlu 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!

