It's a methods repository!
Agora is written in Scala, uses Akka/Akka-HTTP for its web framework, and is built using SBT.
To obtain and build the app, perform the following commands:
$ brew install git-secrets # if not already installed
$ git clone https://github.com/broadinstitute/agora.git
$ cd agora
$ sbt assembly
You can additionally run unit test through:
$ sbt test
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.
- Docker Desktop (4GB+, 8GB recommended)
- Broad internal internet connection (or VPN, non-split recommended)
- Render the local configuration files. From the root of the Agora repo, run:
./local-dev/bin/render
After satisfying the above requirements, execute the following command from the root of the Agora repo:
./config/docker-rsync-local-agora.sh
By default, this will set up an instance of rawls pointing to the database and Sam in dev. It will also set up a process that will watch the local files for changes, and restart the service when source files change.
See docker-rsync-local-rawls.sh for more configuration options.
The docker compose configuration is set to point to https://local.broadinstitute.org:30443/ (where the endpoints can be viewed via Swagger).