From 459fa7f78e9ed32e8dd6cdcab277c2969fa4bdc4 Mon Sep 17 00:00:00 2001 From: Tobias Kussel Date: Fri, 15 Dec 2023 09:24:06 +0000 Subject: [PATCH] Add DNPM Node feature to minimal --- ccp/modules/dnpm-node-compose.yml | 5 +--- ccp/modules/dnpm-node-setup.sh | 1 + minimal/modules/dnpm-node-compose.yml | 33 +++++++++++++++++++++++++++ minimal/modules/dnpm-node-setup.sh | 27 ++++++++++++++++++++++ 4 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 minimal/modules/dnpm-node-compose.yml create mode 100644 minimal/modules/dnpm-node-setup.sh diff --git a/ccp/modules/dnpm-node-compose.yml b/ccp/modules/dnpm-node-compose.yml index 97834ae..8a39223 100644 --- a/ccp/modules/dnpm-node-compose.yml +++ b/ccp/modules/dnpm-node-compose.yml @@ -7,7 +7,7 @@ services: environment: - ZPM_SITE=${ZPM_SITE} volumes: - - /etc/dnpm/config:/bwhc_config + - /etc/bridgehead/dnpm:/bwhc_config:ro - ${DNPM_DATA_DIR}:/bwhc_data labels: - "traefik.enable=true" @@ -29,8 +29,5 @@ services: labels: - "traefik.enable=true" - "traefik.http.routers.bwhc-frontend.rule=PathPrefix(`/`)" -# - "traefik.http.middlewares.bwhc-frontend-strip.stripprefix.prefixes=/bwhc-frontend" -# - "traefik.http.routers.bwhc-frontend.middlewares=bwhc-frontend-strip" - "traefik.http.services.bwhc-frontend.loadbalancer.server.port=8080" - "traefik.http.routers.bwhc-frontend.tls=true" - diff --git a/ccp/modules/dnpm-node-setup.sh b/ccp/modules/dnpm-node-setup.sh index d658070..ec75a7e 100644 --- a/ccp/modules/dnpm-node-setup.sh +++ b/ccp/modules/dnpm-node-setup.sh @@ -5,6 +5,7 @@ if [ -n "${ENABLE_DNPM_NODE}" ]; then OVERRIDE+=" -f ./$PROJECT/modules/dnpm-node-compose.yml" # Set variables required for BwHC Node. ZPM_SITE is assumed to be set in /etc/bridgehead/.conf + DNPM_APPLICATION_SECRET="$(echo \"This is a salt string to generate one consistent password for DNPM. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)" if [ -z "${ZPM_SITE+x}" ]; then log ERROR "Mandatory variable ZPM_SITE not defined!" exit 1 diff --git a/minimal/modules/dnpm-node-compose.yml b/minimal/modules/dnpm-node-compose.yml new file mode 100644 index 0000000..8a39223 --- /dev/null +++ b/minimal/modules/dnpm-node-compose.yml @@ -0,0 +1,33 @@ +version: "3.7" + +services: + dnpm-backend: + image: ghcr.io/kohlbacherlab/bwhc-backend:1.0-snapshot-broker-connector + container_name: bridgehead-dnpm-backend + environment: + - ZPM_SITE=${ZPM_SITE} + volumes: + - /etc/bridgehead/dnpm:/bwhc_config:ro + - ${DNPM_DATA_DIR}:/bwhc_data + labels: + - "traefik.enable=true" + - "traefik.http.routers.bwhc-backend.rule=PathPrefix(`/bwhc`)" + - "traefik.http.services.bwhc-backend.loadbalancer.server.port=9000" + - "traefik.http.routers.bwhc-backend.tls=true" + + dnpm-frontend: + image: ghcr.io/kohlbacherlab/bwhc-frontend:2209 + container_name: bridgehead-dnpm-frontend + links: + - dnpm-backend + environment: + - NUXT_HOST=0.0.0.0 + - NUXT_PORT=8080 + - BACKEND_PROTOCOL=https + - BACKEND_HOSTNAME=$HOST + - BACKEND_PORT=443 + labels: + - "traefik.enable=true" + - "traefik.http.routers.bwhc-frontend.rule=PathPrefix(`/`)" + - "traefik.http.services.bwhc-frontend.loadbalancer.server.port=8080" + - "traefik.http.routers.bwhc-frontend.tls=true" diff --git a/minimal/modules/dnpm-node-setup.sh b/minimal/modules/dnpm-node-setup.sh new file mode 100644 index 0000000..ec75a7e --- /dev/null +++ b/minimal/modules/dnpm-node-setup.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if [ -n "${ENABLE_DNPM_NODE}" ]; then + log INFO "DNPM setup detected (BwHC Node) -- will start BwHC node." + OVERRIDE+=" -f ./$PROJECT/modules/dnpm-node-compose.yml" + + # Set variables required for BwHC Node. ZPM_SITE is assumed to be set in /etc/bridgehead/.conf + DNPM_APPLICATION_SECRET="$(echo \"This is a salt string to generate one consistent password for DNPM. It is not required to be secret.\" | sha1sum | openssl pkeyutl -sign -inkey /etc/bridgehead/pki/${SITE_ID}.priv.pem | base64 | head -c 30)" + if [ -z "${ZPM_SITE+x}" ]; then + log ERROR "Mandatory variable ZPM_SITE not defined!" + exit 1 + fi + if [ -z "${DNPM_DATA_DIR+x}" ]; then + log ERROR "Mandatory variable DNPM_DATA_DIR not defined!" + exit 1 + fi + if grep -q 'traefik.http.routers.landing.rule=PathPrefix(`/dashboard`)' /srv/docker/bridgehead/minimal/docker-compose.override.yml 2>/dev/null; then + echo "Override of landing page url already in place" + else + echo "Adding override of landing page url" + if [ -f /srv/docker/bridgehead/minimal/docker-compose.override.yml ]; then + echo -e ' landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/dashboard`)"' >> /srv/docker/bridgehead/minimal/docker-compose.override.yml + else + echo -e 'version: "3.7"\nservices:\n landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/dashboard`)"' >> /srv/docker/bridgehead/minimal/docker-compose.override.yml + fi + fi +fi