Installation using Docker
The Institute of Medical Informatics of the Goethe University Frankfurt provides two separate Docker
images for the local components of an OSSE patient registry. One image for installing and running
the OSSE EDC and one image for the Mainzelliste. The images are currently available from the IMI's
own Docker repository at docker.mig-frankfurt.de
. A database image is also provided. Although it
is possible to use a generic PostgreSQL image instead, the provided image makes the initialisation
of the databases easier.
OSSE EDC
OSSE EDC images are tagged with an exact version number of the OSSE EDC. The latest tag always represents the latest version of OSSE EDC. The OSSE EDC uses semantic versioning and tags are also available for major and minor application versions.
To run OSSE EDC from your server create a Docker Compose file based on the example below and change the following parameters according to your environment.
- Name and IP range of the Docker network and IP addresses of the containers.
- Replace the URLs
https://my-registry.example.com
and `https://mzl.my-registry.example.com with the correct URLs for your installation. You can also use IP addresses instead of domain names. - Change the value of the environment variable
REGISTRY_PASSWORD
to a secure password string (e.g. 32 random characters). This password will be used for authentication of the OSSE EDC against other components. It usually won't be used by a human user. - Change the values of the environment
variables
SHARE_ADMIN_PASS
,SHARE_EXPORTER_PASS
,API_KEY_EXPORT
andAPI_KEY
to random strings (e.g. 32 random alphanumeric characters). These passwords are set during database initialization and have to be entered in the OSSE EDC for authentication purposes once it is running.
Example of a minimal Docker compose file for running the OSSE EDC:
version: '2.0'
services:
db_edc:
image: docker.mig-frankfurt.de/samply/db:15
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=postgres
- DIST=test
- STORE_REST_HOST=https://my-registry.example.com/store-rest
- EDC_HOST=https://my-registry.example.com
- SHARE_ADMIN_PASS=%%%CHANGEME%%%
- SHARE_EXPORTER_PASS=%%%CHANGEME%%%
- API_KEY=%%%CHANGEME%%%
- API_KEY_EXPORT=%%%CHANGEME%%%
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
- db_edc:/var/lib/postgresql/data:z
networks:
osse-net:
ipv4_address: 192.168.42.10
edc:
image: docker.mig-frankfurt.de/samply/edc:3
restart: unless-stopped
environment:
- DIST=test
- MAINZELLISTE_HOST=https://mzl.my-registry.example.com
- EDC_HOST=https://my-registry.example.com
- SHARE_REST_HOST=https://my-registry.example.com/osse-share
- DB_HOST=192.168.42.10
- SHARE_DB_HOST=192.168.42.10
- REGISTRY_PASSWORD=%%%CHANGEME%%%
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
- ./data/edc/log/osse:/var/log/osse:z
- ./certs:/certs
- ./custom:/custom
depends_on:
- db_edc
networks:
osse-net:
ipv4_address: 192.168.42.8
networks:
osse-net:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.42.0/24
volumes:
db_edc:
Mainzelliste
The Mainzelliste images for OSSE are tagged with an exact version number of the Mainzelliste. There
is currently no latest
tag for the Mainzelliste for OSSE Docker image. The Mainzelliste uses
semantic versioning and tags are also available for major and minor application versions.
To run the Mainzelliste for OSSE from your server create a Docker Compose file based on the example below and change the following parameters according to your environment.
- Name and IP range of the Docker network and IP addresses of the containers.
- Change the value of the environment variable
ALLOWED_REMOTE_ADDRESSES
to the IP address of the OSSE EDC server. - Change the value of the environment variable
ALLOWED_ORIGINS
to the URL that is used to access the OSSE EDC. - Change the values of the environment variable
APIKEY
to a random string (e.g. 32 random alphanumeric characters). The API key has to be entered in the OSSE EDC for authentication against the Mainzelliste once it is running.
Example of a minimal Docker compose file for running the Mainzelliste for OSSE:
version: '2.0'
services:
db_mzl:
image: docker.mig-frankfurt.de/samply/db:15
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=postgres
- DIST=test
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
- db_mzl:/var/lib/postgresql/data:z
networks:
osse-net:
ipv4_address: 192.168.42.10
mzl:
image: docker.mig-frankfurt.de/pseudonymization/mainzelliste:1.8-OSSE
restart: unless-stopped
environment:
- ALLOWED_REMOTE_ADDRESSES=172.16.17.18
- ALLOWED_ORIGINS=https://my-registry.example.com
- DB_HOST=192.168.42.10
- APIKEY=%%%CHANGEME%%%
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
- ./data/mzl/log/mainzelliste:/var/log/mainzelliste:z
depends_on:
- db_mzl
networks:
osse-net:
ipv4_address: 192.168.42.9
networks:
osse-net:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.42.0/24
volumes:
db_mzl:
OSSE EDC & Mainzelliste on the same server
For testing and evaluation purposes it might be easier and quicker to install OSSE EDC and the Mainzelliste on the same server. The same PostgreSQL container can then be used for both applications. The data of both systems needs to be placed in two separate databases with different credentials.
Create a combined Docker Compose file from the examples above and change the relevant entries accordingly.