Installation with Docker
Setup Accurids in Your Environment
Via Amazon ECR
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.
Please update the image
value in accurids
container inside docker-compose.yaml
file in later step to 858273179365.dkr.ecr.eu-central-1.amazonaws.com/accurids:stable
.
Via Tar Archive
This step require manual download of the tar file and Docker installed.
Steps:
- We will provide a link where you can download the Accurids Docker image.
- Download the Docker image from the link into your local machine.
- Load the image to Docker.
Load image to Docker by running this command (eg: the downloaded file name is accurids-2.1.0.tar.gz
):
docker load < accurids-2.1.0.tar.gz
Test if the image is loaded. The full image name will be Repository:Tag, which you can see with this command:
docker images -a
Example: The Repository is accurids/accurids
and the Tag is 2.1.0
, therefore the full image name is accurids/accurids:2.1.0
.
Please update the image
value in accurids
container inside docker-compose.yaml
file in later step to the full image name (eg: accurids/accurids:2.1.0
).
Recommended Hardware
We recommend to run Accurids on a server with at least 16 CPUs, 64 GiB memory, 300 GiB provisioned IOPS SSD volume and 3000 IOPS (e.g., an AWS EC2 instance type m7a.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) or follow instructions in https://docs.docker.com/get-docker/.
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/2.22.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.yaml
file:
version: "3.7"
services:
accurids:
image: <!!! CHANGE ME !!!>
container_name: accurids
restart: always
ports:
- "8080:8080"
environment:
- "_JAVA_OPTIONS=-Xmx24g"
- "accurids.confirm-user-email=false"
- "accurids.maxParallelImportsPerNode=2"
- "database.host=postgres"
- "database.password=accurids"
- "elasticsearch_cluster=docker-cluster"
- "elasticsearch_host=elastic"
- "spring.profiles.active=postgres"
depends_on:
- "elastic"
- "postgres"
volumes:
- "working-dir:/working-dir"
networks:
- accunet
elastic:
image: docker.elastic.co/elasticsearch/elasticsearch:8.10.3
container_name: elastic
restart: always
ports:
- "9200:9200"
- "9300:9300"
volumes:
- esdata:/usr/share/elasticsearch/data
networks:
- accunet
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms30g -Xmx30g"
- "indices.query.bool.max_clause_count=2048"
- "http.max_initial_line_length=16kb"
- "xpack.security.enabled=false"
healthcheck:
test: [ "CMD", "curl", "-f", "http://elastic:9200" ]
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s
postgres:
image: postgres:13.2
container_name: postgres
restart: always
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- accunet
environment:
- POSTGRES_DB=accurids
- POSTGRES_USER=accurids
- POSTGRES_PASSWORD="accurids"
- POSTGRES_HOST_AUTH_METHOD=trust
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U accurids" ]
interval: 5s
volumes:
working-dir:
esdata:
pgdata:
networks:
accunet:
Reason for xpack.security.enabled=false
because Elasticsearch is only accessible by other services within this isolated Docker network.
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 OAuth2 Setup 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
.
Preload Datasets
Please refer to the Preload Datasets documentation page.
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, Elasticsearch, and Postgres containers:
docker network create accunet
docker volume create working-dir
docker volume create esdata
docker volume create pgdata
Make sure that all was created correctly:
docker network ls
docker volume ls
Starting Accurids, Elasticsearch, and Postgres Containers
Using Docker Image from Amazon ECR
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
Using Docker Image from Tar Archive
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).