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
/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.
Comments:
- 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
bluet/cronicle-docker
is here. - On 7 May 2022, I confirmed that these steps work on brand new server, with revision
3e4211e
ofbluet/cronicle-docker
.
May 7, 2022