Compare commits

...

16 Commits

Author SHA1 Message Date
6bb922fa99 Add Opal 2023-03-01 14:06:36 +01:00
dc4829bd5f Add Teiler Core 2023-02-21 15:41:51 +01:00
1dc146d8f4 Add Endpoint for Teiler 2023-02-21 15:37:12 +01:00
ee554f24cb Merge remote-tracking branch 'origin/feature/teiler' into feature/teiler
# Conflicts:
#	ccp/modules/teiler-ui-compose.yml
2023-02-20 15:37:13 +01:00
d46c100220 update keykloak config 2023-02-20 14:49:45 +01:00
a90d6855b0 Update Teiler Core config 2023-02-15 16:25:55 +01:00
2785365182 Add original Keycloak config 2023-02-14 15:55:44 +01:00
969469db04 beautiful config 2023-02-14 10:42:38 +01:00
82f6f886db Rename teiler to exporter (bugfix) 2023-02-13 18:28:55 +01:00
7b15e7a3d5 Rename teiler to exporter 2023-02-13 15:29:45 +01:00
9a924df0e5 Configure login extern URLs 2023-02-13 10:23:14 +01:00
1c9edf93d4 Bugfix: services in teiler-ui-compose.yml 2023-02-10 16:04:42 +01:00
168967aace Bugfix: fix modules path 2023-02-10 16:01:04 +01:00
c757c35e65 Change images of dktk-teiler and dktk-keycloak 2023-02-10 15:47:19 +01:00
6afb8d53dc Add nngm and exliquid modules 2023-02-10 13:11:50 +01:00
5a5a95d76d Add Teiler UI and Teiler module 2023-02-10 12:54:38 +01:00
19 changed files with 467 additions and 68 deletions

2
.gitignore vendored
View File

@ -1,6 +1,6 @@
##Ignore site configuration ##Ignore site configuration
.gitmodules .gitmodules
site-config/* site-config/*
.idea
## Ignore site configuration ## Ignore site configuration
*/docker-compose.override.yml */docker-compose.override.yml

View File

@ -1,19 +0,0 @@
#!/bin/bash
function exliquidSetup() {
case ${SITE_ID} in
berlin|dresden|essen|frankfurt|freiburg|luebeck|mainz|muenchen-lmu|muenchen-tu|mannheim|tuebingen)
EXLIQUID=1
;;
dktk-test)
EXLIQUID=1
;;
*)
EXLIQUID=0
;;
esac
if [[ $EXLIQUID -eq 1 ]]; then
log INFO "EXLIQUID setup detected -- will start Report-Hub."
OVERRIDE+=" -f ./$PROJECT/exliquid-compose.yml"
fi
}

View File

@ -0,0 +1,17 @@
#!/bin/bash
case ${SITE_ID} in
berlin|dresden|essen|frankfurt|freiburg|luebeck|mainz|muenchen-lmu|muenchen-tu|mannheim|tuebingen)
EXLIQUID=1
;;
dktk-test)
EXLIQUID=1
;;
*)
EXLIQUID=0
;;
esac
if [[ $EXLIQUID -eq 1 ]]; then
log INFO "EXLIQUID setup detected -- will start Report-Hub."
OVERRIDE+=" -f ./$PROJECT/modules/exliquid-compose.yml"
fi

View File

@ -0,0 +1,42 @@
version: "3.7"
services:
exporter:
image: docker.verbis.dkfz.de/ccp/dktk-exporter:latest
container_name: bridgehead-ccp-exporter
environment:
LOG_LEVEL: "INFO"
EXPORTER_API_KEY: "${EXPORTER_API_KEY}"
CROSS_ORIGINS: "https://${HOST}/ccp-teiler-root-config"
EXPORTER_DB_USER: "exporter"
EXPORTER_DB_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh
EXPORTER_DB_URL: "jdbc:postgresql://exporter-db:5432/exporter"
CLEAN_TEMP_FILES_CRON_EXPRESSION: "0 0 1 * * *"
TEMP_FILES_LIFETIME_IN_DAYS: "1"
CLEAN_WRITE_FILES_CRON_EXPRESSION: "0 0 2 * * *"
WRITE_FILES_LIFETIME_IN_DAYS: "30"
labels:
- "traefik.enable=true"
- "traefik.http.routers.exporter_ccp.rule=PathPrefix(`/ccp-exporter`)"
- "traefik.http.services.exporter_ccp.loadbalancer.server.port=8092"
- "traefik.http.routers.exporter_ccp.tls=true"
- "traefik.http.routers.exporter_ccp.middlewares=auth"
volumes:
- "exporter:/app/exporter-files"
exporter-db:
image: postgres:15.1-alpine
container_name: bridgehead-ccp-exporter-db
environment:
POSTGRES_USER: "exporter"
POSTGRES_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh
POSTGRES_DB: "exporter"
volumes:
- "exporter-db:/var/lib/postgresql/data"
volumes:
exporter-db:
name: "exporter-db"
exporter:
name: "exporter"

View File

@ -0,0 +1,8 @@
#!/bin/bash
if [ -n "$ENABLE_EXPORTER" ];then
log INFO "Exporter setup detected -- will start Exporter service."
OVERRIDE+=" -f ./$PROJECT/modules/exporter-compose.yml"
fi
# TODO: Generate password in another way so that not all passwords are the same?
EXPORTER_DB_PASSWORD="$(echo \"This is a salt string to generate one consistent password. It is not required to be secret.\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"

View File

@ -1,21 +1,5 @@
#!/bin/bash #!/bin/bash
function idManagementSetup() {
if [ -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
log INFO "id-management setup detected -- will start id-management (mainzelliste & magicpl)."
OVERRIDE+=" -f ./$PROJECT/modules/id-management-compose.yml"
# Auto Generate local Passwords
PATIENTLIST_POSTGRES_PASSWORD="$(echo \"id-management-module-db-password-salt\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
IDMANAGER_LOCAL_PATIENTLIST_APIKEY="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
# Transform Seeds Configuration to pass it to the Mainzelliste Container
PATIENTLIST_SEEDS_TRANSFORMED="$(declare -p PATIENTLIST_SEEDS | tr -d '\"' | sed 's/\[/\[\"/g' | sed 's/\]/\"\]/g')"
# Ensure old ids are working !!!
export IDMANAGEMENT_FRIENDLY_ID=$(legacyIdMapping "$SITE_ID")
fi
}
# Transform into single string array, e.g. 'dktk-test' to 'dktk test' # Transform into single string array, e.g. 'dktk-test' to 'dktk test'
# Usage: transformToSingleStringArray 'dktk-test' -> 'dktk test' # Usage: transformToSingleStringArray 'dktk-test' -> 'dktk test'
@ -50,3 +34,18 @@ function legacyIdMapping() {
normalized_string=$(applySpecialCases "$uppercase_string"); normalized_string=$(applySpecialCases "$uppercase_string");
echo "$normalized_string" | tr -d ' ' echo "$normalized_string" | tr -d ' '
} }
if [ -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
log INFO "id-management setup detected -- will start id-management (mainzelliste & magicpl)."
OVERRIDE+=" -f ./$PROJECT/modules/id-management-compose.yml"
# Auto Generate local Passwords
PATIENTLIST_POSTGRES_PASSWORD="$(echo \"id-management-module-db-password-salt\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
IDMANAGER_LOCAL_PATIENTLIST_APIKEY="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
# Transform Seeds Configuration to pass it to the Mainzelliste Container
PATIENTLIST_SEEDS_TRANSFORMED="$(declare -p PATIENTLIST_SEEDS | tr -d '\"' | sed 's/\[/\[\"/g' | sed 's/\]/\"\]/g')"
# Ensure old ids are working !!!
export IDMANAGEMENT_FRIENDLY_ID=$(legacyIdMapping "$SITE_ID")
fi

10
ccp/modules/mtba-setup.sh Normal file
View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -n "$ENABLE_MTBA" ];then
log INFO "MTBA setup detected -- will start MTBA Service and CBioPortal."
if [ ! -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
log ERROR "Detected MTBA Module configuration but ID-Management Module seems not to be configured!"
exit 1;
fi
OVERRIDE+=" -f ./$PROJECT/modules/mtba-compose.yml"
fi

View File

@ -2,7 +2,7 @@ version: "3.7"
services: services:
connector: connector:
container_name: bridgehead-connector container_name: bridgehead-nngm-connector
image: docker.verbis.dkfz.de/ccp/connector:bk2 image: docker.verbis.dkfz.de/ccp/connector:bk2
environment: environment:
POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASSWORD} POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASSWORD}
@ -19,7 +19,7 @@ services:
connector_db: connector_db:
image: postgres:9.5-alpine image: postgres:9.5-alpine
container_name: bridgehead-ccp-connector-db container_name: bridgehead-nngm-connector-db
volumes: volumes:
- "connector_db_data:/var/lib/postgresql/data" - "connector_db_data:/var/lib/postgresql/data"
environment: environment:

View File

@ -0,0 +1,7 @@
#!/bin/bash
if [ -n "$NNGM_CTS_APIKEY" ]; then
log INFO "nNGM setup detected -- will start nNGM Connector."
OVERRIDE+=" -f ./$PROJECT/modules/nngm-compose.yml"
fi
CONNECTOR_POSTGRES_PASSWORD="$(echo \"This is a salt string to generate one consistent password. It is not required to be secret.\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"

View File

@ -0,0 +1,79 @@
version: "3.7"
services:
############################################ DataSHIELD Client (Rocker R-Studio)
rstudio:
image: docker.verbis.dkfz.de/dktk/bridgehead-rstudio:latest
container_name: bridgehead-rstudio
#TODO: Connect with Keycloak: https://rocker-project.org/images/versioned/rstudio.html
environment:
USER: "ruser"
PASSWORD: "${RSTUDIO_PASSWORD}"
labels:
- "traefik.enable=true"
- "traefik.http.routers.login.rule=PathPrefix(`/rstudio`)"
- "traefik.http.services.login.loadbalancer.server.port=8787"
- "traefik.http.routers.login.tls=true"
volumes:
- "rstudio-config:/home/rstudio/.config/rstudio"
- "rstudio-workspace:/home/rstudio/workspace"
- "rstudio-user-files:/home/user-files"
############################################ DataSHIELD Server (Opal)
opal:
image: obiba/opal:4.5
container_name: bridgehead-opal
labels:
- "traefik.enable=true"
- "traefik.http.routers.login.rule=PathPrefix(`/opal`)"
- "traefik.http.services.login.loadbalancer.server.port=8080" #TODO: HTTPS -> 8443
- "traefik.http.routers.login.tls=true"
links:
- opal-rserver
- opal-mongo
- opal-db
environment:
JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC"
# OPAL_ADMINISTRATOR_USER: "administrator"
OPAL_ADMINISTRATOR_PASSWORD: "${OPAL_ADMINISTRATOR_PASSWORD}"
MONGO_HOST: "opal-mongo"
MONGO_PORT: "27017"
POSTGRESDATA_HOST: "opal-db"
POSTGRESDATA_DATABASE: "opal"
POSTGRESDATA_USER: "opal"
POSTGRESDATA_PASSWORD: "${OPAL_DB_PASSWORD}"
ROCK_HOSTS: "opal-rserver:8085"
volumes:
- "opal:/srv"
opal-mongo: # IDs
image: mongo:4.2 # TODO: Update mongo:6.0.4
container_name: bridgehead-opal-mongo
opal-db: # Data
image: postgres:15.1
container_name: bridgehead-opal-db
environment:
POSTGRES_PASSWORD: "${OPAL_DB_PASSWORD}"
POSTGRES_USER: "opal"
POSTGRES_DB: "opal"
volumes:
- "opal-db:/var/lib/postgresql/data"
opal-rserver:
image: datashield/rock-base:6.2-R4.2 # https://datashield.discourse.group/t/ds-aggregate-method-error/416/4
container_name: bridgehead-opal-rserver
volumes:
rstudio-config:
name: "rstudio-config"
rstudio-workspace:
name: "rstudio-workspace"
rstudio-user-files:
name: "rstudio-user-files"
opal-db:
name: "opal-db"
opal:
name: "opal"

View File

@ -0,0 +1,7 @@
#!/bin/bash
if [ "$ENABLE_OPAL" == true ];then
log INFO "Opal setup detected -- will start Opal services."
OVERRIDE+=" -f ./$PROJECT/modules/opal-compose.yml"
fi
OPAL_DB_PASSWORD="$(echo \"This is a salt string to generate one consistent password. It is not required to be secret.\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"

0
ccp/modules/opal.md Normal file
View File

View File

@ -0,0 +1,267 @@
version: "3.7"
services:
############################################ Keycloak
login-db:
image: "postgres:15.1"
container_name: bridgehead-login-db
environment:
POSTGRES_USER: "keycloak"
POSTGRES_PASSWORD: "${KEYCLOAK_DB_PASSWORD}" # Set in teiler-setup.sh
POSTGRES_DB: "keycloak"
volumes:
- "login-db:/var/lib/postgresql/data"
login:
#image: "jboss/keycloak:16.1.1"
image: docker.verbis.dkfz.de/ccp/dktk-keycloak:latest
container_name: bridgehead-login
environment:
KEYCLOAK_ADMIN: "admin"
KEYCLOAK_ADMIN_PASSWORD: "${KEYCLOAK_ADMIN_PASSWORD}"
KC_DB_PASSWORD: "${KEYCLOAK_DB_PASSWORD}" # Set in teiler-setup.sh
KC_HOSTNAME_URL: "https://${HOST}/login"
KC_HOSTNAME_STRICT: "false"
KC_PROXY_ADDRESS_FORWARDING: "true"
TEILER_ROOT_CONFIG_EXTERN_URL: "https://${HOST}/ccp-teiler"
command:
- start-dev --import-realm --proxy edge --http-relative-path=/login
labels:
- "traefik.enable=true"
- "traefik.http.routers.login.rule=PathPrefix(`/login`)"
- "traefik.http.services.login.loadbalancer.server.port=8080"
- "traefik.http.routers.login.tls=true"
depends_on:
- login-db
############################################ Teiler-UI
teiler-root-config:
image: samply/teiler-root-config:developer
container_name: bridgehead-teiler-root-config
labels:
- "traefik.enable=true"
- "traefik.http.routers.teiler_root_config_ccp.rule=PathPrefix(`/ccp-teiler`)"
- "traefik.http.services.teiler_root_config_ccp.loadbalancer.server.port=9000"
- "traefik.http.routers.teiler_root_config_ccp.tls=true"
environment:
TEILER_CORE_URL: "https://${HOST}/ccp-teiler-core"
TEILER_UI_URL: "https://${HOST}/ccp-teiler-ui"
DEFAULT_LANGUAGE: "de"
teiler-ui:
image: samply/teiler-ui:developer
container_name: bridgehead-teiler-ui
# ports:
# - 4200:80
labels:
- "traefik.enable=true"
- "traefik.http.routers.teiler_ui_ccp.rule=PathPrefix(`/ccp-teiler-ui`)"
- "traefik.http.services.teiler_ui_ccp.loadbalancer.server.port=80"
- "traefik.http.routers.teiler_ui_ccp.tls=true"
environment:
DEFAULT_LANGUAGE: "DE"
TEILER_CORE_URL: "https://${HOST}/ccp-teiler-core"
KEYCLOAK_URL: "https://${HOST}/login"
KEYCLOAK_REALM: "teiler-ui"
KEYCLOAK_CLIENT_ID: "teiler-ui"
TEILER_ADMIN_NAME: "${OPERATOR_FIRST_NAME} ${OPERATOR_LAST_NAME}"
TEILER_ADMIN_EMAIL: "${OPERATOR_EMAIL}"
TEILER_ADMIN_PHONE: "${OPERATOR_PHONE}"
TEILER_PROJECT: "${PROJECT}"
teiler-core:
image: samply/teiler-core:developer
container_name: bridgehead-teiler-core
volumes:
- "/etc/bridgehead/ccp.conf:/app/ccp.conf"
labels:
- "traefik.enable=true"
- "traefik.http.routers.teiler_core_ccp.rule=PathPrefix(`/ccp-teiler-core`)"
- "traefik.http.services.teiler_core_ccp.loadbalancer.server.port=8085"
- "traefik.http.routers.teiler_core_ccp.tls=true"
environment:
LOG_LEVEL: "INFO"
APPLICATION_PORT: "8085"
DEFAULT_LANGUAGE: "DE"
CONFIG_ENV_VAR_PATH: "/app/ccp.conf"
TEILER_CONFIG_UPDATER_CRON: "0 1 * * * *"
TEILER_ROOT_CONFIG_URL: "https://${HOST}/ccp-teiler"
TEILER_UI_DE_URL: "https://${HOST}/ccp-teiler-ui/de"
TEILER_UI_EN_URL: "https://${HOST}/ccp-teiler-ui/en"
TEILER_APP1_NAME: "config"
# TEILER_APP2_NAME: "quality-report"
TEILER_APP3_NAME: "keycloak"
TEILER_APP3_TITLE: "Keycloak"
TEILER_APP4_DESCRIPTION_EN: "Authentication site"
TEILER_APP4_DESCRIPTION_DE: "Authentifizierungsseite"
TEILER_APP4_SOURCEURL: "https://${HOST}/login/auth/"
TEILER_APP4_ROLES: "TEILER_ADMIN"
TEILER_APP4_ISACTIVATED: "true"
TEILER_APP4_ICONSOURCEURL: "https://upload.wikimedia.org/wikipedia/commons/2/29/Keycloak_Logo.png"
TEILER_APP4_ORDER: "5"
TEILER_APP4_ISEXTERNALLINK: "true"
TEILER_APP4_ISLOCAL: "true"
# TEILER_APP5_NAME: "pgadmin"
# TEILER_APP5_TITLE: "PgAdmin"
# TEILER_APP5_DESCRIPTION: "Database Management"
# TEILER_APP5_SOURCEURL: "http://localhost:5000"
# TEILER_APP5_ROLES: "TEILER_ADMIN"
# TEILER_APP5_ISACTIVATED: "true"
# TEILER_APP5_ICONSOURCEURL: "https://user-images.githubusercontent.com/24623425/36042969-f87531d4-0d8a-11e8-9dee-e87ab8c6a9e3.png"
# TEILER_APP5_ORDER: "6"
# TEILER_APP5_ISEXTERNALLINK: "true"
# TEILER_APP5_ISLOCAL: "true"
TEILER_APP6_NAME: "ldm"
TEILER_APP6_TITLE_EN: "Local data management"
TEILER_APP6_TITLE_DE: "Lokales Datenmanagement"
TEILER_APP6_DESCRIPTION_EN: "Local Data Management"
TEILER_APP6_DESCRIPTION_DE: "Lokales Datenmanagement"
TEILER_APP6_SOURCEURL: "${CENTRAXX_URL}"
TEILER_APP6_ROLES: "TEILER_PUBLIC"
TEILER_APP6_ISACTIVATED: "${IS_DKTK_SITE}"
TEILER_APP6_ICONCLASS: "bi bi-server"
TEILER_APP6_ORDER: "7"
TEILER_APP6_ISEXTERNALLINK: "true"
TEILER_APP6_ISLOCAL: "true"
TEILER_APP7_NAME: "id-manager"
TEILER_APP7_TITLE: "ID-Manager"
TEILER_APP7_DESCRIPTION: "ID Manager"
TEILER_APP7_SOURCEURL: "https://${HOST}/id-manager/index.html"
TEILER_APP7_ROLES: "TEILER_PUBLIC"
TEILER_APP7_ISACTIVATED: "true"
TEILER_APP7_ICONCLASS: "bi bi-person-bounding-box"
TEILER_APP7_ORDER: "8"
TEILER_APP7_ISEXTERNALLINK: "true"
TEILER_APP7_ISLOCAL: "true"
TEILER_APP8_NAME: "patient-list"
TEILER_APP8_TITLE_EN: "Patient List"
TEILER_APP8_TITLE_DE: "Patientenliste"
TEILER_APP8_DESCRIPTION_EN: "Patient List"
TEILER_APP8_DESCRIPTION_DE: "Patientenliste"
TEILER_APP8_SOURCEURL: "https://${HOST}/patientlist"
TEILER_APP8_ROLES: "TEILER_PUBLIC"
TEILER_APP8_ISACTIVATED: "true"
TEILER_APP8_ICONCLASS: "bi bi-person-rolodex"
TEILER_APP8_ORDER: "9"
TEILER_APP8_ISEXTERNALLINK: "true"
TEILER_APP8_ISLOCAL: "true"
TEILER_APP9_NAME: "project-pseudonymisation"
TEILER_APP9_TITLE_EN: "Project Pseudonymisation"
TEILER_APP9_TITLE_DE: "Projectpseudonymisierung"
TEILER_APP9_DESCRIPTION_EN: "Project Pseudonymisation"
TEILER_APP9_DESCRIPTION_DE: "Projectpseudonymisierung"
TEILER_APP9_SOURCEURL: "https://${HOST}/id-manager/html/projectSelection.html"
TEILER_APP9_ROLES: "TEILER_PUBLIC"
TEILER_APP9_ISACTIVATED: "true"
TEILER_APP9_ICONCLASS: "bi bi-person-lines-fill"
TEILER_APP9_ORDER: "10"
TEILER_APP9_ISEXTERNALLINK: "true"
TEILER_APP9_ISLOCAL: "true"
TEILER_APP10_NAME: "federated-search"
TEILER_APP10_TITLE: "Lens"
TEILER_APP10_DESCRIPTION_EN: "Federated Search"
TEILER_APP10_DESCRIPTION_DE: "Föderierte Suche"
TEILER_APP10_SOURCEURL: "https://demo.lens.samply.de/"
TEILER_APP10_ROLES: "TEILER_PUBLIC"
TEILER_APP10_ISACTIVATED: "true"
TEILER_APP10_ICONCLASS: "bi bi-search"
TEILER_APP10_ORDER: "13"
TEILER_APP10_ISEXTERNALLINK: "true"
TEILER_APP10_ISLOCAL: "false"
TEILER_APP11_NAME: "central-patient-list"
TEILER_APP11_TITLE_EN: "Central Patient List"
TEILER_APP11_TITLE_DE: "Zentrale Patientenliste"
TEILER_APP11_DESCRIPTION_EN: "Central Patient List"
TEILER_APP11_DESCRIPTION_DE: "Zentrale Patientenliste"
TEILER_APP11_SOURCEURL: "https://patientlist.ccp-it.dktk.dkfz.de/"
TEILER_APP11_ROLES: "TEILER_PUBLIC"
TEILER_APP11_ISACTIVATED: "true"
TEILER_APP11_ICONCLASS: "bi bi-person-rolodex"
TEILER_APP11_ORDER: "14"
TEILER_APP11_ISEXTERNALLINK: "true"
TEILER_APP11_ISLOCAL: "false"
TEILER_APP12_NAME: "central id-manager"
TEILER_APP12_TITLE_EN: "Central ID-Manager"
TEILER_APP12_TITLE_DE: "Zentraler ID-Manager"
TEILER_APP12_DESCRIPTION_EN: "Central ID Manager"
TEILER_APP12_DESCRIPTION_DE: "Zentraler ID-Manager"
TEILER_APP12_SOURCEURL: "https://dktk-kne.kgu.de/"
TEILER_APP12_ROLES: "TEILER_PUBLIC"
TEILER_APP12_ISACTIVATED: "true"
TEILER_APP12_ICONCLASS: "bi bi-person-bounding-box"
TEILER_APP12_ORDER: "15"
TEILER_APP12_ISEXTERNALLINK: "true"
TEILER_APP12_ISLOCAL: "false"
# TODO: Icinga to be replaced by Zabbix
TEILER_APP13_NAME: "monitoring"
TEILER_APP13_TITLE: "Icinga"
TEILER_APP13_DESCRIPTION: "Icinga Monitoring"
TEILER_APP13_SOURCEURL: "https://monitor.vmitro.de/icingaweb2/dashboard"
TEILER_APP13_ROLES: "TEILER_ADMIN"
TEILER_APP13_ISACTIVATED: "true"
TEILER_APP13_ICONSOURCEURL: "https://images.ctfassets.net/o7xu9whrs0u9/QmL67mCGdRQ8PBcuKHGnF/858c0aee95762f59d67b25073f9483c2/icinga-logo.png"
TEILER_APP13_ORDER: "16"
TEILER_APP13_ISEXTERNALLINK: "true"
TEILER_APP13_ISLOCAL: "false"
# TEILER_APP14_NAME: "function-tests"
# TEILER_APP15_NAME: "event-log"
TEILER_APP16_NAME: "active-inquiries"
TEILER_APP16_BACKENDURL: "https://${HOST}/ccp-exporter"
TEILER_APP17_NAME: "archived-inquiries"
TEILER_APP17_BACKENDURL: "https://${HOST}/ccp-exporter"
TEILER_APP18_NAME: "failed-inquiries"
TEILER_APP18_BACKENDURL: "https://${HOST}/ccp-exporter"
TEILER_APP19_NAME: "inquiry"
TEILER_APP19_INMENU: "false"
# TEILER_APP20_NAME: "cbioportal"
# TEILER_APP20_TITLE: "cBioportal"
# TEILER_APP20_DESCRIPTION: "Interactive exploration of multidimensional cancer genomics data sets"
# TEILER_APP20_SOURCEURL: "http://localhost:8082"
# TEILER_APP20_ROLES: "TEILER_USER"
# TEILER_APP20_ISACTIVATED: "true"
# TEILER_APP20_ICONSOURCEURL: "https://docs.cbioportal.org/images/cbio-logo.png"
# TEILER_APP20_ORDER: "17"
# TEILER_APP20_ISEXTERNALLINK: "true"
# TEILER_APP20_ISLOCAL: "true"
# TEILER_APP21_NAME: "mtba-bp"
# TEILER_APP21_TITLE: "MTBA-BP"
# TEILER_APP21_DESCRIPTION: "MTBA Camunda Business Process"
# TEILER_APP21_SOURCEURL: "http://localhost:8480"
# TEILER_APP21_ROLES: "TEILER_ADMIN"
# TEILER_APP21_ISACTIVATED: "true"
# TEILER_APP21_ICONSOURCEURL: "https://camunda.com/wp-content/uploads/2020/05/logo-camunda-black.svg"
# TEILER_APP21_ORDER: "18"
# TEILER_APP21_ISEXTERNALLINK: "true"
# TEILER_APP21_ISLOCAL: "true"
TEILER_APP22_NAME: "dialog-quali"
TEILER_APP22_INMENU: "false"
TEILER_APP23_NAME: "dialog-uploads"
TEILER_APP23_INMENU: "false"
TEILER_APP24_NAME: "inquiry-dialog"
TEILER_APP24_INMENU: "false"
TEILER_APP25_NAME: "dialog-tests"
TEILER_APP25_INMENU: "false"
TEILER_APP26_NAME: "opal"
TEILER_APP26_TITLE: "Opal"
TEILER_APP26_DESCRIPTION: "Opal is OBiBas core database application for biobanks."
TEILER_APP26_SOURCEURL: "https://${HOST}/opal"
TEILER_APP26_ROLES: "TEILER_USER"
TEILER_APP26_ISACTIVATED: "true"
TEILER_APP26_ICONSOURCEURL: "https://www.obiba.org/assets/themes/bootstrap/img/obiba-logo-small.png"
TEILER_APP26_ORDER: "19"
TEILER_APP26_ISEXTERNALLINK: "true"
TEILER_APP26_ISLOCAL: "true"
TEILER_APP27_NAME: "rstudio"
TEILER_APP27_TITLE: "R Studio"
TEILER_APP27_DESCRIPTION: "RStudio is an integrated development environment (IDE) for R and Python."
TEILER_APP27_SOURCEURL: "https://${HOST}/rstudio"
TEILER_APP27_ROLES: "TEILER_USER"
TEILER_APP27_ISACTIVATED: "true"
TEILER_APP27_ICONSOURCEURL: "https://rstudio.com/wp-content/uploads/2018/10/RStudio-Logo-Flat.png"
TEILER_APP27_ORDER: "20"
TEILER_APP27_ISEXTERNALLINK: "true"
TEILER_APP27_ISLOCAL: "true"
volumes:
login-db:
name: "login-db"

View File

@ -0,0 +1,7 @@
#!/bin/bash
if [ "$ENABLE_TEILER" == true ];then
log INFO "Teiler-UI setup detected -- will start Teiler-UI services."
OVERRIDE+=" -f ./$PROJECT/modules/teiler-ui-compose.yml"
fi
KEYCLOAK_DB_PASSWORD="$(echo \"This is a salt string to generate one consistent password. It is not required to be secret.\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"

0
ccp/modules/teiler-ui.md Normal file
View File

View File

@ -1,21 +0,0 @@
#!/bin/bash
function nngmSetup() {
if [ -n "$NNGM_CTS_APIKEY" ]; then
log INFO "nNGM setup detected -- will start nNGM Connector."
OVERRIDE+=" -f ./$PROJECT/nngm-compose.yml"
fi
CONNECTOR_POSTGRES_PASSWORD="$(echo \"This is a salt string to generate one consistent password. It is not required to be secret.\" | openssl rsautl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
}
function mtbaSetup() {
# TODO: Check if ID-Management Module is activated!
if [ -n "$ENABLE_MTBA" ];then
log INFO "MTBA setup detected -- will start MTBA Service and CBioPortal."
if [ ! -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
log ERROR "Detected MTBA Module configuration but ID-Management Module seems not to be configured!"
exit 1;
fi
OVERRIDE+=" -f ./$PROJECT/mtba-compose.yml"
fi
}

View File

@ -8,12 +8,8 @@ REPORTHUB_BEAM_SECRET_LONG="ApiKey report-hub.${PROXY_ID} ${REPORTHUB_BEAM_SECRE
SUPPORT_EMAIL=support-ccp@dkfz-heidelberg.de SUPPORT_EMAIL=support-ccp@dkfz-heidelberg.de
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
# This will load id-management setup. Effective only if id-management configuration is defined. for module in $PROJECT/modules/*.sh
source $PROJECT/modules/id-management-setup.sh do
idManagementSetup log INFO "sourcing $module"
# This will load nngm setup. Effective only if nngm configuration is defined. source $module
source $PROJECT/nngm-setup.sh done
nngmSetup
source $PROJECT/exliquid-setup.sh
exliquidSetup
mtbaSetup