From 31525571e14e75ce5c2e3d74f80b6d9753051b58 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 21 Jan 2022 09:32:21 +0100 Subject: [PATCH] Make C4 and Dktk work --- c4/docker-compose.yml | 197 ++++++++++++++---------------------- c4/internal.env | 18 +++- dktk/docker-compose.yml | 84 ++++++++++------ dktk/internal.env | 9 +- gbn/docker-compose.yml | 58 ++++++++--- gbn/internal.env | 2 + landing/index.html | 216 ++++++++++++++++++++++++++++++++++++++++ stop-bridgehead.sh | 1 - 8 files changed, 409 insertions(+), 176 deletions(-) create mode 100644 landing/index.html diff --git a/c4/docker-compose.yml b/c4/docker-compose.yml index 584dfb5..0359daa 100644 --- a/c4/docker-compose.yml +++ b/c4/docker-compose.yml @@ -20,181 +20,136 @@ secrets: file: ../internal-configuration/proxy.xml services: + traefik: + container_name: bridgehead_traefik + image: traefik:2.4 + command: + - --api.insecure=true + - --entrypoints.web.address=:80 + - --entrypoints.web-secure.address=:443 + - --providers.docker=true + environment: + http_proxy: "" + HTTP_PROXY: "" + https_proxy: "" + HTTPS_PROXY: "" + ports: + - 80:80 + - 443:443 + - 8080:8080 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + + landing: + container_name: bridgehead_landingpage + image: nginx:stable + volumes: + - ../landing/:/usr/share/nginx/html + labels: + - "traefik.enable=true" + - "traefik.http.routers.landing.rule=PathPrefix(`/`)" + - "traefik.http.services.landing.loadbalancer.server.port=80" + connector: container_name: bridgehead_c4_connector - image: "samply/share-client:c4-7" + image: docker.verbis.dkfz.de/ccp/connector:3 environment: - SITE: ${SITE} - SITEID: ${SITEID} - CENTRAL_SEARCH: ${CCP_CENTRALSEARCH_URL} - DECENTRAL_SEARCH: ${CCP_DECENTRALSEARCH_URL} - MDR_URL: ${CCP_MDR_URL} - MONITOR_URL: ${CCP_MONITOR_URL} - SHARE_URL: "${PROTOCOL}://${HOST}:${PORT}" - ID_MANAGER_URL: ${ID_MANAGER_URL} - PROJECTPSEUDONYMISATION_URL: ${PROJECTPSEUDONYMISATION_URL} - PATIENTLIST_URL: ${PATIENTLIST_URL} - STORE_URL: ${LDM_URL} + STORE_URL: http://bridgehead_c4_store:8080 + LDM_URL: http://bridgehead_c4_store:8080 POSTGRES_HOST: ${CONNECTOR_DB_HOST} - POSTGRES_PORT: ${CONNECTOR_POSTGRES_PORT} - POSTGRES_DB: ${CONNECTOR_POSTGRES_DB} - POSTGRES_USER: ${CONNECTOR_POSTGRES_USER} - POSTGRES_PASS: ${CONNECTOR_POSTGRES_PASS} - HTTP_PROXY: ${HTTP_PROXY_URL} - HTTPS_PROXY: ${HTTP_PROXY_URL} - HTTP_PROXY_USERNAME: ${HTTP_PROXY_USER} - HTTP_PROXY_PASSWORD: ${HTTP_PROXY_PASSWORD} - HTTPS_PROXY_URL: ${HTTPS_PROXY_URL} - HTTPS_PROXY_USERNAME: ${HTTPS_PROXY_USER} - HTTPS_PROXY_PASSWORD: ${HTTPS_PROXY_PASSWORD} - NO_PROXY: ${NO_PROXY} - TZ: Europe/Berlin + POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS} + NNGM_PASSWORD: ${NNGM_PASSWORD} + NNGM_MAINZELLISTE_APIKEY: ${NNGM_MAINZELLISTE_APIKEY} volumes: - "connector_logs:/usr/local/tomcat/logs" + labels: + - "traefik.enable=true" + - "traefik.http.routers.c4_connector.rule=PathPrefix(`/c4-connector`)" + - "traefik.http.services.c4_connector.loadbalancer.server.port=8080" depends_on: - connector_db - ports: - - "8080:8080" restart: always - networks: - - "samply" - - "connector-db" + env_file: + ###TODO: Move into Image + - internal.env connector_db: container_name: bridgehead_c4_connector_db image: postgres:10.17 environment: POSTGRES_HOST: ${CONNECTOR_DB_HOST} - POSTGRES_DB: ${CONNECTOR_POSTGRES_DB} - POSTGRES_USER: ${CONNECTOR_POSTGRES_USER} POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS} - TZ: Europe/Berlin volumes: - "connector_db_data:/var/lib/postgresql/data" restart: always - networks: - - "connector-db" - ports: - - "8088:5432" - + env_file: + ###TODO: Move into Image + - internal.env idmanager: - container_name: bridgehead_c4_idmanager - image: docker.verbis.dkfz.de/pseudonymisierung/magicpl:0.2.0-RC23 + container_name: bridgehead_idmanager + image: docker.verbis.dkfz.de/ccp/idmanager:deploy-c4 environment: - MAGICPL_MAINZELLISTE_URL: ${MAGICPL_MAINZELLISTE_URL} + TOMCAT_REVERSEPROXY_FQDN: ${HOST}/id-manager MAGICPL_MAINZELLISTE_API_KEY: ${MAGICPL_MAINZELLISTE_API_KEY} MAGICPL_API_KEY: ${MAGICPL_API_KEY} MAGICPL_API_KEY_CONNECTOR: ${MAGICPL_API_KEY_CONNECTOR} MAGICPL_PASSPHRASE: ${MAGICPL_PASSPHRASE} - MAGICPL_MAINZELLISTE_CENTRAL_URL: ${MAGICPL_MAINZELLISTE_CENTRAL_URL} MAGICPL_MAINZELLISTE_CENTRAL_API_KEY: ${MAGICPL_MAINZELLISTE_CENTRAL_API_KEY} - MAGICPL_CENTRAL_URL: ${MAGICPL_CENTRAL_URL} MAGICPL_CENTRAL_API_KEY: ${MAGICPL_CENTRAL_API_KEY} - MAGICPL_OIDC_PROVIDER: ${MAGICPL_OIDC_PROVIDER} MAGICPL_OIDC_CLIENT_ID: ${MAGICPL_OIDC_CLIENT_ID} MAGICPL_OIDC_CLIENT_SECRET: ${MAGICPL_OIDC_CLIENT_SECRET} - MAGICPL_SITE: ${SITEID} - MAGICPL_LOG_LEVEL: info - TZ: Europe/Berlin volumes: - "idmanager_logs:/usr/local/tomcat/logs" secrets: - magicpl.docker.xml - dktk_bridgehead_info.docker.xml - proxy.docker.xml - depends_on: - - patientlist - ports: - - "8085:8080" - networks: - - "samply" - - patientlist: - container_name: bridgehead_c4_patientlist - image: medicalinformatics/mainzelliste:develop - environment: - ML_DB_DRIVER: org.postgresql.Driver - ML_DB_TYPE: postgresql - ML_DB_HOST: ${ML_DB_HOST} - ML_DB_PORT: ${ML_DB_PORT} - ML_DB_NAME: ${ML_DB_NAME} - ML_DB_USER: ${ML_DB_USER} - ML_DB_PASS: ${ML_DB_PASS} - ML_API_KEY: ${ML_API_KEY} - ML_LOG_LEVEL: warning - ML_SITE: ${SITEID} - TZ: Europe/Berlin + labels: + - "traefik.http.routers.idmanager.rule=PathPrefix(`/id-manager`)" + - "traefik.http.middlewares.idmanager_strip.stripprefix.prefixes=/id-mana\ + ger" + - "traefik.http.routers.idmanager.middlewares=idmanager_strip" + - "traefik.http.services.idmanager.loadbalancer.server.port=8080" env_file: - - ../site-config/patientlist.env - volumes: - - "patientlist_logs:/usr/local/tomcat/logs" - secrets: - - mainzelliste.docker.conf - - centralSearchPublicKey - depends_on: - - patientlist_db - ports: - - "8086:8080" - networks: - - "samply" - - patientlist_db: - container_name: bridgehead_c4_patientlist_db - image: postgres:13.1-alpine - environment: - POSTGRES_DB: ${ML_DB_NAME} - POSTGRES_USER: ${ML_DB_USER} - POSTGRES_PASSWORD: ${ML_DB_PASS} - TZ: Europe/Berlin - volumes: - - "patientlist_db_data:/var/lib/postgresql/data" - networks: - - "samply" + ###TODO: Move into Image + - internal.env store: container_name: bridgehead_c4_store image: docker.verbis.dkfz.de/ccp/samply.store:release-5.1.2 environment: - MDR_URL: ${CCP_MDR_URL} - MDR_NAMESPACE: ${MDR_NAMESPACE} - MDR_VALIDATION: ${MDR_VALIDATION} - POSTGRES_HOST: ${STORE_POSTGRES_HOST} - POSTGRES_PORT: ${STORE_POSTGRES_PORT} - POSTGRES_DB: ${STORE_POSTGRES_DB} - POSTGRES_USER: ${STORE_POSTGRES_USER} - POSTGRES_PASSWORD: ${STORE_POSTGRES_PASS} + POSTGRES_HOST: bridgehead_c4_store_db + POSTGRES_PORT: 5432 + POSTGRES_DB: samplystore + POSTGRES_USER: samplystore + POSTGRES_PASSWORD: samplystore TZ: Europe/Berlin volumes: - "store_logs:/usr/local/tomcat/logs" + labels: + - "traefik.enable=true" + - "traefik.http.routers.store_c4.rule=PathPrefix(`/c4-loc\ + aldatamanagement`)" depends_on: - store_db - ports: - - "8083:8080" restart: always - networks: - - "samply" + env_file: + ###TODO: Move into Image + - internal.env store_db: container_name: bridgehead_c4_store_db image: postgres:9.5-alpine command: postgres -c datestyle='iso, dmy' environment: - POSTGRES_PORT: ${STORE_POSTGRES_PORT} - POSTGRES_DB: ${STORE_POSTGRES_DB} - POSTGRES_USER: ${STORE_POSTGRES_USER} - POSTGRES_PASSWORD: ${STORE_POSTGRES_PASS} - TZ: Europe/Berlin + POSTGRES_PORT: 5432 + POSTGRES_DB: samplystore + POSTGRES_USER: samplystore + POSTGRES_PASSWORD: samplystore volumes: - "store_db_data:/var/lib/postgresql/data" restart: always - networks: - - "samply" - ports: - - "8084:5432" - -networks: - samply: - driver: "bridge" - connector-db: - driver: "bridge" \ No newline at end of file + env_file: + ###TODO: Move into Image + - internal.env \ No newline at end of file diff --git a/c4/internal.env b/c4/internal.env index f0c0daa..edb04ef 100644 --- a/c4/internal.env +++ b/c4/internal.env @@ -1,14 +1,17 @@ SITE=bridgehead_test SITEID=BRIDGEHEAD_TEST +TOMCAT_REVERSEPROXY_FQDN=${HOST}/c4-connector +DEPLOYMENT_CONTEXT=c4-connector + CONNECTOR_SHARE_URL="http://${HOST}:8080" CONNECTOR_ENABLE_METRICS=false CONNECTOR_MONITOR_INTERVAL= CONNECTOR_UPDATE_SERVER= -CONNECTOR_POSTGRES_PORT=5432 -CONNECTOR_POSTGRES_DB=samply.connector -CONNECTOR_POSTGRES_USER=samply.connector +POSTGRES_PORT=5432 +POSTGRES_DB=samply.connector +POSTGRES_USER=samply.connector HTTP_PROXY_HOST=${PROXY_URL} HTTP_PROXY_USER= @@ -22,9 +25,12 @@ http_proxy=${PROXY_URL} https_proxy=${PROXY_URL} CCP_CENTRALSEARCH_URL=https://centralsearch-test.dktk.dkfz.de/ +CENTRAL_SEARCH=https://centralsearch-test.dktk.dkfz.de/ CCP_DECENTRALSEARCH_URL=https://decentralsearch-test.ccp-it.dktk.dkfz.de/ +DECENTRAL_SEARCH=https://decentralsearch-test.ccp-it.dktk.dkfz.de/ CCP_MDR_URL=https://mdr.ccp-it.dktk.dkfz.de/v3/api/mdr +MDR_URL=https://mdr.ccp-it.dktk.dkfz.de/v3/api/mdr CCP_MONITOR_URL= MONITOR_OPTOUT= @@ -44,4 +50,8 @@ ML_DB_USER=mainzelliste CENTRAL_CONTROL_NUMBER_GENERATPR_URL=http://e260-serv-03/central/api GLOBAL_ID=DKTK -MAINZELLISTE_URL=https://patientlist-test.ccpit.dktk.dkfz.de/mainzelliste \ No newline at end of file +MAINZELLISTE_URL=https://patientlist-test.ccpit.dktk.dkfz.de/mainzelliste + +NNGM_URL=https://test.anforderung.nngm.de/trial/nNGMv09/import-fb +NNGM_PROFILE=http://uk-koeln.de/fhir/StructureDefinition/Patient/nNGM/pseudonymisiert +NNGM_MAINZELLISTE_URL=https://test.verbis.dkfz.de/mpl diff --git a/dktk/docker-compose.yml b/dktk/docker-compose.yml index defaea7..c8b748a 100644 --- a/dktk/docker-compose.yml +++ b/dktk/docker-compose.yml @@ -20,6 +20,36 @@ secrets: file: ../internal-configuration/proxy.xml services: + traefik: + container_name: bridgehead_traefik + image: traefik:2.4 + command: + - --api.insecure=true + - --entrypoints.web.address=:80 + - --entrypoints.web-secure.address=:443 + - --providers.docker=true + environment: + http_proxy: "" + HTTP_PROXY: "" + https_proxy: "" + HTTPS_PROXY: "" + ports: + - 80:80 + - 443:443 + - 8080:8080 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + + landing: + container_name: bridgehead_landingpage + image: nginx:stable + volumes: + - ../landing/:/usr/share/nginx/html + labels: + - "traefik.enable=true" + - "traefik.http.routers.landing.rule=PathPrefix(`/`)" + - "traefik.http.services.landing.loadbalancer.server.port=80" + connector: container_name: bridgehead_dktk_connector image: "samply/share-client:dktk-7" @@ -31,15 +61,14 @@ services: - "connector_logs:/usr/local/tomcat/logs" depends_on: - connector_db - ports: - - "8080:8080" restart: always + labels: + - "traefik.enable=true" + - "traefik.http.routers.dktk_connector.rule=PathPrefix(`/dktk-connector`)" + - "traefik.http.services.dktk_connector.loadbalancer.server.port=8080" env_file: ###TODO: Move into Image - internal.env - networks: - - "samply" - - "connector-db" connector_db: container_name: bridgehead_dktk_connector_db @@ -53,27 +82,20 @@ services: env_file: ###TODO: Move into Image - internal.env - networks: - - "connector-db" - idmanager: - container_name: bridgehead_dktk_idmanager + container_name: bridgehead_id-manager image: docker.verbis.dkfz.de/pseudonymisierung/magicpl:release-0.2.0 environment: - MAGICPL_MAINZELLISTE_URL: ${MAGICPL_MAINZELLISTE_URL} + TOMCAT_REVERSEPROXY_FQDN: ${HOST}/id-manager MAGICPL_MAINZELLISTE_API_KEY: ${MAGICPL_MAINZELLISTE_API_KEY} MAGICPL_API_KEY: ${MAGICPL_API_KEY} MAGICPL_API_KEY_CONNECTOR: ${MAGICPL_API_KEY_CONNECTOR} MAGICPL_PASSPHRASE: ${MAGICPL_PASSPHRASE} - MAGICPL_MAINZELLISTE_CENTRAL_URL: ${MAGICPL_MAINZELLISTE_CENTRAL_URL} MAGICPL_MAINZELLISTE_CENTRAL_API_KEY: ${MAGICPL_MAINZELLISTE_CENTRAL_API_KEY} - MAGICPL_CENTRAL_URL: ${MAGICPL_CENTRAL_URL} MAGICPL_CENTRAL_API_KEY: ${MAGICPL_CENTRAL_API_KEY} - MAGICPL_OIDC_PROVIDER: ${MAGICPL_OIDC_PROVIDER} MAGICPL_OIDC_CLIENT_ID: ${MAGICPL_OIDC_CLIENT_ID} MAGICPL_OIDC_CLIENT_SECRET: ${MAGICPL_OIDC_CLIENT_SECRET} - TZ: Europe/Berlin volumes: - "idmanager_logs:/usr/local/tomcat/logs" @@ -83,21 +105,23 @@ services: - proxy.docker.xml depends_on: - patientlist + labels: + - "traefik.http.routers.idmanager.rule=PathPrefix(`/id-manager`)" + - "traefik.http.middlewares.idmanager_strip.stripprefix.prefixes=/id-mana\ + ger" + - "traefik.http.routers.idmanager.middlewares=idmanager_strip" + - "traefik.http.services.idmanager.loadbalancer.server.port=8080" env_file: ###TODO: Move into Image - internal.env - ports: - - "8085:8080" - networks: - - "samply" patientlist: - container_name: bridgehead_dktk_patientlist + container_name: bridgehead_patientlist image: medicalinformatics/mainzelliste:develop environment: - ML_DB_HOST: bridgehead_dktk_patientlist_db ML_DB_PASS: ${ML_DB_PASS} ML_API_KEY: ${ML_API_KEY} + TOMCAT_REVERSEPROXY_FQDN: ${HOST}/patientlist env_file: - ../site-config/patientlist.env - internal.env @@ -106,12 +130,14 @@ services: secrets: - mainzelliste.docker.conf - centralSearchPublicKey + labels: + - "traefik.http.routers.patientlist.rule=PathPrefix(`/patientlist`)" + - "traefik.http.middlewares.patientlist_strip.stripprefix.prefixes=/patie\ + ntlist" + - "traefik.http.routers.patientlist.middlewares=patientlist_strip" + - "traefik.http.services.patientlist.loadbalancer.server.port=8080" depends_on: - patientlist_db - ports: - - "8086:8080" - networks: - - "samply" patientlist_db: container_name: bridgehead_dktk_patientlist_db @@ -122,12 +148,4 @@ services: - "patientlist_db_data:/var/lib/postgresql/data" env_file: ###TODO: Move into Image - - internal.env - networks: - - "samply" - -networks: - samply: - driver: "bridge" - connector-db: - driver: "bridge" \ No newline at end of file + - internal.env \ No newline at end of file diff --git a/dktk/internal.env b/dktk/internal.env index 94b7261..c2cab6d 100644 --- a/dktk/internal.env +++ b/dktk/internal.env @@ -6,6 +6,9 @@ CONNECTOR_ENABLE_METRICS=false CONNECTOR_MONITOR_INTERVAL= CONNECTOR_UPDATE_SERVER= +TOMCAT_REVERSEPROXY_FQDN=${HOST}/dktk-connector +DEPLOYMENT_CONTEXT=dktk-connector + POSTGRES_PORT=5432 POSTGRES_DB=samply.connector POSTGRES_USER=samply.connector @@ -38,6 +41,7 @@ MDR_NAMESPACE=adt,dktk,marker #MDR_MAP= MDR_VALIDATION=false +ML_DB_HOST=bridgehead_dktk_patientlist_db ML_DB_NAME=samply.connector ML_DB_PORT=5432 ML_DB_USER=samply.connector @@ -53,4 +57,7 @@ ML_SITE=BRIDGEHEAD_DKTK_TEST TZ=Europe/Berlin MAGICPL_SITE=adt -MAGICPL_LOG_LEVEL=info \ No newline at end of file +MAGICPL_LOG_LEVEL=info +MAGICPL_MAINZELLISTE_CENTRAL_URL=http://e260-serv-03/central/mainzelliste +MAGICPL_CENTRAL_URL=http://e260-serv-03/central/api +MAGICPL_OIDC_PROVIDER=https://auth-test.ccp-it.dktk.dkfz.de diff --git a/gbn/docker-compose.yml b/gbn/docker-compose.yml index 684e693..e3b7b54 100644 --- a/gbn/docker-compose.yml +++ b/gbn/docker-compose.yml @@ -1,9 +1,4 @@ version: '3.4' -networks: - samply: - driver: "bridge" - connector-db: - driver: "bridge" volumes: store-db-data: @@ -12,18 +7,52 @@ volumes: name: "connector-db-data" services: + traefik: + container_name: bridgehead_traefik + image: traefik:2.4 + command: + - --api.insecure=true + - --entrypoints.web.address=:80 + - --entrypoints.web-secure.address=:443 + - --providers.docker=true + environment: + http_proxy: "" + HTTP_PROXY: "" + https_proxy: "" + HTTPS_PROXY: "" + ports: + - 80:80 + - 443:443 + - 8080:8080 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + + landing: + container_name: bridgehead_landingpage + image: nginx:stable + volumes: + - ../landing/:/usr/share/nginx/html + labels: + - "traefik.enable=true" + - "traefik.http.routers.landing.rule=PathPrefix(`/`)" + - "traefik.http.services.landing.loadbalancer.server.port=80" + store: container_name: "bridgehead_gbn_blaze_store" image: "samply/blaze:0.15" environment: BASE_URL: "http://bridgehead_gbn_blaze_store:8080" JAVA_TOOL_OPTIONS: "-Xmx4g" - networks: - - "samply" volumes: - "store-db-data:/app/data" - ports: - - "8080:8080" + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.test-auth.basicauth.users=user:$$apr1$$RjhTX8\ + ji$$3ToBWBch1K4RBnvp86TuH/" + - "traefik.http.routers.blaze_gbn.rule=PathPrefix(`/gbn-localdatamanagement`)" + - "traefik.http.middlewares.gbn_b_strip.stripprefix.prefixes=/gbn-localdatamanagement" + - "traefik.http.services.blaze_gbn.loadbalancer.server.port=8080" + - "traefik.http.routers.blaze_gbn.middlewares=gbn_b_strip,test-auth" restart: "always" connector: @@ -37,11 +66,10 @@ services: env_file: ###TODO: Move into Image - internal.env - networks: - - "samply" - - "connector-db" - ports: - - "8082:8080" + labels: + - "traefik.enable=true" + - "traefik.http.routers.gbn_connector.rule=PathPrefix(`/gbn-connector`)" + - "traefik.http.services.gbn_connector.loadbalancer.server.port=8080" depends_on: - "connector-db" restart: "always" @@ -52,8 +80,6 @@ services: environment: POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS} POSTGRES_PORT: 5432 - networks: - - "connector-db" volumes: - "connector-db-data:/var/lib/postgresql/data" restart: "always" diff --git a/gbn/internal.env b/gbn/internal.env index 0fa1a6f..57806f0 100644 --- a/gbn/internal.env +++ b/gbn/internal.env @@ -5,6 +5,8 @@ CONNECTOR_SHARE_URL="http://${HOST}:8080" MDR_URL="https://mdr.germanbiobanknode.de/v3/api/mdr" MONITOR_URL=https://ccpit.dktk.dkfz.de/dktk.monitor/rest/info no_proxy=bridgehead_gbn_connector,bridgehead_gbn_blaze_store,bridgehead_gbn_connector_db +TOMCAT_REVERSEPROXY_FQDN=${HOST}/gbn-connector +DEPLOYMENT_CONTEXT=gbn-connector CONNECTOR_MONITOR_INTERVAL= CONNECTOR_UPDATE_SERVER= feature_BBMRI_DIRECTORY_SYNC=false diff --git a/landing/index.html b/landing/index.html new file mode 100644 index 0000000..bc3fad7 --- /dev/null +++ b/landing/index.html @@ -0,0 +1,216 @@ + + + + + + + Bridgehead Overview + + + + + + + + + + +
+ There is a componente update for your bridgehead. Please run the updater +
+ +
+ Your Bridgehead was updated! +
+ +