Skip to content

Getting started

To quickly install the service for development/testing purposes, we recommend deployment via Docker Compose, as described below. For more durable deployments on cloud native infrastructure, we also provide a Helm chart in the deployment/ directory (see Deployment). The FOCA deployment guide explains how FOCA apps, such as this one, are configured with Docker Compose and Helm (base config, overlays and secrets).

Quick start

With Git (tested with 2.17.1) and Docker with the Compose plugin (version 2) installed, clone the repository and start the registry with its MongoDB database:

git clone https://github.com/elixir-cloud-aai/cloud-registry.git
cd cloud-registry
docker compose up --build -d

The API is then served at http://localhost:8080/ga4gh/registry/v1/, with a Swagger UI at http://localhost:8080/ga4gh/registry/v1/ui:

curl -X GET "http://localhost:8080/ga4gh/registry/v1/services" -H  "accept: application/json"

Note

Where versions are indicated, they were used to test deployment. Other versions with the same major version numbers will likely work as well, especially newer ones.

MongoDB is only reachable from the app container; its data is kept in the Compose project's mongodb-data volume (e.g., cloud-registry_mongodb-data, see docker volume ls). Earlier versions kept the data elsewhere (see Upgrading).

Other useful commands

To shut down the service, run:

docker compose down

Add --volumes to also delete the database.

If you need to inspect the logs, call:

docker compose logs

Usage

Note

The image's Gunicorn listens on port 8080 (--bind, see Server); docker-compose.yaml publishes it on the host's loopback interface (127.0.0.1) only, as its development config accepts tokens for any audience. If you change the published port, update the URLs above accordingly. server.port of the config only sets the port of the development server (python -m cloud_registry.app).

Endpoints can be probed with curl, as above. Requests that change data need an access token (see Authentication). See API for all endpoints, and Configuration to change the config of the Docker Compose setup.