Advanced Configuration

To work with VODAN in a Box you are not required to change anything in the included docker-compose.yml nor configuration files. For some specific use cases you might want to make some of the following changes.

Persistence

In the basic setup, persistence is assured using mounted folders (bind mounts):

  • ./mongo/data - for MongoDB (used by both FDP and CRF Wizard)

  • ./blazegraph - for BlazeGraph triple store (used both by FDP and as CRF-in-RDF data storage)

This allows you to easily work with data used by VODAN in a Box. For example, you can clear those folders (while it is not running) to start over. In some cases you might want to use Docker volumes instead. Using Docker volumes is recommended when using Docker for Windows due to common problems related to mounting Windows folders into Linux containers.

# ...

mongo:
  image: mongo:4.2.3
  restart: always
  ports:
    - 27017:27017
  environment:
    MONGO_INITDB_DATABASE: wizard
  volumes:
     - mongoData:/data/db  # <- USING DOCKER VOLUME
    - ./mongo/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro

# ...

blazegraph:
  image: metaphacts/blazegraph-basic:2.2.0-20160908.003514-6
  ports:
    - 8085:8080
  volumes:
    - blazegraphData:/blazegraph-data    # <- USING DOCKER VOLUME

# ...

volumes:
  mongoData:
  blazegraphData:

To avoid persistence totally (i.e. all data will be lost after docker-compose down). Just comment out or delete lines related to mounting volumes in docker-compose.yml`:

# ...

mongo:
  image: mongo:4.2.3
  restart: always
  ports:
    - 27017:27017
  environment:
    MONGO_INITDB_DATABASE: wizard
  volumes:
    # - ./mongo/data:/data/db
    - ./mongo/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro

# ...

blazegraph:
  image: metaphacts/blazegraph-basic:2.2.0-20160908.003514-6
  ports:
    - 8085:8080
  #volumes:
  #  - ./blazegraph:/blazegraph-data

Important

Data backups are your responsibility. It is recommended to backup regularly all mounted volumes and store such backups in different site(s).

CRF Data Submission

To simplify the setup, VODAN in a Box uses the same triple store and the same namespace for both FAIR Data Point data and data of submitted CRFs. You can easily change this behavior using a configuration file submission-service/config.yml. All you need to have is URL of SPARQL endpoint to be used for dat submission. Additionally, if you want to maitain metadata in the FAIR Data Point you need to have a URL to distribution to be updated on submission.

triple-store:
  sparql-endpoint: http://my-triple.store/repository/my-crf-repo/sparql  # <- change to your SPARQL endpoint
  auth:  # <- only if triple store uses auth
    method: BASIC  # <- authentication method: BASIC (default) or DIGEST
    username: usernameToMyTripleStore  # <- change to your triple store username
    password: passwordToMyTripleStore  # <- change to your triple store password
  graph:  # !! do not change this section
    named: true
    type: http://purl.org/vodan/whocovid19crfsemdatamodel/who-covid-19-rapid-crf

fdp:
  token: a274793046e34a219fd0ea6362fcca61a001500b71724f4c973a017031653c20  # !! do not change this
  distribution: http://fdp_client/distribution/<distribution_uuid>  # <- change UUID (obtained from FAIR Data Point)

Do not forget to restart VODAN in a Box after making the changes using docker-compose down && docker-compose up -d.

Changing ports

If you need to change ports because you already use those for other services, you just need to adjust the mappings in docker-compose.yml file. For example, if you want to access BlazeGraph on other port than 8085 change the mapping 8085:8080 to something else, e.g. 8885:8080.

# ...

blazegraph:
  image: metaphacts/blazegraph-basic:2.2.0-20160908.003514-6
  ports:
    - 8885:8080  # <- USING 8885 INSTEAD OF 8085
  volumes:
    - ./blazegraph:/blazegraph-data

CRF visibility

You can easily change settings regarding CRF visibility according to your needs. In CRF Wizard (DSW), navigate as administrator to Settings and CRFs. You can allow to set visibility per single CRF upon its creation and also select the default one:

  • Public = every user can view and edit the CRF

  • Public Read-only = every user can view the CRF but only owner can edit it

  • Private = only owner can view and edit the CRF

CRF Wizard emails

There is optional configuration in dsw-server/application.yml related to email server. You need that to enable:

  • User registrations with email-based verification: upon registration a verification email is sent, otherwise administrator have to set new accounts as Active manually in users administration.

  • Password recovery: when someone forgots password, they can ask for reset link that will be sent to their email address, otherwise it can be again changes only by administrators.

To make those emails working, fill the configuration with your SMTP server and accoung. We recommend using secured emails with SSL/TLS or STARTTLS. For more information, visit DSW documentation.

Note

Registrations can be totally turned off using Settings and Authentication.