Installation

Overview

In this Tutorial we will explain how to set up your own instance of DIVAServices. This Tutorial is split into three main parts:

Setting up a Docker instance

DIVAServices requires a Docker instance running on a server. This can be the same server or a different one. We suggest to use a clean Ubuntu LTS operating system (currently 16.04).

For simplicity we refer here to the installation documentation for Docker itself:

Additionally the Docker Remote API needs to be enabled:

We suggest to additionally perform the following steps:

Additional Tool

Additionally the server running Docker needs to have the following tools installed

  • cwltool the executer for the Common Workflow Language
    • Installation instructions are provided on the Github Page
  • OpenSSH with login enabled for the account running docker
    • Note DIVAServices currently uses SSH with simple username/password authentication. This is not high security and it is therefore recommended that the Docker server does not have direct exposure to the internet.

Setting up the File Server

DIVAServices needs access to a location in which it can store its files. This can be on the same server where DIVAServices is installed, or on a separate server.

In order to share data between the different instances we suggest setting up a Network File System to which all different involved machines have access to.

Setting up DIVAServices

DIVAServices can be set up in two different ways:

  • as a Docker container
  • running locally as a regular application using Node.JS

We suggest to run it as a Docker container as it is simpler to install and to maintain.

Install DIVAServices using docker-compose

Downloading the DIVAServices sources

The first step for the insallation is to clone the github repository:

git clone https://github.com/lunactic/DIVAServices.git

Note If you want to run the latest updates check out the development branch (this can be unstable)

Build the Docker image

The docker image can be built with docker-compose.

In the docker-compose.yaml file you need to change the mountpoints for the volumes:

version: '3.3'
services:
  dev_web:
    env_file:
     .env_dev
    build: .
    command: yarn run start
    ports:
     - "8080:8080"
    volumes:
     - .:/code
     - PATH_TO_YOUR_DATA_LOCATION:/data

And then you can build the Docker Image using

docker-compose -f docker-compose.yaml build