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 of bluet/cronicle-docker.
May 7, 2022
Read more:
Leave feedback on this post. I read every message.