How to run Cronicle (a cron replacement) in a Docker container
I really don’t like cron jobs and crontab:
- crontab has a horrible syntax (it’s from 1975…)
- logging the output of jobs needs to be specified manually
- viewing logs is inconvenient (even just for checking whether a job ran or not!)
- cron jobs run in a minimal environment that’s inconvenient to modify
Cronicle is a friendlier alternative (“a task scheduler with a web based front-end UI”).
Very important: the default username/password for the web interface is
admin. This could let anyone run arbitrary shell commands on your server! Change the password immediately after setting up.
Here’s how to run Cronicle Dockerized.
docker run -d \ -v /cronicle-data/data:/opt/cronicle/data:rw \ -v /cronicle-data/logs:/opt/cronicle/logs:rw \ -v /cronicle-data/plugins:/opt/cronicle/plugins:rw \ -v /cronicle-data/app:/app:rw \ --hostname your_hostname.com -p 11531:3012 \ -e CRONICLE_base_app_url='http://your_hostname.com:11531' \ --name cronicle \ bluet/cronicle-docker:latest
You can now point
http://your_hostname.com to the correct IP address and visit
http://your_hostname.com:11531 in your browser to access a web interface for Cronicle.
- 11531 is a port number chosen randomly. You should generally use 80, the default port used by web browsers; for me that port is occupied by other applications I run on the host web server.
- The source for the Docker image
- On 7 May 2022, I confirmed that these steps work on brand new server, with revision