Kalau kamu udah baca artikel cron job Ubuntu sebelumnya, pasti ngerasa crontab itu simpel tapi ada satu masalah: susah dipantau. Gak ada log terpusat, gak ada notifikasi kalau gagal, dan kalau job-nya banyak, gampang keliru ngecek satu-satu lewat terminal. Cronicle Docker hadir buat nutup celah itu.
Dari pengalaman ngandelin task scheduler buat operasional harian, hal yang paling sering bikin masalah itu bukan job-nya gagal, tapi gak tau kalau job-nya gagal. Backup yang seharusnya jalan tengah malam, ternyata udah 3 hari gak jalan dan baru ketauan pas butuh restore. Cronicle nutup celah itu dengan histori dan notifikasi yang jelas, jadi kegagalan ketauan langsung, bukan pas udah kepepet.
Di artikel ini kita bahas cara install Cronicle lewat Docker di VPS Ubuntu, dari setup container sampai bikin event pertama kamu lewat web UI. Cronicle itu task scheduler open-source dengan web UI lengkap, beda jauh sama crontab yang cuma teks polos di terminal, kamu bisa liat histori tiap job yang pernah jalan, log real-time pas job lagi eksekusi, notifikasi kalau ada yang gagal, bahkan bisa chaining beberapa job biar jalan berurutan otomatis. Cronicle juga support multi-server, jadi satu instance bisa jadi pusat kontrol buat jadwalin task di semua VPS kamu.
Buat referensi lengkap, kamu bisa cek situs resmi Cronicle (open source dan gratis). Yang kamu butuhin cuma VPS dengan Docker udah terinstal, port 3012 yang masih kosong, dan RAM minimal 512MB tersisa karena Cronicle jalan di atas Node.js.
1. Bikin Folder buat Data Cronicle
Bikin folder kerja biar data Cronicle kamu persisten dan gak ilang pas container di-restart atau di-update. Ini langkah penting karena semua event, histori job, dan log yang kamu bikin nanti bakal kesimpen di folder ini:
mkdir -p ~/cronicle/data ~/cronicle/logs ~/cronicle/plugins
cd ~/cronicle
2. Install Cronicle Docker Pakai Docker Compose
Bikin file docker-compose.yml:
services:
cronicle:
image: bluet/cronicle-docker:latest
container_name: cronicle
restart: unless-stopped
hostname: cronicle-host
ports:
- "3012:3012"
environment:
CRONICLE_base_app_url: "http://IP-VPS-KAMU:3012"
volumes:
- ./data:/opt/cronicle/data
- ./logs:/opt/cronicle/logs
- ./plugins:/opt/cronicle/plugins
- /var/run/docker.sock:/var/run/docker.sock
Ganti IP-VPS-KAMU di CRONICLE_base_app_url sesuai IP publik atau domain server kamu. Ini penting karena Cronicle butuh tau URL lengkap dirinya sendiri buat generate link internal (misal di notifikasi email) dengan benar. Mounting docker.sock itu opsional, cuma dibutuhin kalau kamu mau Cronicle bisa jalanin job yang berupa container Docker lain.
Jalankan dengan:
docker compose up -d
3. Buka Port di Firewall
Kalau kamu pakai UFW (baca juga panduan setup UFW firewall kalau belum pernah setting), buka port 3012:
sudo ufw allow 3012/tcp
4. Akses Cronicle Docker Lewat Web UI
Setelah container jalan normal, buka browser dan akses:
http://IP-VPS:3012
Di percobaan pertama, Cronicle bakal minta kamu bikin akun admin. Isi username dan password yang kuat, karena akun ini bakal punya kontrol penuh buat bikin, edit, dan hapus semua scheduled job di server kamu.
5. Bikin Event Pertama Kamu
Setelah login, masuk ke menu Schedule, klik + New Event. Isi nama event, pilih kategori, terus di bagian Timing tentuin jadwalnya (bisa harian, mingguan, atau custom pakai format mirip cron). Di bagian Plugin, pilih Shell Script kalau kamu mau jalanin command atau script biasa.
Beda dari crontab yang kamu harus inget-inget sendiri, di sini kamu bisa langsung liat histori run, durasi eksekusi, dan output log-nya langsung dari dashboard tanpa perlu SSH ke server sama sekali. Aktifin juga notifikasi email atau webhook kalau job-nya gagal, jangan andelin cek manual, karena kebiasaan cek manual itu yang paling gampang kelewat pas lagi sibuk.

Kalau Ada yang Gak Jalan Sesuai Rencana
Kalau web UI gak bisa diakses meski container jalan, cek firewall UFW dan security group cloud provider, pastiin port 3012 kebuka dari kedua sisi. Kalau muncul error soal base_app_url salah, cek lagi environment variable CRONICLE_base_app_url, pastiin IP/domain-nya sesuai yang beneran dipakai buat akses dari browser.
Kalau job gagal jalan padahal script-nya work manual, cek permission script (harus executable) dan pastiin path yang dipakai di dalam script itu path absolute, bukan relative, ini penyebab paling umum job yang “kelihatannya bener” tapi gagal pas dijalanin scheduler. Dan kalau container restart terus (crash loop), cek log dengan docker logs cronicle, biasanya kelihatan langsung penyebabnya, sering kali gara-gara folder data belum ke-mount dengan benar.
Penutup
Nah, segitu aja cara install Cronicle lewat Docker di VPS Ubuntu. Kalau crontab biasa udah cukup buat kebutuhan simpel, Cronicle jadi upgrade yang worth dicoba begitu jumlah job kamu makin banyak dan butuh visibility lebih jelas soal mana yang beneran jalan dan mana yang diam-diam gagal. Kalau ada yang error atau nyangkut, drop komentar aja bro.


























