Cara Install Cronicle Lewat Docker di VPS Ubuntu

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.

Jundi Husni Mubaraq

Jundi Husni Mubaraq

Saya seorang software engineer yang sejak awal 2026 megang penuh (sendirian) tanggung jawab infrastruktur server di tempat saya kerja: deploy dan maintain server Linux Ubuntu on-premises, bangun keamanan berlapis pakai CrowdSec dan Cloudflare, kelola job scheduling dan monitoring pakai Cronicle, deploy aplikasi containerized pakai Docker, sampai ngurusin mail server korporat dari nol. Sebelumnya saya 3+ tahun jadi Software Engineer/Fullstack Developer di beberapa perusahaan, termasuk proyek skala internasional (EUDR compliance system buat Lindt & Sprungli) dan sistem rumah sakit (SIMRS, rekam medis elektronik, integrasi BPJS Kesehatan) di RS PKU Muhammadiyah Surakarta. jundi.hm ini tempat saya dokumentasiin apa yang beneran saya kerjain dan pelajarin di lapangan, bukan sekadar riset teori, S.Kom dari Universitas Duta Bangsa Surakarta jadi bekal awal, tapi yang nulis di sini adalah pengalaman langsung ngelola server production sehari-hari. Selengkapnya: https://iam.jundi.hm

Lihat Juga Nih

Selanjutnya Nih

Kasih Komentar

Email kamu gak bakal ditampilin ke publik. Kalau ada tanda ini artinya wajib diisi ya *

Rekomendasi.

Lagi Viral.