Skip to content

Docker Deployment

The easiest way to run Scoold locally is with Docker Compose:

Terminal window
docker compose -f https://github.com/Erudika/scoold.git up

Alternatively, if the command above fails, here are the steps to manually compose the stack from scratch:

  1. Copy the docker-compose.yml file locally:
    docker-compose.yml for Scoold
    docker-compose.yml
    services:
    para:
    image: erudikaltd/para:latest_stable
    ports:
    - "8080:8080"
    volumes:
    - type: volume
    source: paraData
    target: /para/data
    - type: volume
    source: paraLib
    target: /para/lib
    - type: bind
    source: ./para-application.conf
    target: /para/application.conf
    restart: always
    environment:
    - JAVA_OPTS=-Dconfig.file=/para/application.conf -Dloader.path=/para/lib
    scoold:
    depends_on:
    - para
    image: erudikaltd/scoold:latest_stable
    ports:
    - "8000:8000"
    volumes:
    - type: bind
    source: ./scoold-application.conf
    target: /scoold/application.conf
    - type: bind
    source: ./para-application.conf
    target: /scoold/para-application.conf
    restart: always
    environment:
    - JAVA_OPTS=-Dconfig.file=/scoold/application.conf -Dscoold.autoinit.para_config_file=/scoold/para-application.conf -Dscoold.para_endpoint=http://para:8080
    - BOOT_SLEEP=5
    volumes:
    paraData:
    paraLib:
  2. Create two blank configuration files, for Scoold and Para, in the same directory:
    Terminal window
    touch para-application.conf scoold-application.conf
    Since the configuration files do not define scoold.app_secret_key and scoold.para_secret_key, these secrets will be populated automatically upon initialization.
  3. In the same directory, execute this terminal command to start Scoold and Para:
    Terminal window
    docker compose up

Finally, open localhost:8000/signin/register and create a new account. If you’ve configured your email with scoold.admins = "email@domain.com" and you sign up with the same email, you will become admin automatically.

To stop the containers press Ctrl + C.

If you prefer, you can run the Scoold container outside of Docker Compose. First, have your Scoold scoold-application.conf configuration file ready in the current directory and run this command:

Terminal window
docker run -ti -p 8000:8000 --rm \
-v $(pwd)/scoold-application.conf:/scoold/application.conf \
-e JAVA_OPTS="-Dconfig.file=/scoold/application.conf" \
erudikaltd/scoold:latest_stable

For Scoold Pro the images are located in a private registry. You can get access to it once you purchase a Pro license. The run command for Scoold Pro is similar with the only difference being the uploads volume:

Terminal window
docker run -ti -p 8000:8000 --rm \
-v $(pwd)/scoold-application.conf:/scoold-pro/application.conf \
-v scoold-uploads:/scoold-pro/uploads \
-e JAVA_OPTS="-Dconfig.file=/scoold-pro/application.conf" \
374874639893.dkr.ecr.eu-west-1.amazonaws.com/scoold-pro:latest_stable

Environment variables

  • JAVA_OPTS - Java system properties, e.g. -Dscoold.port=8000
  • BOOT_SLEEP - Startup delay, in seconds

If you purchase Scoold Pro you can get access to the private Docker registry hosted on the AWS Elastic Container Registry. Access to the private registry is not given automatically upon purchase - you have to request it. You will then be issued a special access key and secret for AWS ECR. Then execute the following BASH commands (these require AWS CLI v2.x):

  1. Configure AWS CLI to use the new credentials or instruct AWS CLI to use an existing credentials profile, e.g. export AWS_PROFILE=docker:
    Terminal window
    aws configure
  2. Authenticate with our ECR registry - a temporary access token will be issued for 12h:
    Terminal window
    aws ecr get-login-password --region eu-west-1 | \
    docker login --username AWS \
    --password-stdin 374874639893.dkr.ecr.eu-west-1.amazonaws.com
    If the command above doesn’t succeed, you won’t be able to pull the latest Scoold Pro image or run docker compose.
  3. Pull a Scoold Pro image with a specific tag:
    Terminal window
    aws ecr list-images --repository-name scoold-pro;
    docker pull 374874639893.dkr.ecr.eu-west-1.amazonaws.com/scoold-pro:latest_stable

Once you have access to Scoold Pro container images, you can bring up a Scoold Pro instance with Docker Compose as well:

Terminal window
docker compose -f https://github.com/Erudika/scoold-pro.git up

The :latest tag is not supported but you can use :latest_stable. The command aws get-login-password gives you an access token to the private Docker registry which is valid for 12 hours.

In case you don’t want to use AWS CLI for logging into the Scoold Pro registry, install the AWS ECR Docker Credentials Helper.