116
									
								
								bbmri/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								bbmri/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
				
			|||||||
 | 
					version: "3.7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    container_name: bridgehead-traefik
 | 
				
			||||||
 | 
					    image: traefik:latest
 | 
				
			||||||
 | 
					    command:
 | 
				
			||||||
 | 
					      - --entrypoints.web.address=:80
 | 
				
			||||||
 | 
					      - --entrypoints.websecure.address=:443
 | 
				
			||||||
 | 
					      - --providers.docker=true
 | 
				
			||||||
 | 
					      - --providers.file.watch=true
 | 
				
			||||||
 | 
					      - --providers.file.directory=/configuration/
 | 
				
			||||||
 | 
					      - --api.dashboard=true
 | 
				
			||||||
 | 
					      - --accesslog=true # print access-logs
 | 
				
			||||||
 | 
					      - --entrypoints.web.http.redirections.entrypoint.to=websecure
 | 
				
			||||||
 | 
					      - --entrypoints.web.http.redirections.entrypoint.scheme=https
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.http.routers.dashboard.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.dashboard.entrypoints=websecure"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.dashboard.service=api@internal"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.dashboard.tls=true"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.dashboard.middlewares=auth"
 | 
				
			||||||
 | 
					      - "traefik.http.middlewares.auth.basicauth.users=${bc_auth_users}"
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - 80:80
 | 
				
			||||||
 | 
					      - 443:443
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - /etc/bridgehead/traefik-tls:/certs:ro
 | 
				
			||||||
 | 
					      - ../lib/traefik-configuration/:/configuration:ro
 | 
				
			||||||
 | 
					      - /var/run/docker.sock:/var/run/docker.sock:ro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  forward_proxy:
 | 
				
			||||||
 | 
					    container_name: bridgehead-forward-proxy
 | 
				
			||||||
 | 
					    image: samply/bridgehead-forward-proxy:latest
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      HTTPS_PROXY: ${HTTPS_PROXY_URL}
 | 
				
			||||||
 | 
					      USERNAME: ${HTTPS_PROXY_USERNAME}
 | 
				
			||||||
 | 
					      PASSWORD: ${HTTPS_PROXY_PASSWORD}
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - /etc/bridgehead/trusted-ca-certs:/docker/custom-certs/:ro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  landing:
 | 
				
			||||||
 | 
					#    container_name: bridgehead-landingpage
 | 
				
			||||||
 | 
					#    image: samply/bridgehead-landingpage:master
 | 
				
			||||||
 | 
					#    labels:
 | 
				
			||||||
 | 
					#      - "traefik.enable=true"
 | 
				
			||||||
 | 
					#      - "traefik.http.routers.landing.rule=PathPrefix(`/`)"
 | 
				
			||||||
 | 
					#      - "traefik.http.services.landing.loadbalancer.server.port=80"
 | 
				
			||||||
 | 
					#      - "traefik.http.routers.landing.tls=true"
 | 
				
			||||||
 | 
					#    environment:
 | 
				
			||||||
 | 
					#      HOST: ${HOST}
 | 
				
			||||||
 | 
					#      PROJECT: ${PROJECT}
 | 
				
			||||||
 | 
					#      SITE_NAME: ${SITE_NAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  blaze:
 | 
				
			||||||
 | 
					    image: "samply/blaze:0.18"
 | 
				
			||||||
 | 
					    container_name: bridgehead-ccp-blaze
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      BASE_URL: "http://bridgehead-ccp-blaze:8080"
 | 
				
			||||||
 | 
					      JAVA_TOOL_OPTIONS: "-Xmx4g"
 | 
				
			||||||
 | 
					      LOG_LEVEL: "debug"
 | 
				
			||||||
 | 
					      ENFORCE_REFERENTIAL_INTEGRITY: "false"
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - "blaze-data:/app/data"
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.enable=true"
 | 
				
			||||||
 | 
					      - "traefik.http.middlewares.ccp-auth.basicauth.users=${bc_auth_users}"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.blaze_ccp.rule=PathPrefix(`/ccp-localdatamanagement`)"
 | 
				
			||||||
 | 
					      - "traefik.http.middlewares.ccp_b_strip.stripprefix.prefixes=/ccp-localdatamanagement"
 | 
				
			||||||
 | 
					      - "traefik.http.services.blaze_ccp.loadbalancer.server.port=8080"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.blaze_ccp.middlewares=ccp_b_strip,ccp-auth"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.blaze_ccp.tls=true"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  spot:
 | 
				
			||||||
 | 
					    image: samply/spot:latest
 | 
				
			||||||
 | 
					    container_name: bridgehead-spot
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      SECRET: ${SPOT_BEAM_SECRET_LONG}
 | 
				
			||||||
 | 
					      APPID: spot
 | 
				
			||||||
 | 
					      PROXY_ID: ${PROXY_ID}
 | 
				
			||||||
 | 
					      LDM_URL: http://bridgehead-ccp-blaze:8080/fhir
 | 
				
			||||||
 | 
					      BEAM_PROXY: http://beam-proxy:8081
 | 
				
			||||||
 | 
					    depends_on:
 | 
				
			||||||
 | 
					      - "beam-proxy"
 | 
				
			||||||
 | 
					      - "blaze"
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.enable=false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beam-proxy:
 | 
				
			||||||
 | 
					    image: "samply/beam-proxy:develop"
 | 
				
			||||||
 | 
					    container_name: bridgehead-beam-proxy
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      BROKER_URL: ${BROKER_URL}
 | 
				
			||||||
 | 
					      PROXY_ID: ${PROXY_ID}
 | 
				
			||||||
 | 
					      APP_0_ID: spot
 | 
				
			||||||
 | 
					      APP_0_KEY: ${SPOT_BEAM_SECRET_SHORT}
 | 
				
			||||||
 | 
					      PRIVKEY_FILE: /run/secrets/proxy.pem
 | 
				
			||||||
 | 
					      RUST_LOG: debug
 | 
				
			||||||
 | 
					      ALL_PROXY: http://forward_proxy:3128
 | 
				
			||||||
 | 
					      TLS_CA_CERTIFICATES_DIR: /conf/trusted-ca-certs
 | 
				
			||||||
 | 
					    secrets:
 | 
				
			||||||
 | 
					      - proxy.pem
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.enable=false"
 | 
				
			||||||
 | 
					    depends_on:
 | 
				
			||||||
 | 
					      - "forward_proxy"
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - /etc/bridgehead/trusted-ca-certs:/conf/trusted-ca-certs:ro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					volumes:
 | 
				
			||||||
 | 
					  blaze-data:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					secrets:
 | 
				
			||||||
 | 
					  proxy.pem:
 | 
				
			||||||
 | 
					    file: /etc/bridgehead/pki/${SITE_ID}.priv.pem
 | 
				
			||||||
							
								
								
									
										7
									
								
								bbmri/vars
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								bbmri/vars
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					BROKER_ID=broker.bbmri.samply.de
 | 
				
			||||||
 | 
					BROKER_URL=https://${BROKER_ID}
 | 
				
			||||||
 | 
					PROXY_ID=${SITE_ID}.${BROKER_ID}
 | 
				
			||||||
 | 
					SPOT_BEAM_SECRET_SHORT="$(cat /proc/sys/kernel/random/uuid | sed 's/[-]//g' | head -c 20)"
 | 
				
			||||||
 | 
					SPOT_BEAM_SECRET_LONG="ApiKey spot.${PROXY_ID} ${SPOT_BEAM_SECRET_SHORT}"
 | 
				
			||||||
 | 
					SUPPORT_EMAIL=bridgehead@helpdesk.bbmri-eric.eu
 | 
				
			||||||
 | 
					PRIVATEKEYFILENAME=/etc/bridgehead/pki/${SITE_ID}.priv.pem
 | 
				
			||||||
@@ -32,7 +32,7 @@ case "$PROJECT" in
 | 
				
			|||||||
	nngm)
 | 
						nngm)
 | 
				
			||||||
		#nothing extra to do
 | 
							#nothing extra to do
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	gbn)
 | 
						bbmri)
 | 
				
			||||||
		#nothing extra to do
 | 
							#nothing extra to do
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	*)
 | 
						*)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,100 +0,0 @@
 | 
				
			|||||||
version: '3.7'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					 | 
				
			||||||
  gbn-connector-logs:
 | 
					 | 
				
			||||||
  gbn-connector-db-data:
 | 
					 | 
				
			||||||
  gbn-store-db-data:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
services:
 | 
					 | 
				
			||||||
  traefik:
 | 
					 | 
				
			||||||
    container_name: bridgehead-traefik
 | 
					 | 
				
			||||||
    image: traefik:2
 | 
					 | 
				
			||||||
    command:
 | 
					 | 
				
			||||||
      - --entrypoints.web.address=:80
 | 
					 | 
				
			||||||
      - --entrypoints.websecure.address=:443
 | 
					 | 
				
			||||||
      - --providers.docker=true
 | 
					 | 
				
			||||||
      - --api.dashboard=true
 | 
					 | 
				
			||||||
      - --accesslog=true # print access-logs
 | 
					 | 
				
			||||||
      - --entrypoints.web.http.redirections.entrypoint.to=websecure
 | 
					 | 
				
			||||||
      - --entrypoints.web.http.redirections.entrypoint.scheme=https
 | 
					 | 
				
			||||||
    labels:
 | 
					 | 
				
			||||||
      - "traefik.http.routers.dashboard.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.dashboard.entrypoints=websecure"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.dashboard.service=api@internal"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.dashboard.tls=true"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.dashboard.middlewares=auth"
 | 
					 | 
				
			||||||
      - "traefik.http.middlewares.auth.basicauth.users=${bc_auth_users}"
 | 
					 | 
				
			||||||
    ports:
 | 
					 | 
				
			||||||
      - 80:80
 | 
					 | 
				
			||||||
      - 443:443
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - ../certs:/tools/certs
 | 
					 | 
				
			||||||
      - /var/run/docker.sock:/var/run/docker.sock:ro
 | 
					 | 
				
			||||||
    extra_hosts:
 | 
					 | 
				
			||||||
      - "host.docker.internal:host-gateway"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  forward_proxy:
 | 
					 | 
				
			||||||
    container_name: bridgehead-forward-proxy
 | 
					 | 
				
			||||||
    image: ubuntu/squid
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      http_proxy: ${http_proxy}
 | 
					 | 
				
			||||||
      https_proxy: ${https_proxy}
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - "bridgehead-proxy:/var/log/squid"
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  landing:
 | 
					 | 
				
			||||||
    container_name: bridgehead-landingpage
 | 
					 | 
				
			||||||
    image: samply/bridgehead-landingpage
 | 
					 | 
				
			||||||
    labels:
 | 
					 | 
				
			||||||
      - "traefik.enable=true"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.landing.rule=PathPrefix(`/`)"
 | 
					 | 
				
			||||||
      - "traefik.http.services.landing.loadbalancer.server.port=80"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.landing.tls=true"
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      HOST: ${HOST}
 | 
					 | 
				
			||||||
      PROJECT: ${PROJECT}
 | 
					 | 
				
			||||||
      SITE_NAME: ${SITE_NAME}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  blaze:
 | 
					 | 
				
			||||||
    image: "samply/blaze:0.17"
 | 
					 | 
				
			||||||
    container_name: bridgehead-gbn-blaze
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      BASE_URL: "http://blaze:8080"
 | 
					 | 
				
			||||||
      JAVA_TOOL_OPTIONS: "-Xmx4g"
 | 
					 | 
				
			||||||
      LOG_LEVEL: "debug"
 | 
					 | 
				
			||||||
      ENFORCE_REFERENTIAL_INTEGRITY: "false"
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
    - "blaze-data:/app/data"
 | 
					 | 
				
			||||||
    labels:
 | 
					 | 
				
			||||||
      - "traefik.enable=true"
 | 
					 | 
				
			||||||
      - "traefik.http.middlewares.gbn-auth.basicauth.users=${bc_auth_users}"
 | 
					 | 
				
			||||||
      - "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,gbn-auth"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.blaze_gbn.tls=true"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  gbn-connector:
 | 
					 | 
				
			||||||
    container_name: bridgehead-gbn-connector
 | 
					 | 
				
			||||||
    image: "samply/share-client:gbn-feature-environmentPreconfiguration"
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - "gbn-connector-logs:/usr/local/tomcat/logs"
 | 
					 | 
				
			||||||
    labels:
 | 
					 | 
				
			||||||
      - "traefik.enable=true"
 | 
					 | 
				
			||||||
      - "traefik.http.routers.gbn_connector.rule=PathPrefix(`/gbn-connector`)"
 | 
					 | 
				
			||||||
      - "traefik.http.services.gbn_connector.loadbalancer.server.port=8080"
 | 
					 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      - "gbn-connector-db"
 | 
					 | 
				
			||||||
    restart: "always"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  gbn-connector-db:
 | 
					 | 
				
			||||||
    image: "postgres:10.17"
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      POSTGRES_DB: "samply.connector"
 | 
					 | 
				
			||||||
      POSTGRES_USER: "samply"
 | 
					 | 
				
			||||||
      POSTGRES_PASSWORD: ${CONNECTOR_POSTGRES_PASS}
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - "gbn-connector-db-data:/var/lib/postgresql/data"
 | 
					 | 
				
			||||||
    restart: "always"
 | 
					 | 
				
			||||||
@@ -20,7 +20,7 @@ checkOwner(){
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
printUsage() {
 | 
					printUsage() {
 | 
				
			||||||
	echo "Usage: bridgehead start|stop|update|install|uninstall|enroll PROJECTNAME"
 | 
						echo "Usage: bridgehead start|stop|update|install|uninstall|enroll PROJECTNAME"
 | 
				
			||||||
	echo "PROJECTNAME should be one of ccp|nngm|gbn"
 | 
						echo "PROJECTNAME should be one of ccp|nngm|bbmri"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
checkRequirements() {
 | 
					checkRequirements() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,8 +7,8 @@ if [ $# -eq 0 ]; then
 | 
				
			|||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "gbn" ]; then
 | 
					if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "bbmri" ]; then
 | 
				
			||||||
    log "ERROR" "Please provide a supported project like ccp, gbn or nngm"
 | 
					    log "ERROR" "Please provide a supported project like ccp, bbmri or nngm"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,8 +9,8 @@ if [ $# -eq 0 ]; then
 | 
				
			|||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "gbn" ]; then
 | 
					if [ $1 != "ccp" ] && [ $1 != "nngm" ] && [ $1 != "bbmri" ]; then
 | 
				
			||||||
    log "ERROR" "Please provide a supported project like ccp, gbn or nngm"
 | 
					    log "ERROR" "Please provide a supported project like ccp, bbmri or nngm"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,7 +75,7 @@ done
 | 
				
			|||||||
# Check docker updates
 | 
					# Check docker updates
 | 
				
			||||||
log "INFO" "Checking for updates to running docker images ..."
 | 
					log "INFO" "Checking for updates to running docker images ..."
 | 
				
			||||||
docker_updated="false"
 | 
					docker_updated="false"
 | 
				
			||||||
for IMAGE in $(cat $PROJECT/docker-compose.yml | grep "image:" | sed -e 's_^.*image: \(.*\).*$_\1_g; s_\"__g'); do
 | 
					for IMAGE in $(cat $PROJECT/docker-compose.yml | grep -v "^#" | grep "image:" | sed -e 's_^.*image: \(.*\).*$_\1_g; s_\"__g'); do
 | 
				
			||||||
  log "INFO" "Checking for Updates of Image: $IMAGE"
 | 
					  log "INFO" "Checking for Updates of Image: $IMAGE"
 | 
				
			||||||
  if docker pull $IMAGE | grep "Downloaded newer image"; then
 | 
					  if docker pull $IMAGE | grep "Downloaded newer image"; then
 | 
				
			||||||
    CHANGE="Image $IMAGE updated."
 | 
					    CHANGE="Image $IMAGE updated."
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user