Skip to content
It's a methods repository!
Scala Python Shell Other
Branch: develop
Clone or download
Latest commit 63755b7 Oct 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
src revert (#287) Oct 11, 2019

Build Status Coverage Status


It's a methods repository!

Agora is written in Scala, uses Akka/Spray for its web framework, and is built using SBT.

Building and testing the Agora Web Service

To obtain and build the app, perform the following commands:

$ brew install git-secrets # if not already installed
$ git clone
$ cp -r hooks/ .git/hooks/ # this step can be skipped if you use the rsync script to spin up locally
$ chmod 755 .git/hooks/ # this step as well
$ cd agora
$ sbt package

You can additionally run unit test through:

$ sbt test

Make sure your config file isn't using the actual dev databases...

and integration test using:

$ sbt integrationTest

Building with docker

To build the broadinstitute/agora docker image, run

$ ./docker/ jar -d build

This builds the agora jar, and copies it into the docker image (see Dockerfile).

Running Your Own Agora Web Service

Assuming you have already built as per the instructions above, create a file called "/etc/agora.conf", with the appropriate configuration information populated. An example, with defaults, can found in src/main/resources/reference.conf. Move application.conf to src/main/resources/ Start a mongo database. Finally, run the following command to start the server:

$ sbt run

Go to the specified web address in your favorite browser to test that it is operational.

Running Your Own Agora Web Service Using Docker

Generate Agora configurations using the configurations in FireCloud-Develop:

APP_NAME=agora \ 
    ENV=dev \
    RUN_CONTEXT=local \
    OUTPUT_DIR=./config \

Launch the generated docker compose file:

docker-compose -p agora -f config/docker-compose.yaml up

or, use the config script:


The docker compose configuration is set to point to (where the endpoints can be viewed via Swagger).

You can’t perform that action at this time.