Architectures

linux/amd64 linux/arm64

Versions

docker pull ghcr.io/beyondcron/bc-app:latest

Environment variables

BEYONDCRON_SERVICES names of services to start. Default = bc-server bc-agent bc-web
BEYONDCRON_USER optional name of user to create as an administrator within BeyondCron, if it does not already exist.
If BEYONDCRON_USER contains more than 1 word, then the second and remaining words are used to define the user description/comment.
BEYONDCRON_PASSWORD password of BEYONDCRON_USER. Default = BEYONDCRON_USER
BEYONDCRON_COMMAND_PATH default environment variable used by BeyondCron when executing command jobs. Default = /usr/bin:/bin:/usr/local/bin
BEYONDCRON_LOAD_EXAMPLES if true or yes load the BeyondCron examples. No default.
JDBC_URL url to a JDBC database. If set then configure the BeyondCron status service to use this database, if a status service has not already been set.
JDBC_USER name of database user. Default = bc_status.
JDBC_PASSWORD password of database user. Default = bc_status.
JDBC_TABLE name of status table. Default = bc_status.

BEYONDCRON_PATH is only read when the container is initialised.

Ports

8080 bc-web web server port.

Volumes

/var/beyondcron BeyondCron data, configuration and log files. This volume must not be shared with other BeyondCron containers.
or
/var/beyondcron/local BeyondCron data and log files. This volume must not be shared with other BeyondCron containers.
/var/beyondcron/share BeyondCron configuration files. This volume can be safely shared with other BeyondCron containers.

Initialisation

BeyondCron will execute any /beyondcron-config.d/name.cmds files containing BeyondCron commands when the container is initialised.

Admin user

If you do not define BEYONDCRON_USER, then BeyondCron will start without any defined users, in which case you will need to either restart the container with BEYDONCRON_USER defined, or log into BeyondCron using the built admin user as follows:

  1. open a connection to the container.
  1. create a user within BeyondCron using the built in admin user:

# sudo -u bc-daemon /usr/local/bin/bc-cli --admin
BeyondCron % user add username
BeyondCron % user password username password
BeyondCron % user role add username admin
BeyondCron % exit

Examples

Basic standalone container

Run BeyondCron without saving job execution/status history, with an initial admin user of jsmith, and no persistent storage.

hostname% docker run --name bc-example-1 \
  -e BEYONDCRON_USER=jsmith \
  -e BEYONDCRON_LOAD_EXAMPLES=yes \
  -p 8080:8080 \
  -d ghcr.io/beyondcron/bc-app:latest

Connect to http://hostname:8080 to login into BeyondCron using bc-web

Basic standalone container with persistence

Run BeyondCron without saving job execution/status history, with an initial admin user of jsmith.

hostname% docker run --name bc-example-2 \
  -e BEYONDCRON_USER=jsmith \
  -e BEYONDCRON_LOAD_EXAMPLES=yes \
  -p 8080:8080 \
  -v bc-app-var:/var/beyondcron \
  -d ghcr.io/beyondcron/bc-app:latest

Connect to http://hostname:8080 to login into BeyondCron using bc-web

Standalone container with attached database for job execution/status history

Run BeyondCron with job execution/status history saved to a database, with an initial admin user of jsmith.

  1. Create a docker compose file

hostname% cat >> /tmp/example-3.yaml << EOF name: bc-example-3 volumes: bc-var: db-data: services: db: image: postgres:18 environment: POSTGRES_USER: beyondcron POSTGRES_PASSWORD: beyondcron hostname: db volumes: - db-data:/var/lib/postgresql healthcheck: test: ["CMD", "pg_isready", "-U", "beyondcron"] start_period: 5s start_interval: 5s bc: image: ghcr.io/beyondcron/bc-app:latest environment: BEYONDCRON_USER: jsmith Default administrator BEYONDCRON_LOAD_EXAMPLES: yes JDBC_URL: jdbc:postgresql://db:5432/beyondcron JDBC_USER: beyondcron JDBC_PASSWORD: beyondcron hostname: bc ports: - 8080:8080 volumes: - bc-var:/var/beyondcron healthcheck: test: ["CMD", "test", "-e", "/tmp/beyondcron.running" ] depends_on: db: condition: service_healthy EOF

  1. start containers

hostname% docker compose -f /tmp/example-3.yaml up

Connect to http://hostname:8080 to login into BeyondCron using bc-web

See also