mirror of
https://github.com/samply/bridgehead.git
synced 2026-04-17 17:20:15 +02:00
Compare commits
13 Commits
feat/nngm
...
mainzellis
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bebf024e4 | ||
|
|
1b315bb837 | ||
|
|
9c022ffb88 | ||
|
|
6525bb45e4 | ||
|
|
c8ed52e73e | ||
|
|
371ed7f26e | ||
|
|
6ffa4260b9 | ||
|
|
cdbc25270a | ||
|
|
02a3a87ebd | ||
|
|
b8bef62ed7 | ||
|
|
919e705d35 | ||
|
|
e4cfd41874 | ||
|
|
bd648b027b |
@@ -36,9 +36,4 @@ services:
|
||||
- "traefik.http.routers.spot.rule=Host(`${HOST}`) && PathPrefix(`/prod`)"
|
||||
- "traefik.http.middlewares.stripprefix_spot.stripprefix.prefixes=/prod"
|
||||
- "traefik.http.routers.spot.tls=true"
|
||||
- "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot,auth"
|
||||
|
||||
beam-proxy:
|
||||
environment:
|
||||
APP_spot_KEY: ${FOCUS_BEAM_SECRET_SHORT}
|
||||
|
||||
- "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot,auth"
|
||||
@@ -34,7 +34,6 @@ services:
|
||||
EPSILON: 0.28
|
||||
QUERIES_TO_CACHE: '/queries_to_cache.conf'
|
||||
ENDPOINT_TYPE: ${FOCUS_ENDPOINT_TYPE:-blaze}
|
||||
CQL_PROJECTS_ENABLED: "itcc"
|
||||
volumes:
|
||||
- /srv/docker/bridgehead/itcc/queries_to_cache.conf:/queries_to_cache.conf:ro
|
||||
depends_on:
|
||||
|
||||
37
itcc/modules/id-management-compose.yml
Normal file
37
itcc/modules/id-management-compose.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
patientlist:
|
||||
image: docker.verbis.dkfz.de/bridgehead/mainzelliste
|
||||
container_name: bridgehead-patientlist
|
||||
environment:
|
||||
- TOMCAT_REVERSEPROXY_FQDN=${HOST}
|
||||
- TOMCAT_REVERSEPROXY_SSL=true
|
||||
- ML_SITE=${IDMANAGEMENT_FRIENDLY_ID}
|
||||
- ML_DB_PASS=${PATIENTLIST_POSTGRES_PASSWORD}
|
||||
- ML_API_KEY=${IDMANAGER_LOCAL_PATIENTLIST_APIKEY}
|
||||
- ML_UPLOAD_API_KEY=${IDMANAGER_UPLOAD_APIKEY}
|
||||
# Add Variables from /etc/patientlist-id-generators.env
|
||||
- PATIENTLIST_SEEDS_TRANSFORMED
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.patientlist.rule=PathPrefix(`/patientlist`)"
|
||||
- "traefik.http.services.patientlist.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.patientlist.tls=true"
|
||||
depends_on:
|
||||
- patientlist-db
|
||||
|
||||
patientlist-db:
|
||||
image: docker.verbis.dkfz.de/cache/postgres:${POSTGRES_TAG}
|
||||
container_name: bridgehead-patientlist-db
|
||||
environment:
|
||||
POSTGRES_USER: "mainzelliste"
|
||||
POSTGRES_DB: "mainzelliste"
|
||||
POSTGRES_PASSWORD: ${PATIENTLIST_POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- "patientlist-db-data:/var/lib/postgresql/data"
|
||||
# NOTE: Add backups here. This is only imported if /var/lib/bridgehead/data/patientlist/ is empty!!!
|
||||
- "/tmp/bridgehead/patientlist/:/docker-entrypoint-initdb.d/"
|
||||
|
||||
volumes:
|
||||
patientlist-db-data:
|
||||
54
itcc/modules/id-management-setup.sh
Normal file
54
itcc/modules/id-management-setup.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
function idManagementSetup() {
|
||||
if [ -n "$IDMANAGER_UPLOAD_APIKEY" ]; then
|
||||
log INFO "id-management setup detected -- will start id-management (mainzelliste)."
|
||||
OVERRIDE+=" -f ./itcc/modules/id-management-compose.yml"
|
||||
|
||||
# Auto Generate local Passwords
|
||||
PATIENTLIST_POSTGRES_PASSWORD="$(echo \"id-management-module-db-password-salt\" | openssl pkeyutl -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'
|
||||
# Usage: transformToSingleStringArray 'dktk-test' -> 'dktk test'
|
||||
function transformToSingleStringArray() {
|
||||
echo "${1//-/ }";
|
||||
}
|
||||
|
||||
# Ensure all Words are Uppercase
|
||||
# Usage: transformToUppercase 'dktk test' -> 'Dktk Test'
|
||||
function transformToUppercase() {
|
||||
result="";
|
||||
for word in $1; do
|
||||
result+=" ${word^}";
|
||||
done
|
||||
echo "$result";
|
||||
}
|
||||
|
||||
# Handle all execeptions from the norm (e.g LMU, TUM)
|
||||
# Usage: applySpecialCases 'Muenchen Lmu Test' -> 'Muenchen LMU Test'
|
||||
function applySpecialCases() {
|
||||
result="$1";
|
||||
result="${result/Lmu/LMU}";
|
||||
result="${result/Tum/TUM}";
|
||||
result="${result/Dktk Test/Teststandort}";
|
||||
echo "$result";
|
||||
}
|
||||
|
||||
# Transform current siteids to legacy version
|
||||
# Usage: legacyIdMapping "dktk-test" -> "DktkTest"
|
||||
function legacyIdMapping() {
|
||||
single_string_array=$(transformToSingleStringArray "$1");
|
||||
uppercase_string=$(transformToUppercase "$single_string_array");
|
||||
normalized_string=$(applySpecialCases "$uppercase_string");
|
||||
echo "$normalized_string" | tr -d ' '
|
||||
}
|
||||
6
itcc/modules/itcc-omics-ingest.sh
Normal file
6
itcc/modules/itcc-omics-ingest.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -n "$ENABLE_OMICS" ];then
|
||||
OVERRIDE+=" -f ./$PROJECT/modules/itcc-omics-ingest.yaml"
|
||||
GENERATE_API_KEY="$(generate_simple_password 'omics')"
|
||||
fi
|
||||
14
itcc/modules/itcc-omics-ingest.yaml
Normal file
14
itcc/modules/itcc-omics-ingest.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
services:
|
||||
omics-endpoint:
|
||||
image: ghcr.io/samply/itcc-omics-ingest:main
|
||||
environment:
|
||||
- API_KEY=${GENERATE_API_KEY}
|
||||
volumes:
|
||||
- /var/cache/bridgehead/omics/data:/data/uploads
|
||||
labels:
|
||||
- "traefik.http.routers.omics.rule=Host(`${HOST}`) && PathPrefix(`/api/omics`)"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.omics.loadbalancer.server.port=6080"
|
||||
- "traefik.http.routers.omics.tls=true"
|
||||
- "traefik.http.middlewares.omics-stripprefix.stripprefix.prefixes=/api"
|
||||
- "traefik.http.routers.omics.middlewares=omics-stripprefix"
|
||||
@@ -1,33 +1,46 @@
|
||||
version: "3.7"
|
||||
services:
|
||||
landing:
|
||||
container_name: lens_federated-search
|
||||
image: docker.verbis.dkfz.de/ccp/lens:${SITE_ID}
|
||||
container_name: lens_itcc_explorer
|
||||
image: ghcr.io/samply/itcc-explorer:fix-setup
|
||||
environment:
|
||||
HOST: "0.0.0.0"
|
||||
BIND_ADDR: "0.0.0.0:3000"
|
||||
PUBLIC_ENVIRONMENT: ${PUBLIC_ENVIRONMENT}
|
||||
labels:
|
||||
- "traefik.http.routers.lens.rule=Host(`${HOST}`)"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.landing.rule=PathPrefix(`/`)"
|
||||
- "traefik.http.services.landing.loadbalancer.server.port=80"
|
||||
- "traefik.http.services.landing.loadbalancer.server.port=3000"
|
||||
- "traefik.http.routers.landing.tls=true"
|
||||
|
||||
spot:
|
||||
image: docker.verbis.dkfz.de/ccp-private/central-spot
|
||||
image: samply/rustyspot:latest
|
||||
environment:
|
||||
BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
|
||||
BEAM_URL: http://beam-proxy:8081
|
||||
BEAM_PROXY_URL: http://beam-proxy:8081
|
||||
BEAM_PROXY_ID: ${SITE_ID}
|
||||
BEAM_BROKER_ID: ${BROKER_ID}
|
||||
BEAM_APP_ID: "focus"
|
||||
PROJECT_METADATA: "itcc"
|
||||
BEAM_APP_ID: "spot.${SITE_ID}.${BROKER_ID}"
|
||||
CORS_ORIGIN: "https://${HOST}"
|
||||
SITES: ${SITES}
|
||||
TRANSFORM: LENS
|
||||
PROJECT: "itcc"
|
||||
BIND_ADDR: 0.0.0.0:8055
|
||||
depends_on:
|
||||
- "beam-proxy"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.spot.loadbalancer.server.port=8080"
|
||||
- "traefik.http.services.spot.loadbalancer.server.port=8055"
|
||||
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowmethods=GET,OPTIONS,POST"
|
||||
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowheaders=content-type"
|
||||
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolalloworiginlist=https://${HOST}"
|
||||
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowcredentials=true"
|
||||
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolmaxage=-1"
|
||||
- "traefik.http.routers.spot.rule=Host(`${HOST}`) && PathPrefix(`/backend`)"
|
||||
- "traefik.http.middlewares.stripprefix_spot.stripprefix.prefixes=/backend"
|
||||
- "traefik.http.routers.spot.rule=Host(`${HOST}`) && PathPrefix(`/prod`)"
|
||||
- "traefik.http.middlewares.stripprefix_spot.stripprefix.prefixes=/prod"
|
||||
- "traefik.http.routers.spot.tls=true"
|
||||
- "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot,auth"
|
||||
|
||||
beam-proxy:
|
||||
environment:
|
||||
APP_spot_KEY: ${FOCUS_BEAM_SECRET_SHORT}
|
||||
|
||||
@@ -6,6 +6,8 @@ FOCUS_RETRY_COUNT=${FOCUS_RETRY_COUNT:-64}
|
||||
SUPPORT_EMAIL=arturo.macias@dkfz-heidelberg.de
|
||||
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
|
||||
BROKER_URL_FOR_PREREQ=$BROKER_URL
|
||||
PUBLIC_ENVIRONMENT=prod
|
||||
SITES=itcc-inform,itcc-ither,itcc-mappyacts,itcc-profyle,itcc-smpaeds,itcc-zero
|
||||
|
||||
for module in $PROJECT/modules/*.sh
|
||||
do
|
||||
|
||||
@@ -22,8 +22,7 @@ services:
|
||||
- "traefik.http.routers.blaze_nngm.tls=true"
|
||||
|
||||
focus:
|
||||
#image: docker.verbis.dkfz.de/cache/samply/focus:${FOCUS_TAG}
|
||||
image: ghcr.io/samply/focus:feature-nngm-v2
|
||||
image: docker.verbis.dkfz.de/cache/samply/focus:${FOCUS_TAG}
|
||||
container_name: bridgehead-focus
|
||||
environment:
|
||||
- API_KEY=${FOCUS_BEAM_SECRET_SHORT}
|
||||
|
||||
Reference in New Issue
Block a user