mirror of
https://github.com/samply/bridgehead.git
synced 2025-06-16 23:00:15 +02:00
Compare commits
20 Commits
feature/au
...
revert-223
Author | SHA1 | Date | |
---|---|---|---|
5fc9e01652 | |||
b1de62607f | |||
969f1e7242 | |||
77c870ab22 | |||
f0bdb5c146 | |||
735e064b03 | |||
6465dcb0ad | |||
c585322ee7 | |||
4568e32ffa | |||
ed8dacaa59 | |||
3fe781255b | |||
775cef59d6 | |||
aca22fb3e3 | |||
33a2505517 | |||
83b653e0c3 | |||
bc0f46ecc9 | |||
4ab10ff71d | |||
cfa85067f0 | |||
e4bc34cce9 | |||
8fddb809a7 |
21
.github/workflows/auto-pr.yml
vendored
21
.github/workflows/auto-pr.yml
vendored
@ -1,21 +0,0 @@
|
|||||||
name: Automatically generate Pull Requests for feature/pilot-projects
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [closed]
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
create_pr:
|
|
||||||
if: github.event.pull_request.merged == true
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Create Pull Request to feature/pilot-projects branch
|
|
||||||
run: gh pr create -B feature/pilot-projects -H main --title 'Create Pull Request to feature/pilot-projects branch' --body 'Created by Github action'
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@ -34,7 +34,7 @@ This repository is the starting point for any information and tools you will nee
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
The data protection group at your site will probably want to know exactly what our software does with patient data, and you may need to get their approval before you are allowed to install a Bridgehead. To help you with this, we have provided some data protection concepts:
|
The data protection officer at your site will probably want to know exactly what our software does with patient data, and you may need to get their approval before you are allowed to install a Bridgehead. To help you with this, we have provided some data protection concepts:
|
||||||
|
|
||||||
- [Germany](https://www.bbmri.de/biobanking/it/infrastruktur/datenschutzkonzept/)
|
- [Germany](https://www.bbmri.de/biobanking/it/infrastruktur/datenschutzkonzept/)
|
||||||
|
|
||||||
@ -46,6 +46,8 @@ Hardware requirements strongly depend on the specific use-cases of your network
|
|||||||
- 32 GB RAM
|
- 32 GB RAM
|
||||||
- 160GB Hard Drive, SSD recommended
|
- 160GB Hard Drive, SSD recommended
|
||||||
|
|
||||||
|
We recommend using a dedicated VM for the Bridgehead, with no other applications running on it. While the Bridgehead can, in principle, run on a shared VM, you might run into surprising problems such as resource conflicts (e.g., two apps using tcp port 443).
|
||||||
|
|
||||||
### Software
|
### Software
|
||||||
|
|
||||||
You are strongly recommended to install the Bridgehead under a Linux operating system (but see the section [Non-Linux OS](#non-linux-os)). You will need root (administrator) priveleges on this machine in order to perform the deployment. We recommend the newest Ubuntu LTS server release.
|
You are strongly recommended to install the Bridgehead under a Linux operating system (but see the section [Non-Linux OS](#non-linux-os)). You will need root (administrator) priveleges on this machine in order to perform the deployment. We recommend the newest Ubuntu LTS server release.
|
||||||
|
@ -16,7 +16,7 @@ services:
|
|||||||
- "blaze"
|
- "blaze"
|
||||||
|
|
||||||
beam-proxy-eric:
|
beam-proxy-eric:
|
||||||
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:develop
|
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
|
||||||
container_name: bridgehead-beam-proxy-eric
|
container_name: bridgehead-beam-proxy-eric
|
||||||
environment:
|
environment:
|
||||||
BROKER_URL: ${ERIC_BROKER_URL}
|
BROKER_URL: ${ERIC_BROKER_URL}
|
||||||
|
@ -16,7 +16,7 @@ services:
|
|||||||
- "blaze"
|
- "blaze"
|
||||||
|
|
||||||
beam-proxy-gbn:
|
beam-proxy-gbn:
|
||||||
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:develop
|
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
|
||||||
container_name: bridgehead-beam-proxy-gbn
|
container_name: bridgehead-beam-proxy-gbn
|
||||||
environment:
|
environment:
|
||||||
BROKER_URL: ${GBN_BROKER_URL}
|
BROKER_URL: ${GBN_BROKER_URL}
|
||||||
|
@ -32,6 +32,12 @@ case "$PROJECT" in
|
|||||||
bbmri)
|
bbmri)
|
||||||
#nothing extra to do
|
#nothing extra to do
|
||||||
;;
|
;;
|
||||||
|
cce)
|
||||||
|
#nothing extra to do
|
||||||
|
;;
|
||||||
|
itcc)
|
||||||
|
#nothing extra to do
|
||||||
|
;;
|
||||||
minimal)
|
minimal)
|
||||||
#nothing extra to do
|
#nothing extra to do
|
||||||
;;
|
;;
|
||||||
@ -75,13 +81,16 @@ loadVars() {
|
|||||||
case "$ENVIRONMENT" in
|
case "$ENVIRONMENT" in
|
||||||
"production")
|
"production")
|
||||||
export FOCUS_TAG=main
|
export FOCUS_TAG=main
|
||||||
|
export BEAM_TAG=main
|
||||||
;;
|
;;
|
||||||
"test")
|
"test")
|
||||||
export FOCUS_TAG=develop
|
export FOCUS_TAG=develop
|
||||||
|
export BEAM_TAG=develop
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
report_error 7 "Environment \"$ENVIRONMENT\" is unknown. Assuming production. FIX THIS!"
|
report_error 7 "Environment \"$ENVIRONMENT\" is unknown. Assuming production. FIX THIS!"
|
||||||
export FOCUS_TAG=main
|
export FOCUS_TAG=main
|
||||||
|
export BEAM_TAG=main
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
63
cce/docker-compose.yml
Normal file
63
cce/docker-compose.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
blaze:
|
||||||
|
image: docker.verbis.dkfz.de/cache/samply/blaze:0.28
|
||||||
|
container_name: bridgehead-cce-blaze
|
||||||
|
environment:
|
||||||
|
BASE_URL: "http://bridgehead-cce-blaze:8080"
|
||||||
|
JAVA_TOOL_OPTIONS: "-Xmx${BLAZE_MEMORY_CAP:-4096}m"
|
||||||
|
DB_RESOURCE_CACHE_SIZE: ${BLAZE_RESOURCE_CACHE_CAP:-2500000}
|
||||||
|
DB_BLOCK_CACHE_SIZE: $BLAZE_MEMORY_CAP
|
||||||
|
ENFORCE_REFERENTIAL_INTEGRITY: "false"
|
||||||
|
volumes:
|
||||||
|
- "blaze-data:/app/data"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.blaze_cce.rule=PathPrefix(`/cce-localdatamanagement`)"
|
||||||
|
- "traefik.http.middlewares.cce_b_strip.stripprefix.prefixes=/cce-localdatamanagement"
|
||||||
|
- "traefik.http.services.blaze_cce.loadbalancer.server.port=8080"
|
||||||
|
- "traefik.http.routers.blaze_cce.middlewares=cce_b_strip,auth"
|
||||||
|
- "traefik.http.routers.blaze_cce.tls=true"
|
||||||
|
|
||||||
|
focus:
|
||||||
|
image: docker.verbis.dkfz.de/cache/samply/focus:${FOCUS_TAG}
|
||||||
|
container_name: bridgehead-focus
|
||||||
|
environment:
|
||||||
|
API_KEY: ${FOCUS_BEAM_SECRET_SHORT}
|
||||||
|
BEAM_APP_ID_LONG: focus.${PROXY_ID}
|
||||||
|
PROXY_ID: ${PROXY_ID}
|
||||||
|
BLAZE_URL: "http://bridgehead-cce-blaze:8080/fhir/"
|
||||||
|
BEAM_PROXY_URL: http://beam-proxy:8081
|
||||||
|
RETRY_COUNT: ${FOCUS_RETRY_COUNT}
|
||||||
|
EPSILON: 0.28
|
||||||
|
depends_on:
|
||||||
|
- "beam-proxy"
|
||||||
|
- "blaze"
|
||||||
|
|
||||||
|
beam-proxy:
|
||||||
|
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
|
||||||
|
container_name: bridgehead-beam-proxy
|
||||||
|
environment:
|
||||||
|
BROKER_URL: ${BROKER_URL}
|
||||||
|
PROXY_ID: ${PROXY_ID}
|
||||||
|
APP_focus_KEY: ${FOCUS_BEAM_SECRET_SHORT}
|
||||||
|
PRIVKEY_FILE: /run/secrets/proxy.pem
|
||||||
|
ALL_PROXY: http://forward_proxy:3128
|
||||||
|
TLS_CA_CERTIFICATES_DIR: /conf/trusted-ca-certs
|
||||||
|
ROOTCERT_FILE: /conf/root.crt.pem
|
||||||
|
secrets:
|
||||||
|
- proxy.pem
|
||||||
|
depends_on:
|
||||||
|
- "forward_proxy"
|
||||||
|
volumes:
|
||||||
|
- /etc/bridgehead/trusted-ca-certs:/conf/trusted-ca-certs:ro
|
||||||
|
- /srv/docker/bridgehead/cce/root.crt.pem:/conf/root.crt.pem:ro
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
blaze-data:
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
proxy.pem:
|
||||||
|
file: /etc/bridgehead/pki/${SITE_ID}.priv.pem
|
28
cce/modules/lens-compose.yml
Normal file
28
cce/modules/lens-compose.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
version: "3.7"
|
||||||
|
services:
|
||||||
|
landing:
|
||||||
|
container_name: lens_federated-search
|
||||||
|
image: docker.verbis.dkfz.de/ccp/lens:${SITE_ID}
|
||||||
|
|
||||||
|
spot:
|
||||||
|
image: docker.verbis.dkfz.de/ccp-private/central-spot
|
||||||
|
environment:
|
||||||
|
BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
|
||||||
|
BEAM_URL: http://beam-proxy:8081
|
||||||
|
BEAM_PROXY_ID: ${SITE_ID}
|
||||||
|
BEAM_BROKER_ID: ${BROKER_ID}
|
||||||
|
BEAM_APP_ID: "focus"
|
||||||
|
PROJECT_METADATA: "cce_supervisors"
|
||||||
|
depends_on:
|
||||||
|
- "beam-proxy"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.spot.loadbalancer.server.port=8080"
|
||||||
|
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowmethods=GET,OPTIONS,POST"
|
||||||
|
- "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.tls=true"
|
||||||
|
- "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot"
|
6
cce/modules/lens-setup.sh
Normal file
6
cce/modules/lens-setup.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -n "$ENABLE_LENS" ];then
|
||||||
|
OVERRIDE+=" -f ./$PROJECT/modules/lens-compose.yml"
|
||||||
|
fi
|
||||||
|
}
|
20
cce/root.crt.pem
Normal file
20
cce/root.crt.pem
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNTCCAh2gAwIBAgIUW34NEb7bl0+Ywx+I1VKtY5vpAOowDQYJKoZIhvcNAQEL
|
||||||
|
BQAwFjEUMBIGA1UEAxMLQnJva2VyLVJvb3QwHhcNMjQwMTIyMTMzNzEzWhcNMzQw
|
||||||
|
MTE5MTMzNzQzWjAWMRQwEgYDVQQDEwtCcm9rZXItUm9vdDCCASIwDQYJKoZIhvcN
|
||||||
|
AQEBBQADggEPADCCAQoCggEBAL5UegLXTlq3XRRj8LyFs3aF0tpRPVoW9RXp5kFI
|
||||||
|
TnBvyO6qjNbMDT/xK+4iDtEX4QQUvsxAKxfXbe9i1jpdwjgH7JHaSGm2IjAiKLqO
|
||||||
|
OXQQtguWwfNmmp96Ql13ArLj458YH08xMO/w2NFWGwB/hfARa4z/T0afFuc/tKJf
|
||||||
|
XbGCG9xzJ9tmcG45QN8NChGhVvaTweNdVxGWlpHxmi0Mn8OM9CEuB7nPtTTiBuiu
|
||||||
|
pRC2zVVmNjVp4ktkAqL7IHOz+/F5nhiz6tOika9oD3376Xj055lPznLcTQn2+4d7
|
||||||
|
K7ZrBopCFxIQPjkgmYRLfPejbpdUjK1UVJw7hbWkqWqH7JMCAwEAAaN7MHkwDgYD
|
||||||
|
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGjvRcaIP4HM
|
||||||
|
poIguUAK9YL2n7fbMB8GA1UdIwQYMBaAFGjvRcaIP4HMpoIguUAK9YL2n7fbMBYG
|
||||||
|
A1UdEQQPMA2CC0Jyb2tlci1Sb290MA0GCSqGSIb3DQEBCwUAA4IBAQCbzycJSaDm
|
||||||
|
AXXNJqQ88djrKs5MDXS8RIjS/cu2ayuLaYDe+BzVmUXNA0Vt9nZGdaz63SLLcjpU
|
||||||
|
fNSxBfKbwmf7s30AK8Cnfj9q4W/BlBeVizUHQsg1+RQpDIdMrRQrwkXv8mfLw+w5
|
||||||
|
3oaXNW6W/8KpBp/H8TBZ6myl6jCbeR3T8EMXBwipMGop/1zkbF01i98Xpqmhx2+l
|
||||||
|
n+80ofPsSspOo5XmgCZym8CD/m/oFHmjcvOfpOCvDh4PZ+i37pmbSlCYoMpla3u/
|
||||||
|
7MJMP5lugfLBYNDN2p+V4KbHP/cApCDT5UWLOeAWjgiZQtHH5ilDeYqEc1oPjyJt
|
||||||
|
Rtup0MTxSJtN
|
||||||
|
-----END CERTIFICATE-----
|
14
cce/vars
Normal file
14
cce/vars
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
BROKER_ID=test-no-real-data.broker.samply.de
|
||||||
|
BROKER_URL=https://${BROKER_ID}
|
||||||
|
PROXY_ID=${SITE_ID}.${BROKER_ID}
|
||||||
|
FOCUS_BEAM_SECRET_SHORT="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
|
||||||
|
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
|
||||||
|
|
||||||
|
for module in $PROJECT/modules/*.sh
|
||||||
|
do
|
||||||
|
log DEBUG "sourcing $module"
|
||||||
|
source $module
|
||||||
|
done
|
@ -39,7 +39,7 @@ services:
|
|||||||
- "blaze"
|
- "blaze"
|
||||||
|
|
||||||
beam-proxy:
|
beam-proxy:
|
||||||
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:develop
|
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
|
||||||
container_name: bridgehead-beam-proxy
|
container_name: bridgehead-beam-proxy
|
||||||
environment:
|
environment:
|
||||||
BROKER_URL: ${BROKER_URL}
|
BROKER_URL: ${BROKER_URL}
|
||||||
|
@ -33,7 +33,7 @@ if [ "$ENABLE_DATASHIELD" == true ]; then
|
|||||||
echo "$sites" | docker_jq -n --args '[{
|
echo "$sites" | docker_jq -n --args '[{
|
||||||
"external": "'"$SITE_ID"':443",
|
"external": "'"$SITE_ID"':443",
|
||||||
"internal": "opal:8443",
|
"internal": "opal:8443",
|
||||||
"allowed": input | map("datashield-connect.\(.).'"$BROKER_ID"'")
|
"allowed": input | map("\(.).'"$BROKER_ID"'")
|
||||||
}]' >/tmp/bridgehead/opal-map/local.json
|
}]' >/tmp/bridgehead/opal-map/local.json
|
||||||
if [ "$USER" == "root" ]; then
|
if [ "$USER" == "root" ]; then
|
||||||
chown -R bridgehead:docker /tmp/bridgehead
|
chown -R bridgehead:docker /tmp/bridgehead
|
||||||
|
@ -10,5 +10,6 @@
|
|||||||
"essen",
|
"essen",
|
||||||
"dktk-datashield-test",
|
"dktk-datashield-test",
|
||||||
"dktk-test",
|
"dktk-test",
|
||||||
"mannheim"
|
"mannheim",
|
||||||
|
"central-ds-orchestrator"
|
||||||
]
|
]
|
||||||
|
@ -3,5 +3,5 @@
|
|||||||
if [ "$ENABLE_FHIR2SQL" == true ]; then
|
if [ "$ENABLE_FHIR2SQL" == true ]; then
|
||||||
log INFO "Dashboard setup detected -- will start Dashboard backend and FHIR2SQL service."
|
log INFO "Dashboard setup detected -- will start Dashboard backend and FHIR2SQL service."
|
||||||
OVERRIDE+=" -f ./$PROJECT/modules/fhir2sql-compose.yml"
|
OVERRIDE+=" -f ./$PROJECT/modules/fhir2sql-compose.yml"
|
||||||
DASHBOARD_DB_PASSWORD="$(echo \"This is a salt string to generate one consistent password for the Dashboard database. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)"
|
DASHBOARD_DB_PASSWORD="$(generate_simple_password 'fhir2sql')"
|
||||||
fi
|
fi
|
||||||
|
63
itcc/docker-compose.yml
Normal file
63
itcc/docker-compose.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
blaze:
|
||||||
|
image: docker.verbis.dkfz.de/cache/samply/blaze:0.28
|
||||||
|
container_name: bridgehead-itcc-blaze
|
||||||
|
environment:
|
||||||
|
BASE_URL: "http://bridgehead-itcc-blaze:8080"
|
||||||
|
JAVA_TOOL_OPTIONS: "-Xmx${BLAZE_MEMORY_CAP:-4096}m"
|
||||||
|
DB_RESOURCE_CACHE_SIZE: ${BLAZE_RESOURCE_CACHE_CAP:-2500000}
|
||||||
|
DB_BLOCK_CACHE_SIZE: $BLAZE_MEMORY_CAP
|
||||||
|
ENFORCE_REFERENTIAL_INTEGRITY: "false"
|
||||||
|
volumes:
|
||||||
|
- "blaze-data:/app/data"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.blaze_itcc.rule=PathPrefix(`/itcc-localdatamanagement`)"
|
||||||
|
- "traefik.http.middlewares.itcc_b_strip.stripprefix.prefixes=/itcc-localdatamanagement"
|
||||||
|
- "traefik.http.services.blaze_itcc.loadbalancer.server.port=8080"
|
||||||
|
- "traefik.http.routers.blaze_itcc.middlewares=itcc_b_strip,auth"
|
||||||
|
- "traefik.http.routers.blaze_itcc.tls=true"
|
||||||
|
|
||||||
|
focus:
|
||||||
|
image: docker.verbis.dkfz.de/cache/samply/focus:${FOCUS_TAG}
|
||||||
|
container_name: bridgehead-focus
|
||||||
|
environment:
|
||||||
|
API_KEY: ${FOCUS_BEAM_SECRET_SHORT}
|
||||||
|
BEAM_APP_ID_LONG: focus.${PROXY_ID}
|
||||||
|
PROXY_ID: ${PROXY_ID}
|
||||||
|
BLAZE_URL: "http://bridgehead-itcc-blaze:8080/fhir/"
|
||||||
|
BEAM_PROXY_URL: http://beam-proxy:8081
|
||||||
|
RETRY_COUNT: ${FOCUS_RETRY_COUNT}
|
||||||
|
EPSILON: 0.28
|
||||||
|
depends_on:
|
||||||
|
- "beam-proxy"
|
||||||
|
- "blaze"
|
||||||
|
|
||||||
|
beam-proxy:
|
||||||
|
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
|
||||||
|
container_name: bridgehead-beam-proxy
|
||||||
|
environment:
|
||||||
|
BROKER_URL: ${BROKER_URL}
|
||||||
|
PROXY_ID: ${PROXY_ID}
|
||||||
|
APP_focus_KEY: ${FOCUS_BEAM_SECRET_SHORT}
|
||||||
|
PRIVKEY_FILE: /run/secrets/proxy.pem
|
||||||
|
ALL_PROXY: http://forward_proxy:3128
|
||||||
|
TLS_CA_CERTIFICATES_DIR: /conf/trusted-ca-certs
|
||||||
|
ROOTCERT_FILE: /conf/root.crt.pem
|
||||||
|
secrets:
|
||||||
|
- proxy.pem
|
||||||
|
depends_on:
|
||||||
|
- "forward_proxy"
|
||||||
|
volumes:
|
||||||
|
- /etc/bridgehead/trusted-ca-certs:/conf/trusted-ca-certs:ro
|
||||||
|
- /srv/docker/bridgehead/itcc/root.crt.pem:/conf/root.crt.pem:ro
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
blaze-data:
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
proxy.pem:
|
||||||
|
file: /etc/bridgehead/pki/${SITE_ID}.priv.pem
|
28
itcc/modules/lens-compose.yml
Normal file
28
itcc/modules/lens-compose.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
version: "3.7"
|
||||||
|
services:
|
||||||
|
landing:
|
||||||
|
container_name: lens_federated-search
|
||||||
|
image: docker.verbis.dkfz.de/ccp/lens:${SITE_ID}
|
||||||
|
|
||||||
|
spot:
|
||||||
|
image: docker.verbis.dkfz.de/ccp-private/central-spot
|
||||||
|
environment:
|
||||||
|
BEAM_SECRET: "${FOCUS_BEAM_SECRET_SHORT}"
|
||||||
|
BEAM_URL: http://beam-proxy:8081
|
||||||
|
BEAM_PROXY_ID: ${SITE_ID}
|
||||||
|
BEAM_BROKER_ID: ${BROKER_ID}
|
||||||
|
BEAM_APP_ID: "focus"
|
||||||
|
PROJECT_METADATA: "dktk_supervisors"
|
||||||
|
depends_on:
|
||||||
|
- "beam-proxy"
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.spot.loadbalancer.server.port=8080"
|
||||||
|
- "traefik.http.middlewares.corsheaders2.headers.accesscontrolallowmethods=GET,OPTIONS,POST"
|
||||||
|
- "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.tls=true"
|
||||||
|
- "traefik.http.routers.spot.middlewares=corsheaders2,stripprefix_spot"
|
5
itcc/modules/lens-setup.sh
Normal file
5
itcc/modules/lens-setup.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -n "$ENABLE_LENS" ];then
|
||||||
|
OVERRIDE+=" -f ./$PROJECT/modules/lens-compose.yml"
|
||||||
|
fi
|
20
itcc/root.crt.pem
Normal file
20
itcc/root.crt.pem
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNTCCAh2gAwIBAgIUW34NEb7bl0+Ywx+I1VKtY5vpAOowDQYJKoZIhvcNAQEL
|
||||||
|
BQAwFjEUMBIGA1UEAxMLQnJva2VyLVJvb3QwHhcNMjQwMTIyMTMzNzEzWhcNMzQw
|
||||||
|
MTE5MTMzNzQzWjAWMRQwEgYDVQQDEwtCcm9rZXItUm9vdDCCASIwDQYJKoZIhvcN
|
||||||
|
AQEBBQADggEPADCCAQoCggEBAL5UegLXTlq3XRRj8LyFs3aF0tpRPVoW9RXp5kFI
|
||||||
|
TnBvyO6qjNbMDT/xK+4iDtEX4QQUvsxAKxfXbe9i1jpdwjgH7JHaSGm2IjAiKLqO
|
||||||
|
OXQQtguWwfNmmp96Ql13ArLj458YH08xMO/w2NFWGwB/hfARa4z/T0afFuc/tKJf
|
||||||
|
XbGCG9xzJ9tmcG45QN8NChGhVvaTweNdVxGWlpHxmi0Mn8OM9CEuB7nPtTTiBuiu
|
||||||
|
pRC2zVVmNjVp4ktkAqL7IHOz+/F5nhiz6tOika9oD3376Xj055lPznLcTQn2+4d7
|
||||||
|
K7ZrBopCFxIQPjkgmYRLfPejbpdUjK1UVJw7hbWkqWqH7JMCAwEAAaN7MHkwDgYD
|
||||||
|
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGjvRcaIP4HM
|
||||||
|
poIguUAK9YL2n7fbMB8GA1UdIwQYMBaAFGjvRcaIP4HMpoIguUAK9YL2n7fbMBYG
|
||||||
|
A1UdEQQPMA2CC0Jyb2tlci1Sb290MA0GCSqGSIb3DQEBCwUAA4IBAQCbzycJSaDm
|
||||||
|
AXXNJqQ88djrKs5MDXS8RIjS/cu2ayuLaYDe+BzVmUXNA0Vt9nZGdaz63SLLcjpU
|
||||||
|
fNSxBfKbwmf7s30AK8Cnfj9q4W/BlBeVizUHQsg1+RQpDIdMrRQrwkXv8mfLw+w5
|
||||||
|
3oaXNW6W/8KpBp/H8TBZ6myl6jCbeR3T8EMXBwipMGop/1zkbF01i98Xpqmhx2+l
|
||||||
|
n+80ofPsSspOo5XmgCZym8CD/m/oFHmjcvOfpOCvDh4PZ+i37pmbSlCYoMpla3u/
|
||||||
|
7MJMP5lugfLBYNDN2p+V4KbHP/cApCDT5UWLOeAWjgiZQtHH5ilDeYqEc1oPjyJt
|
||||||
|
Rtup0MTxSJtN
|
||||||
|
-----END CERTIFICATE-----
|
14
itcc/vars
Normal file
14
itcc/vars
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
BROKER_ID=test-no-real-data.broker.samply.de
|
||||||
|
BROKER_URL=https://${BROKER_ID}
|
||||||
|
PROXY_ID=${SITE_ID}.${BROKER_ID}
|
||||||
|
FOCUS_BEAM_SECRET_SHORT="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
|
||||||
|
FOCUS_RETRY_COUNT=${FOCUS_RETRY_COUNT:-64}
|
||||||
|
SUPPORT_EMAIL=manoj.waikar@dkfz-heidelberg.de
|
||||||
|
PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
|
||||||
|
BROKER_URL_FOR_PREREQ=$BROKER_URL
|
||||||
|
|
||||||
|
for module in $PROJECT/modules/*.sh
|
||||||
|
do
|
||||||
|
log DEBUG "sourcing $module"
|
||||||
|
source $module
|
||||||
|
done
|
@ -54,7 +54,7 @@ checkOwner(){
|
|||||||
|
|
||||||
printUsage() {
|
printUsage() {
|
||||||
echo "Usage: bridgehead start|stop|logs|docker-logs|is-running|update|install|uninstall|adduser|enroll PROJECTNAME"
|
echo "Usage: bridgehead start|stop|logs|docker-logs|is-running|update|install|uninstall|adduser|enroll PROJECTNAME"
|
||||||
echo "PROJECTNAME should be one of ccp|bbmri"
|
echo "PROJECTNAME should be one of ccp|bbmri|cce|itcc"
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRequirements() {
|
checkRequirements() {
|
||||||
|
@ -52,6 +52,12 @@ case "$PROJECT" in
|
|||||||
bbmri)
|
bbmri)
|
||||||
site_configuration_repository_middle="git.verbis.dkfz.de/bbmri-bridgehead-configs/"
|
site_configuration_repository_middle="git.verbis.dkfz.de/bbmri-bridgehead-configs/"
|
||||||
;;
|
;;
|
||||||
|
cce)
|
||||||
|
site_configuration_repository_middle="git.verbis.dkfz.de/cce-sites/"
|
||||||
|
;;
|
||||||
|
itcc)
|
||||||
|
site_configuration_repository_middle="git.verbis.dkfz.de/itcc-sites/"
|
||||||
|
;;
|
||||||
minimal)
|
minimal)
|
||||||
site_configuration_repository_middle="git.verbis.dkfz.de/minimal-bridgehead-configs/"
|
site_configuration_repository_middle="git.verbis.dkfz.de/minimal-bridgehead-configs/"
|
||||||
;;
|
;;
|
||||||
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
dnpm-beam-proxy:
|
dnpm-beam-proxy:
|
||||||
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:develop
|
image: docker.verbis.dkfz.de/cache/samply/beam-proxy:${BEAM_TAG}
|
||||||
container_name: bridgehead-dnpm-beam-proxy
|
container_name: bridgehead-dnpm-beam-proxy
|
||||||
environment:
|
environment:
|
||||||
BROKER_URL: ${DNPM_BROKER_URL}
|
BROKER_URL: ${DNPM_BROKER_URL}
|
||||||
|
Reference in New Issue
Block a user