Skip to content

Installation with Docker

Setup Accurids in Your Environment

Accurids is distributed via our AWS Docker repository. To get access to our Docker repository, we require your Amazon account ID for which we then grant access to our Docker registry. Once that is done, you can login to our repository via the Amazon CLI tools. Detailed information can be found here at AWS.

We recommend to run Accurids on a server with at least 16 CPUs, 32 GiB memory, 100 GiB provisioned IOPS SSD volume and 3000 IOPS (e.g., an AWS EC2 instance type c5.4xlarge).

Environment Preparation

Install Docker

Accurids runs in docker containers. If docker is already installed on your system, you can skip this step. Otherwise, install docker (example for Amazon Linux).

sudo yum update -y
sudo amazon-linux-extras install docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker ec2-user

Install Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Afterwards, log off and on again.

Installation of Docker Image

Accurids is distributed as a Docker image, so you need Docker to start it. We also have a default docker-compose file to get you started even faster, so make sure you also have docker compose installed. Here is the default docker-compose.yml

version: "3.7"
services:
  accurids:
    image: 858273179365.dkr.ecr.eu-central-1.amazonaws.com/accurids:stable
    container_name: accurids
    restart: always
    ports:
      - "8080:8080"
    environment:
      - "elasticsearch_host=elastic"
      - "elasticsearch_cluster=docker-cluster"
      - "spring.mail.username=smtp-user"
      - "spring.mail.password=smtp-password"
      - "spring.mail.host=smtp.example.org"
      - "accurids.from-email=office@accurids.com"
      - "accurids.maxParallelImportsPerNode=2"
      - "spring.profiles.active=local-h2"
    depends_on:
      - "elastic"
    volumes:
      - "working-dir:/working-dir"
    networks:
      - accunet

  elastic:
    image: elasticsearch:7.9.3
    container_name: elastic
    restart: always
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - esdata:/usr/share/elasticsearch/data
    networks:
      - accunet
    environment:
      - "discovery.type=single-node"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://elastic:9200"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s

volumes:
  working-dir:
  esdata:

networks:
  accunet:

Based on your preference and available system resources, you can set the maximum number of parallel dataset imports. To do so, set the optional environment variable accurids.maxParallelImports (as shown in above example) to the desired integer value. When the variable is not set, a maximum of two parallel loads are conducted.

Configure Mail Services

When built-in user management is activated, Accurids can verify the registration by email.

This is not applicable, when Azure AD is used for authentication. In that case or if you want to disable email confirmation, set accurids.confirm-user-email=false. No further configurations are needed in this case and all mail-related variables mentioned below can be removed.

To setup the email service, set credentials for authentication with spring.mail.username and spring.mail.password. Specify the mail server to connect to with spring.mail.host and spring.mail.port. The pre-configured default port is 587. Please ensure that the mailserver is reachable from the server where Accurids runs.

Furthermore, the sender address of emails sent by Accurids can be customized with accurids.from-email. The default sender address is office@accurids.com.

Create a Network and Volumes

The Accurids docker network accunet is used for network communication and external volumes to store data and configurations. Usage of the external volumes prevents any data loss after containers restarting.

Create a network and volumes to allow communication between Accurids and Elasticsearch containers:

docker network create accunet
docker volume create working-dir
docker volume create esdata

Make sure that all was created correctly:

docker network ls
docker volume ls

Starting Accurids and ElasticSearch Containers

The newest version of Accurids can be fetched via ECR using your YOUR_AWS_ACCESS_KEY_ID for which we granted access to our Docker registry. This can be done by the following commands.

$(aws ecr get-login --no-include-email --region eu-central-1 --registry-ids YOUR_AWS_ACCESS_KEY_ID)
docker-compose pull
docker-compose up -d

Make sure that services are up and running.

docker stats

First Login

After installation you can open your browser and navigate to your servers. If you used the default docker-compose file, then you also have to specify the port (e.g., http://127.0.0.1:8080). The first thing you should do is to click on the "Sign In" button, then click on the "Sign Up" link beneath the form. Enter your account details to create the first user. The first user will automatically be granted the administrator role.

Upload Data

Go to the Datasets view of Accurids and upload an RDF file of choice to get first content in. If you don't have an RDF file at hand, you can download examples such as the Gene Ontology from EBI.

Search & Browse

Go to the Search and type '*' or a term related to the content you uploaded (e.g., 'regulator' or 'aspirin' - if you uploaded the Gene Ontology).