It's a methods repository!
Agora is written in Scala, uses Akka/Spray for its web framework, and is built using SBT.
To obtain and build the app, perform the following commands:
$ git clone https://github.com/broadinstitute/agora.git
$ cp -r hooks/ .git/hooks/ #this step can be skipped if you use the rsync script to spin up locally
$ chmod 755 .git/hooks/apply-get-secrets.sh #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
To build the broadinstitute/agora
docker image, run
$ ./docker/build.sh jar -d build
This builds the agora jar, and copies it into the docker image (see Dockerfile
).
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.
Generate Agora configurations using the configurations in FireCloud-Develop:
APP_NAME=agora \
ENV=local \
OUTPUT_DIR=./config \
../firecloud-develop/configure.rb
Launch the generated docker compose file:
docker-compose -p agora -f config/docker-compose.yaml up
The docker compose configuration is set to point to https://local.broadinstitute.org:30443/