From 2252504d7871e24cb426d388eb89763c9c9092f2 Mon Sep 17 00:00:00 2001 From: Tobias Kussel Date: Fri, 3 Nov 2023 07:33:16 +0000 Subject: [PATCH 1/4] add bwhc node module --- ccp/modules/dnpm-node-compose.yml | 36 +++++++++++++++++++++++++++++++ ccp/modules/dnpm-node-setup.sh | 26 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 ccp/modules/dnpm-node-compose.yml create mode 100644 ccp/modules/dnpm-node-setup.sh diff --git a/ccp/modules/dnpm-node-compose.yml b/ccp/modules/dnpm-node-compose.yml new file mode 100644 index 0000000..97834ae --- /dev/null +++ b/ccp/modules/dnpm-node-compose.yml @@ -0,0 +1,36 @@ +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/dnpm/config:/bwhc_config + - ${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.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 new file mode 100644 index 0000000..d658070 --- /dev/null +++ b/ccp/modules/dnpm-node-setup.sh @@ -0,0 +1,26 @@ +#!/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 + 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 From 459fa7f78e9ed32e8dd6cdcab277c2969fa4bdc4 Mon Sep 17 00:00:00 2001 From: Tobias Kussel Date: Fri, 15 Dec 2023 09:24:06 +0000 Subject: [PATCH 2/4] 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 From d28a3ac889db75a340f1bcce7b1c36cd32c25df3 Mon Sep 17 00:00:00 2001 From: Tobias Kussel Date: Fri, 15 Dec 2023 09:46:40 +0000 Subject: [PATCH 3/4] Add dnpm node module to bbmri project --- bbmri/modules/dnpm-node-compose.yml | 33 +++++++++++++++++++++++++++++ bbmri/modules/dnpm-node-setup.sh | 27 +++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 bbmri/modules/dnpm-node-compose.yml create mode 100644 bbmri/modules/dnpm-node-setup.sh diff --git a/bbmri/modules/dnpm-node-compose.yml b/bbmri/modules/dnpm-node-compose.yml new file mode 100644 index 0000000..8a39223 --- /dev/null +++ b/bbmri/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/bbmri/modules/dnpm-node-setup.sh b/bbmri/modules/dnpm-node-setup.sh new file mode 100644 index 0000000..ec75a7e --- /dev/null +++ b/bbmri/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 From f66f2755d89cf0178ce201003bf999ac4e6ec6a7 Mon Sep 17 00:00:00 2001 From: Tobias Kussel Date: Fri, 15 Dec 2023 13:32:00 +0000 Subject: [PATCH 4/4] Change landing page path override to /landing --- bbmri/modules/dnpm-node-setup.sh | 6 +++--- ccp/modules/dnpm-node-setup.sh | 6 +++--- minimal/modules/dnpm-node-setup.sh | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bbmri/modules/dnpm-node-setup.sh b/bbmri/modules/dnpm-node-setup.sh index ec75a7e..88447ef 100644 --- a/bbmri/modules/dnpm-node-setup.sh +++ b/bbmri/modules/dnpm-node-setup.sh @@ -14,14 +14,14 @@ if [ -n "${ENABLE_DNPM_NODE}" ]; 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 + if grep -q 'traefik.http.routers.landing.rule=PathPrefix(`/landing`)' /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 + echo -e ' landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/landing`)"' >> /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 + echo -e 'version: "3.7"\nservices:\n landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/landing`)"' >> /srv/docker/bridgehead/minimal/docker-compose.override.yml fi fi fi diff --git a/ccp/modules/dnpm-node-setup.sh b/ccp/modules/dnpm-node-setup.sh index ec75a7e..88447ef 100644 --- a/ccp/modules/dnpm-node-setup.sh +++ b/ccp/modules/dnpm-node-setup.sh @@ -14,14 +14,14 @@ if [ -n "${ENABLE_DNPM_NODE}" ]; 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 + if grep -q 'traefik.http.routers.landing.rule=PathPrefix(`/landing`)' /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 + echo -e ' landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/landing`)"' >> /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 + echo -e 'version: "3.7"\nservices:\n landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/landing`)"' >> /srv/docker/bridgehead/minimal/docker-compose.override.yml fi fi fi diff --git a/minimal/modules/dnpm-node-setup.sh b/minimal/modules/dnpm-node-setup.sh index ec75a7e..88447ef 100644 --- a/minimal/modules/dnpm-node-setup.sh +++ b/minimal/modules/dnpm-node-setup.sh @@ -14,14 +14,14 @@ if [ -n "${ENABLE_DNPM_NODE}" ]; 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 + if grep -q 'traefik.http.routers.landing.rule=PathPrefix(`/landing`)' /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 + echo -e ' landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/landing`)"' >> /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 + echo -e 'version: "3.7"\nservices:\n landing:\n labels:\n - "traefik.http.routers.landing.rule=PathPrefix(`/landing`)"' >> /srv/docker/bridgehead/minimal/docker-compose.override.yml fi fi fi