From 56485d2d75fba0ae6e9749b5a77ac4f55b71d0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 20:43:19 +0100 Subject: [PATCH 01/45] start adding federation to deployment scripts --- deployment/bare_metal/.env.dist | 2 ++ deployment/bare_metal/start.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/deployment/bare_metal/.env.dist b/deployment/bare_metal/.env.dist index 9c9c7ac82..80c1b36a1 100644 --- a/deployment/bare_metal/.env.dist +++ b/deployment/bare_metal/.env.dist @@ -61,6 +61,8 @@ WEBHOOK_ELOPAGE_SECRET=secret # on an hash created from this topic # FEDERATION_DHT_TOPIC=GRADIDO_HUB # FEDERATION_DHT_SEED=64ebcb0e3ad547848fef4197c6e2332f +FEDERATION_CONFIG_VERSION=v1.2023-01-09 +FEDERATION_API=1_0 # database DATABASE_CONFIG_VERSION=v1.2022-03-18 diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 95b89241f..ae98c7e87 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -1,5 +1,18 @@ #!/bin/bash +echo "Before getopt" +for i +do + echo $i +done +args=`getopt b:p: $*` +set -- $args +echo "After getopt" +for i +do + echo "-->$i" +done + # Find current directory & configure paths set -o allexport SCRIPT_PATH=$(realpath $0) @@ -93,10 +106,12 @@ cp -f $PROJECT_ROOT/database/.env $PROJECT_ROOT/database/.env.bak cp -f $PROJECT_ROOT/backend/.env $PROJECT_ROOT/backend/.env.bak cp -f $PROJECT_ROOT/frontend/.env $PROJECT_ROOT/frontend/.env.bak cp -f $PROJECT_ROOT/admin/.env $PROJECT_ROOT/admin/.env.bak +cp -f $PROJECT_ROOT/federation/.env $PROJECT_ROOT/federation/.env.bak envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/database/.env.template > $PROJECT_ROOT/database/.env envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/backend/.env.template > $PROJECT_ROOT/backend/.env envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/frontend/.env.template > $PROJECT_ROOT/frontend/.env envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/admin/.env.template > $PROJECT_ROOT/admin/.env +envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/federation/.env.template > $PROJECT_ROOT/federation/.env # Install & build database echo 'Updating database' >> $UPDATE_HTML @@ -152,6 +167,19 @@ pm2 delete gradido-admin pm2 start --name gradido-admin "yarn --cwd $PROJECT_ROOT/admin start" -l $GRADIDO_LOG_PATH/pm2.admin.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save +# Install & build federation +echo 'Updating federation' >> $UPDATE_HTML +cd $PROJECT_ROOT/federation +# TODO maybe handle this differently? +unset NODE_ENV +yarn install +yarn build +# TODO maybe handle this differently? +export NODE_ENV=production +pm2 delete gradido-federation +pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' +pm2 save + # let nginx showing gradido echo 'Configuring nginx to serve gradido again' >> $UPDATE_HTML ln -s /etc/nginx/sites-available/gradido.conf /etc/nginx/sites-enabled/ From c9df716eb38bde05f60a9a2115ceb07e5fc85fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 22:42:18 +0100 Subject: [PATCH 02/45] add federation-module to deployment script --- deployment/bare_metal/start.sh | 39 +++++++++++++++++++++++----------- federation/src/config/index.ts | 2 +- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index ae98c7e87..8ec4cfc48 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -1,18 +1,25 @@ #!/bin/bash -echo "Before getopt" -for i -do - echo $i -done -args=`getopt b:p: $*` -set -- $args -echo "After getopt" -for i -do - echo "-->$i" +while [ "$#" -gt 0 ]; do + case "$1" in + -a) ARG_API="${2:-1_0}"; shift 2;; + -b) ARG_BRANCH="${2:-master}"; shift 2;; + + --api-version=*) ARG_API="${1#*=}"; shift 1;; + --branch=*) ARG_BRANCH="${1#*=}"; shift 1;; + --api-version|--branch) echo "$1 requires an argument" >&2; exit 1;; + + -*) echo "unknown option: $1" >&2; exit 1;; + *) handle_argument "$1"; shift 1;; + esac done +echo "==================================================" +echo "Arguments:" +echo " -api-version = $ARG_API" +echo " -branch = $ARG_BRANCH" +echo "==================================================" + # Find current directory & configure paths set -o allexport SCRIPT_PATH=$(realpath $0) @@ -76,7 +83,8 @@ echo 'Stopping all Gradido services' >> $UPDATE_HTML pm2 stop all # git -BRANCH=${1:-master} +# BRANCH=${1:-master} +BRANCH=$ARG_BRANCH echo "Starting with git pull - branch:$BRANCH" >> $UPDATE_HTML cd $PROJECT_ROOT # TODO: this overfetches alot, but ensures we can use start.sh with tags @@ -177,6 +185,13 @@ yarn build # TODO maybe handle this differently? export NODE_ENV=production pm2 delete gradido-federation +# set FEDERATION_PORT from ARG_API +port=${ARG_API//_/} +FEDERATION_PORT=$(($FEDERATION_PORT + $port)) +export FEDERATION_PORT +echo "====================================================" +echo " start federation listening on port=$FEDERATION_PORT +echo "====================================================" pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index c8a841315..82011a6bc 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -73,7 +73,7 @@ if ( const federation = { // FEDERATION_DHT_TOPIC: process.env.FEDERATION_DHT_TOPIC || null, // FEDERATION_DHT_SEED: process.env.FEDERATION_DHT_SEED || null, - FEDERATION_PORT: process.env.FEDERATION_PORT || 5010, + FEDERATION_PORT: process.env.FEDERATION_PORT || 5000, FEDERATION_API: process.env.FEDERATION_API || '1_0', FEDERATION_COMMUNITY_URL: process.env.FEDERATION_COMMUNITY_URL || null, } From 8ab39765420a14a0487cba153d49e460e07dff3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 22:57:10 +0100 Subject: [PATCH 03/45] pm2 delete handle case of error as optional --- deployment/bare_metal/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 8ec4cfc48..746701206 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -184,7 +184,7 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-federation +pm2 delete gradido-federation || : # set FEDERATION_PORT from ARG_API port=${ARG_API//_/} FEDERATION_PORT=$(($FEDERATION_PORT + $port)) From 3d7d3ffdeef4b7e3af7f2e4e5f9bd41b4dd763f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 23:03:29 +0100 Subject: [PATCH 04/45] next try for pm2 delete handling error --- deployment/bare_metal/start.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 746701206..a7ffbd036 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -184,7 +184,6 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-federation || : # set FEDERATION_PORT from ARG_API port=${ARG_API//_/} FEDERATION_PORT=$(($FEDERATION_PORT + $port)) @@ -192,7 +191,7 @@ export FEDERATION_PORT echo "====================================================" echo " start federation listening on port=$FEDERATION_PORT echo "====================================================" -pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' +pm2 delete gradido-federation || : && pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save # let nginx showing gradido From 3425e5998a84aa35c8e2b0848bf2e6f99bba6359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 23:16:07 +0100 Subject: [PATCH 05/45] change federation port settings --- deployment/bare_metal/.env.dist | 1 + deployment/bare_metal/start.sh | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/.env.dist b/deployment/bare_metal/.env.dist index 80c1b36a1..0e3f2d995 100644 --- a/deployment/bare_metal/.env.dist +++ b/deployment/bare_metal/.env.dist @@ -62,6 +62,7 @@ WEBHOOK_ELOPAGE_SECRET=secret # FEDERATION_DHT_TOPIC=GRADIDO_HUB # FEDERATION_DHT_SEED=64ebcb0e3ad547848fef4197c6e2332f FEDERATION_CONFIG_VERSION=v1.2023-01-09 +FEDERATION_PORT=5000 FEDERATION_API=1_0 # database diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index a7ffbd036..19d1d8852 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -184,14 +184,16 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production +pm2 delete gradido-federation # set FEDERATION_PORT from ARG_API port=${ARG_API//_/} +FEDERATION_PORT=${FEDERATION_PORT:-5000} FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo "====================================================" -echo " start federation listening on port=$FEDERATION_PORT +echo " start federation listening on port=$FEDERATION_PORT" echo "====================================================" -pm2 delete gradido-federation || : && pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' +pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save # let nginx showing gradido From cc4acd4378fe539106ac0810cebd05a4928ae0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 23:52:18 +0100 Subject: [PATCH 06/45] change commandline arg handling --- deployment/bare_metal/start.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 19d1d8852..2a2f7b4ea 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -1,9 +1,16 @@ #!/bin/bash +#================================================== +# Commandline Arguments: +# -a value short arg: api-version (default=1_0) +# -b value short arg: branch (default=master) +# --api-version=value arg: api-version (default=1_0) +# --branch=value arg: branch (default=master) +#================================================== while [ "$#" -gt 0 ]; do case "$1" in - -a) ARG_API="${2:-1_0}"; shift 2;; - -b) ARG_BRANCH="${2:-master}"; shift 2;; + -a) ARG_API="$2"; shift 2;; + -b) ARG_BRANCH="$2"; shift 2;; --api-version=*) ARG_API="${1#*=}"; shift 1;; --branch=*) ARG_BRANCH="${1#*=}"; shift 1;; @@ -13,7 +20,13 @@ while [ "$#" -gt 0 ]; do *) handle_argument "$1"; shift 1;; esac done - +if [ -z $ARG_API ]; then + ARG_API="1_0" +fi +if [ -z $ARG_BRANCH ]; then + ARG_BRANCH="master" +fi + echo "==================================================" echo "Arguments:" echo " -api-version = $ARG_API" From 28c4abc7e9bc2838bda73f26464f02ba9b88ad87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 00:54:57 +0100 Subject: [PATCH 07/45] start several federation moduls base on FEDERATION_COMMUNITY_APIS --- deployment/bare_metal/.env.dist | 7 ++-- deployment/bare_metal/start.sh | 69 +++++++++++---------------------- federation/src/config/index.ts | 4 +- federation/src/index.ts | 2 +- 4 files changed, 30 insertions(+), 52 deletions(-) diff --git a/deployment/bare_metal/.env.dist b/deployment/bare_metal/.env.dist index 7028966bf..0a4a2db4d 100644 --- a/deployment/bare_metal/.env.dist +++ b/deployment/bare_metal/.env.dist @@ -61,14 +61,13 @@ FEDERATION_DHT_CONFIG_VERSION=v2.2023-02-07 # if you set the value of FEDERATION_DHT_TOPIC, the DHT hyperswarm will start to announce and listen on an hash created from this topic # FEDERATION_DHT_TOPIC=GRADIDO_HUB # FEDERATION_DHT_SEED=64ebcb0e3ad547848fef4197c6e2332f - -FEDERATION_CONFIG_VERSION=v1.2023-01-09 -FEDERATION_PORT=5000 -FEDERATION_API=1_0 FEDERATION_COMMUNITY_URL=http://stage1.gradido.net # the api port is the baseport, which will be added with the api-version, e.g. 1_0 = 5010 FEDERATION_COMMUNITY_API_PORT=5000 +FEDERATION_CONFIG_VERSION=v1.2023-01-09 +FEDERATION_COMMUNITY_APIS=1_0,1_1,2_0 + # database DATABASE_CONFIG_VERSION=v1.2022-03-18 diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 39491d699..63c912b55 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -1,38 +1,5 @@ #!/bin/bash -#================================================== -# Commandline Arguments: -# -a value short arg: api-version (default=1_0) -# -b value short arg: branch (default=master) -# --api-version=value arg: api-version (default=1_0) -# --branch=value arg: branch (default=master) -#================================================== -while [ "$#" -gt 0 ]; do - case "$1" in - -a) ARG_API="$2"; shift 2;; - -b) ARG_BRANCH="$2"; shift 2;; - - --api-version=*) ARG_API="${1#*=}"; shift 1;; - --branch=*) ARG_BRANCH="${1#*=}"; shift 1;; - --api-version|--branch) echo "$1 requires an argument" >&2; exit 1;; - - -*) echo "unknown option: $1" >&2; exit 1;; - *) handle_argument "$1"; shift 1;; - esac -done -if [ -z $ARG_API ]; then - ARG_API="1_0" -fi -if [ -z $ARG_BRANCH ]; then - ARG_BRANCH="master" -fi - -echo "==================================================" -echo "Arguments:" -echo " -api-version = $ARG_API" -echo " -branch = $ARG_BRANCH" -echo "==================================================" - # Find current directory & configure paths set -o allexport SCRIPT_PATH=$(realpath $0) @@ -96,8 +63,7 @@ echo 'Stopping all Gradido services' >> $UPDATE_HTML pm2 stop all # git -# BRANCH=${1:-master} -BRANCH=$ARG_BRANCH +BRANCH=${1:-master} echo "Starting with git pull - branch:$BRANCH" >> $UPDATE_HTML cd $PROJECT_ROOT # TODO: this overfetches alot, but ensures we can use start.sh with tags @@ -219,17 +185,28 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-federation -# set FEDERATION_PORT from ARG_API -port=${ARG_API//_/} -FEDERATION_PORT=${FEDERATION_PORT:-5000} -FEDERATION_PORT=$(($FEDERATION_PORT + $port)) -export FEDERATION_PORT -echo "====================================================" -echo " start federation listening on port=$FEDERATION_PORT" -echo "====================================================" -pm2 start --name gradido-federation "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.federation.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' -pm2 save +# set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS +IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS +for api in "${API_ARRAY[@]}" +do + FEDERATION_API=$api + export FEDERATION_API + modulname=gradido-federation-$api + # calculate port by remove '_' and add value of api to baseport + port=${api//_/} + FEDERATION_PORT=${FEDERATION_COMMUNITY_API_PORT:-5000} + FEDERATION_PORT=$(($FEDERATION_PORT + $port)) + export FEDERATION_PORT + echo "====================================================" + echo " start $modulename listening on port=$FEDERATION_PORT" + echo "====================================================" + pm2 delete $modulename + pm2 start --name $modulename "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.$modulename.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' + pm2 save +done + + + # let nginx showing gradido echo 'Configuring nginx to serve gradido again' >> $UPDATE_HTML diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index 82011a6bc..de474f517 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -73,8 +73,10 @@ if ( const federation = { // FEDERATION_DHT_TOPIC: process.env.FEDERATION_DHT_TOPIC || null, // FEDERATION_DHT_SEED: process.env.FEDERATION_DHT_SEED || null, - FEDERATION_PORT: process.env.FEDERATION_PORT || 5000, + FEDERATION_COMMUNITY_API_PORT: + process.env.FEDERATION_COMMUNITY_API_PORT || 5000, FEDERATION_API: process.env.FEDERATION_API || '1_0', + FEDERATION_PORT: process.env.FEDERATION_PORT || 5010, FEDERATION_COMMUNITY_URL: process.env.FEDERATION_COMMUNITY_URL || null, } diff --git a/federation/src/index.ts b/federation/src/index.ts index 9096cb260..daf9bfa56 100644 --- a/federation/src/index.ts +++ b/federation/src/index.ts @@ -20,7 +20,7 @@ async function main() { if (CONFIG.GRAPHIQL) { // eslint-disable-next-line no-console console.log( - `GraphIQL available at http://localhost:${CONFIG.FEDERATION_PORT}` + `GraphIQL available at ${CONFIG.FEDERATION_COMMUNITY_URL}:${CONFIG.FEDERATION_PORT}/api` ) } }) From ed010a50f94102f985105c91c11bf220ba8aa9b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 01:08:02 +0100 Subject: [PATCH 08/45] =?UTF-8?q?correct=20modul-name=C3=ADng=20in=20loop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deployment/bare_metal/start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 63c912b55..1db9daf4a 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -189,9 +189,9 @@ export NODE_ENV=production IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" do - FEDERATION_API=$api + FEDERATION_API="$api" export FEDERATION_API - modulname=gradido-federation-$api + modulname="gradido-federation-$api" # calculate port by remove '_' and add value of api to baseport port=${api//_/} FEDERATION_PORT=${FEDERATION_COMMUNITY_API_PORT:-5000} From f570c8416857d47028ca85283d8827216d2043a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 01:17:37 +0100 Subject: [PATCH 09/45] next try to correct modulname in loop --- deployment/bare_metal/start.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 1db9daf4a..a86e1be3e 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -189,19 +189,20 @@ export NODE_ENV=production IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" do - FEDERATION_API="$api" - export FEDERATION_API - modulname="gradido-federation-$api" + export FEDERATION_API=$api + echo "FEDERATION_API=$FEDERATION_API" + export MODULENAME=gradido-federation-$api + echo "MODULENAME=$MODULENAME" # calculate port by remove '_' and add value of api to baseport port=${api//_/} FEDERATION_PORT=${FEDERATION_COMMUNITY_API_PORT:-5000} FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo "====================================================" - echo " start $modulename listening on port=$FEDERATION_PORT" + echo " start $MODULENAME listening on port=$FEDERATION_PORT" echo "====================================================" - pm2 delete $modulename - pm2 start --name $modulename "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.$modulename.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' + pm2 delete $MODULENAME + pm2 start --name $MODULENAME "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.$MODULENAME.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save done From 1394578a5c5df185ea9e852f9643f86d9b797333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 22:04:38 +0100 Subject: [PATCH 10/45] remove old/existing federation processes from pm2-list before start new ones --- deployment/bare_metal/.env.dist | 1 + deployment/bare_metal/start.sh | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/deployment/bare_metal/.env.dist b/deployment/bare_metal/.env.dist index 0a4a2db4d..12297e357 100644 --- a/deployment/bare_metal/.env.dist +++ b/deployment/bare_metal/.env.dist @@ -66,6 +66,7 @@ FEDERATION_COMMUNITY_URL=http://stage1.gradido.net FEDERATION_COMMUNITY_API_PORT=5000 FEDERATION_CONFIG_VERSION=v1.2023-01-09 +# comma separated list of api-versions, which cause starting several federation moduls FEDERATION_COMMUNITY_APIS=1_0,1_1,2_0 # database diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index a86e1be3e..d30bfeb8e 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -185,6 +185,15 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production +# first remove previous pm2 gradido-federation processes from list +IFS="+--- " read -a PROCESS_ARRAY <<< pm2 ls -m | grep "+--- gradido-federation" +for proc in "${PROCESS_ARRAY[@]}" +do + echo "delete process $proc" + pm2 delete $proc +done +pm2 save + # set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" From 6309c1f8835da5271d60b02d19385f2b3f82dcea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 22:43:58 +0100 Subject: [PATCH 11/45] next try to remove federation-processes from pm2 before start api-version ones --- deployment/bare_metal/start.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index d30bfeb8e..83115916e 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -186,10 +186,12 @@ yarn build # TODO maybe handle this differently? export NODE_ENV=production # first remove previous pm2 gradido-federation processes from list -IFS="+--- " read -a PROCESS_ARRAY <<< pm2 ls -m | grep "+--- gradido-federation" +pm2 ls -m | grep "+--- gradido-federation" | tr '\n' ',' > proc.list +sed -i 's/+--- //g' < proc.list +IFS="\n" read -a PROCESS_ARRAY < proc.list for proc in "${PROCESS_ARRAY[@]}" do - echo "delete process $proc" + echo "---> delete process $proc" pm2 delete $proc done pm2 save From ebc66a0a50b7d108039ea3200574be072246d55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 23:07:40 +0100 Subject: [PATCH 12/45] next try to remove processes --- deployment/bare_metal/start.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 83115916e..c1e095fe3 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -186,9 +186,8 @@ yarn build # TODO maybe handle this differently? export NODE_ENV=production # first remove previous pm2 gradido-federation processes from list -pm2 ls -m | grep "+--- gradido-federation" | tr '\n' ',' > proc.list -sed -i 's/+--- //g' < proc.list -IFS="\n" read -a PROCESS_ARRAY < proc.list +pm2 ls -m | grep "+--- gradido-federation" | tr '\n' ',' | sed -e 's/+---//g' > proc.list +IFS="," read -a PROCESS_ARRAY < proc.list for proc in "${PROCESS_ARRAY[@]}" do echo "---> delete process $proc" From fb8c3874c30e5d2f66707b40640360fdb762ec0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 23:08:20 +0100 Subject: [PATCH 13/45] remove tmp file --- deployment/bare_metal/start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index c1e095fe3..6ee7d4618 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -194,6 +194,7 @@ do pm2 delete $proc done pm2 save +rm proc.list # set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS From 17ef143ea8d29ff4b21861ea06fa962b76a83833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 24 Feb 2023 23:10:13 +0100 Subject: [PATCH 14/45] additional echo outs --- deployment/bare_metal/start.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 6ee7d4618..dd183dd5b 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -195,6 +195,8 @@ do done pm2 save rm proc.list +echo "finished removeing previous gradido-federation processes from pm2" +echo # set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS From 8297aa2c39821e0426a5bd11b0ba46e5b77992cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Mon, 27 Feb 2023 21:06:45 +0100 Subject: [PATCH 15/45] add federation modules to nginx --- .../sites-available/gradido.conf.ssl.template | 66 ++++++++++++++++--- .../sites-available/gradido.conf.template | 66 ++++++++++++++++--- 2 files changed, 112 insertions(+), 20 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index aade0429b..183d92153 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -42,19 +42,19 @@ server { # Frontend (default) location / { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:3000; - proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:3000; + proxy_redirect off; access_log $GRADIDO_LOG_PATH/nginx-access.frontend.log gradido_log; error_log $GRADIDO_LOG_PATH/nginx-error.frontend.log warn; - } + } # Backend location /graphql { @@ -112,6 +112,52 @@ server { error_log $GRADIDO_LOG_PATH/nginx-error.admin.log warn; } + # Federation + location /federation-5010 { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:5010; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-5010.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-5010.log warn; + } + + location /federation-5011 { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:5011; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-5011.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-5011.log warn; + } + + location /federation-5020 { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:5020; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-5020.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-5020.log warn; + } + # TODO this could be a performance optimization #location /vue { # alias /var/www/html/gradido/frontend/dist; diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index b4c7b3463..899809a39 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -27,19 +27,19 @@ server { # Frontend (default) location / { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:3000; - proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:3000; + proxy_redirect off; access_log $GRADIDO_LOG_PATH/nginx-access.frontend.log gradido_log; error_log $GRADIDO_LOG_PATH/nginx-error.frontend.log warn; - } + } # Backend location /graphql { @@ -98,6 +98,52 @@ server { error_log $GRADIDO_LOG_PATH/nginx-error.admin.log warn; } + # Federation + location /federation-5010 { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:5010; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-5010.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-5010.log warn; + } + + location /federation-5011 { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:5011; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-5011.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-5011.log warn; + } + + location /federation-5020 { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:5020; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-5020.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-5020.log warn; + } + # TODO this could be a performance optimization #location /vue { # alias /var/www/html/gradido/frontend/dist; From 695dafbf5a362f01496e5a4dd339bd5135aa3cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 28 Feb 2023 15:56:23 +0100 Subject: [PATCH 16/45] correct nginx locations --- .../nginx/sites-available/gradido.conf.ssl.template | 6 +++--- .../bare_metal/nginx/sites-available/gradido.conf.template | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index 183d92153..baad82135 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -113,7 +113,7 @@ server { } # Federation - location /federation-5010 { + location /api/1_0 { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; @@ -128,7 +128,7 @@ server { error_log $GRADIDO_LOG_PATH/nginx-error.federation-5010.log warn; } - location /federation-5011 { + location /api/1_1 { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; @@ -143,7 +143,7 @@ server { error_log $GRADIDO_LOG_PATH/nginx-error.federation-5011.log warn; } - location /federation-5020 { + location /api/2_0 { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index 899809a39..5dc41b01c 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -99,7 +99,7 @@ server { } # Federation - location /federation-5010 { + location /api/1_0 { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; @@ -114,7 +114,7 @@ server { error_log $GRADIDO_LOG_PATH/nginx-error.federation-5010.log warn; } - location /federation-5011 { + location /api/1_1 { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; @@ -129,7 +129,7 @@ server { error_log $GRADIDO_LOG_PATH/nginx-error.federation-5011.log warn; } - location /federation-5020 { + location /api/2_0 { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; From b333bb0b0604a59b75aa80c6ef24d3199d32944e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 28 Feb 2023 22:59:07 +0100 Subject: [PATCH 17/45] modify nginx config for federation modules --- .../gradido-federation.conf.template | 14 ++++ .../sites-available/gradido.conf.template | 45 +------------ deployment/bare_metal/start.sh | 65 +++++++++++++------ 3 files changed, 61 insertions(+), 63 deletions(-) create mode 100644 deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template diff --git a/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template b/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template new file mode 100644 index 000000000..2696a6b7d --- /dev/null +++ b/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template @@ -0,0 +1,14 @@ + location /api/$FEDERATION_APIVERSION { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:$FEDERATION_PORT; + proxy_redirect off; + + access_log $GRADIDO_LOG_PATH/nginx-access.federation-$FEDERATION_PORT.log gradido_log; + error_log $GRADIDO_LOG_PATH/nginx-error.federation-$FEDERATION_PORT.log warn; + } diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index 5dc41b01c..f0cfb17b5 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -99,50 +99,7 @@ server { } # Federation - location /api/1_0 { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:5010; - proxy_redirect off; - - access_log $GRADIDO_LOG_PATH/nginx-access.federation-5010.log gradido_log; - error_log $GRADIDO_LOG_PATH/nginx-error.federation-5010.log warn; - } - - location /api/1_1 { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:5011; - proxy_redirect off; - - access_log $GRADIDO_LOG_PATH/nginx-access.federation-5011.log gradido_log; - error_log $GRADIDO_LOG_PATH/nginx-error.federation-5011.log warn; - } - - location /api/2_0 { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:5020; - proxy_redirect off; - - access_log $GRADIDO_LOG_PATH/nginx-access.federation-5020.log gradido_log; - error_log $GRADIDO_LOG_PATH/nginx-error.federation-5020.log warn; - } + $FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index dd183dd5b..a4b990527 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -59,8 +59,8 @@ ln -s /etc/nginx/sites-available/update-page.conf /etc/nginx/sites-enabled/ sudo /etc/init.d/nginx restart # stop all services -echo 'Stopping all Gradido services' >> $UPDATE_HTML -pm2 stop all +echo 'Stopping and Delete all Gradido services' >> $UPDATE_HTML +pm2 delete all # git BRANCH=${1:-master} @@ -73,6 +73,29 @@ git pull export BUILD_COMMIT="$(git rev-parse HEAD)" # Generate gradido.conf from template +# *** 1st prepare for each apiversion the federation conf for nginx from federation-template +# *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file +echo "================================================================================================" +IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS +for api in "${API_ARRAY[@]}" +do + export FEDERATION_APIVERSION=$api + # calculate port by remove '_' and add value of api to baseport + port=${api//_/} + FEDERATION_PORT=${FEDERATION_COMMUNITY_API_PORT:-5000} + FEDERATION_PORT=$(($FEDERATION_PORT + $port)) + export FEDERATION_PORT + echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" + envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf +done +echo "================================================================================================" + +# *** 2nd read gradido-federation.conf file in env variable +FEDERATION_NGINX_CONF < $NGINX_CONFIG_DIR/gradido-federation.conf +export FEDERATION_NGINX_CONF +echo "FEDERATION_NGINX_CONF=$FEDERATION_NGINX_CONF" + +# *** 3rd generate gradido nginx config including federation modules per api-version echo 'Generate new gradido nginx config' >> $UPDATE_HTML case "$NGINX_SSL" in true) TEMPLATE_FILE="gradido.conf.ssl.template" ;; @@ -80,6 +103,10 @@ case "$NGINX_SSL" in esac envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf +# release lock +rm $LOCK_FILE +exit 1 + # Generate update-page.conf from template echo 'Generate new update-page nginx config' >> $UPDATE_HTML case "$NGINX_SSL" in @@ -126,7 +153,7 @@ if [ "$DEPLOY_SEED_DATA" = "true" ]; then fi # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-backend +# pm2 delete gradido-backend pm2 start --name gradido-backend "yarn --cwd $PROJECT_ROOT/backend start" -l $GRADIDO_LOG_PATH/pm2.backend.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save @@ -139,7 +166,7 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-frontend +# pm2 delete gradido-frontend pm2 start --name gradido-frontend "yarn --cwd $PROJECT_ROOT/frontend start" -l $GRADIDO_LOG_PATH/pm2.frontend.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save @@ -152,7 +179,7 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-admin +# pm2 delete gradido-admin pm2 start --name gradido-admin "yarn --cwd $PROJECT_ROOT/admin start" -l $GRADIDO_LOG_PATH/pm2.admin.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save @@ -165,7 +192,7 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -pm2 delete gradido-dht-node +# pm2 delete gradido-dht-node if [ ! -z $FEDERATION_DHT_TOPIC ]; then pm2 start --name gradido-dht-node "yarn --cwd $PROJECT_ROOT/dht-node start" -l $GRADIDO_LOG_PATH/pm2.dht-node.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save @@ -185,18 +212,18 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -# first remove previous pm2 gradido-federation processes from list -pm2 ls -m | grep "+--- gradido-federation" | tr '\n' ',' | sed -e 's/+---//g' > proc.list -IFS="," read -a PROCESS_ARRAY < proc.list -for proc in "${PROCESS_ARRAY[@]}" -do - echo "---> delete process $proc" - pm2 delete $proc -done -pm2 save -rm proc.list -echo "finished removeing previous gradido-federation processes from pm2" -echo +# # first remove previous pm2 gradido-federation processes from list +# pm2 ls -m | grep "+--- gradido-federation" | tr '\n' ',' | sed -e 's/+---//g' > proc.list +# IFS="," read -a PROCESS_ARRAY < proc.list +# for proc in "${PROCESS_ARRAY[@]}" +# do +# echo "---> delete process $proc" +# pm2 delete $proc +# done +# pm2 save +# rm proc.list +# echo "finished removeing previous gradido-federation processes from pm2" +# echo # set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS @@ -214,7 +241,7 @@ do echo "====================================================" echo " start $MODULENAME listening on port=$FEDERATION_PORT" echo "====================================================" - pm2 delete $MODULENAME +# pm2 delete $MODULENAME pm2 start --name $MODULENAME "yarn --cwd $PROJECT_ROOT/federation start" -l $GRADIDO_LOG_PATH/pm2.$MODULENAME.$TODAY.log --log-date-format 'YYYY-MM-DD HH:mm:ss.SSS' pm2 save done From 757053b7351cda90bec94082adb4117155b6da8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 28 Feb 2023 23:07:16 +0100 Subject: [PATCH 18/45] modify nginx config for federation modules --- .../nginx/sites-available/gradido-federation.conf.template | 1 + deployment/bare_metal/start.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template b/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template index 2696a6b7d..2192b7dbb 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido-federation.conf.template @@ -1,3 +1,4 @@ + location /api/$FEDERATION_APIVERSION { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index a4b990527..e2d3ce8cf 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -75,6 +75,7 @@ export BUILD_COMMIT="$(git rev-parse HEAD)" # Generate gradido.conf from template # *** 1st prepare for each apiversion the federation conf for nginx from federation-template # *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file +rm $NGINX_CONFIG_DIR/gradido-federation.conf echo "================================================================================================" IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" @@ -91,8 +92,7 @@ done echo "================================================================================================" # *** 2nd read gradido-federation.conf file in env variable -FEDERATION_NGINX_CONF < $NGINX_CONFIG_DIR/gradido-federation.conf -export FEDERATION_NGINX_CONF +export FEDERATION_NGINX_CONF < $NGINX_CONFIG_DIR/gradido-federation.conf echo "FEDERATION_NGINX_CONF=$FEDERATION_NGINX_CONF" # *** 3rd generate gradido nginx config including federation modules per api-version From c14eec061a300014e43e600ba4d71ee021f01fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 28 Feb 2023 23:19:20 +0100 Subject: [PATCH 19/45] modify nginx config for federation modules --- deployment/bare_metal/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index e2d3ce8cf..9592b219e 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -92,7 +92,7 @@ done echo "================================================================================================" # *** 2nd read gradido-federation.conf file in env variable -export FEDERATION_NGINX_CONF < $NGINX_CONFIG_DIR/gradido-federation.conf +export FEDERATION_NGINX_CONFr=$(< $NGINX_CONFIG_DIR/gradido-federation.conf) echo "FEDERATION_NGINX_CONF=$FEDERATION_NGINX_CONF" # *** 3rd generate gradido nginx config including federation modules per api-version From fc08dcd896bd25cbdb13aabc3aa1d6bc8ccfc14d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 28 Feb 2023 23:20:54 +0100 Subject: [PATCH 20/45] modify nginx config for federation modules --- deployment/bare_metal/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 9592b219e..0be61175e 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -92,7 +92,7 @@ done echo "================================================================================================" # *** 2nd read gradido-federation.conf file in env variable -export FEDERATION_NGINX_CONFr=$(< $NGINX_CONFIG_DIR/gradido-federation.conf) +export FEDERATION_NGINX_CONF=$(< $NGINX_CONFIG_DIR/gradido-federation.conf) echo "FEDERATION_NGINX_CONF=$FEDERATION_NGINX_CONF" # *** 3rd generate gradido nginx config including federation modules per api-version From b7ac341a0d8121ef28daa20963243e3d15033c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 28 Feb 2023 23:27:21 +0100 Subject: [PATCH 21/45] modify nginx config for federation modules --- .../sites-available/gradido.conf.ssl.template | 45 +------------------ deployment/bare_metal/start.sh | 14 +++--- 2 files changed, 6 insertions(+), 53 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index baad82135..18769e69e 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -113,50 +113,7 @@ server { } # Federation - location /api/1_0 { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:5010; - proxy_redirect off; - - access_log $GRADIDO_LOG_PATH/nginx-access.federation-5010.log gradido_log; - error_log $GRADIDO_LOG_PATH/nginx-error.federation-5010.log warn; - } - - location /api/1_1 { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:5011; - proxy_redirect off; - - access_log $GRADIDO_LOG_PATH/nginx-access.federation-5011.log gradido_log; - error_log $GRADIDO_LOG_PATH/nginx-error.federation-5011.log warn; - } - - location /api/2_0 { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:5020; - proxy_redirect off; - - access_log $GRADIDO_LOG_PATH/nginx-access.federation-5020.log gradido_log; - error_log $GRADIDO_LOG_PATH/nginx-error.federation-5020.log warn; - } + $FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 0be61175e..374cfeacc 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -76,7 +76,7 @@ export BUILD_COMMIT="$(git rev-parse HEAD)" # *** 1st prepare for each apiversion the federation conf for nginx from federation-template # *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file rm $NGINX_CONFIG_DIR/gradido-federation.conf -echo "================================================================================================" +echo "====================================================================================================" IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" do @@ -86,14 +86,13 @@ do FEDERATION_PORT=${FEDERATION_COMMUNITY_API_PORT:-5000} FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT - echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" + echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done -echo "================================================================================================" +echo "====================================================================================================" -# *** 2nd read gradido-federation.conf file in env variable +# *** 2nd read gradido-federation.conf file in env variable to be replaced in 3rd step export FEDERATION_NGINX_CONF=$(< $NGINX_CONFIG_DIR/gradido-federation.conf) -echo "FEDERATION_NGINX_CONF=$FEDERATION_NGINX_CONF" # *** 3rd generate gradido nginx config including federation modules per api-version echo 'Generate new gradido nginx config' >> $UPDATE_HTML @@ -102,10 +101,7 @@ case "$NGINX_SSL" in *) TEMPLATE_FILE="gradido.conf.template" ;; esac envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf - -# release lock -rm $LOCK_FILE -exit 1 +rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template echo 'Generate new update-page nginx config' >> $UPDATE_HTML From bf099845a1a74085da76f6dbc5e4d08970061bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 00:33:10 +0100 Subject: [PATCH 22/45] beautify configs --- .../sites-available/gradido.conf.ssl.template | 18 +++++++++--------- .../sites-available/gradido.conf.template | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index 18769e69e..ddb0724b0 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -42,15 +42,15 @@ server { # Frontend (default) location / { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:3000; - proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:3000; + proxy_redirect off; access_log $GRADIDO_LOG_PATH/nginx-access.frontend.log gradido_log; error_log $GRADIDO_LOG_PATH/nginx-error.frontend.log warn; diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index f0cfb17b5..42a5a1851 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -27,15 +27,15 @@ server { # Frontend (default) location / { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - - proxy_pass http://127.0.0.1:3000; - proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://127.0.0.1:3000; + proxy_redirect off; access_log $GRADIDO_LOG_PATH/nginx-access.frontend.log gradido_log; error_log $GRADIDO_LOG_PATH/nginx-error.frontend.log warn; From e80c170c32dc43aa24f955c3c6c6be95ac404a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 00:33:42 +0100 Subject: [PATCH 23/45] change logoutput --- federation/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/federation/src/index.ts b/federation/src/index.ts index daf9bfa56..71c7545aa 100644 --- a/federation/src/index.ts +++ b/federation/src/index.ts @@ -20,7 +20,7 @@ async function main() { if (CONFIG.GRAPHIQL) { // eslint-disable-next-line no-console console.log( - `GraphIQL available at ${CONFIG.FEDERATION_COMMUNITY_URL}:${CONFIG.FEDERATION_PORT}/api` + `GraphIQL available at ${CONFIG.FEDERATION_COMMUNITY_URL}/api/${CONFIG.FEDERATION_API}` ) } }) From 6ea9cc39a9bf1079756ae6ae4e71e2f44600f4de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 00:34:44 +0100 Subject: [PATCH 24/45] small changes --- deployment/bare_metal/start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 374cfeacc..0ede8cbff 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -61,6 +61,7 @@ sudo /etc/init.d/nginx restart # stop all services echo 'Stopping and Delete all Gradido services' >> $UPDATE_HTML pm2 delete all +pm2 save # git BRANCH=${1:-master} @@ -75,7 +76,7 @@ export BUILD_COMMIT="$(git rev-parse HEAD)" # Generate gradido.conf from template # *** 1st prepare for each apiversion the federation conf for nginx from federation-template # *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file -rm $NGINX_CONFIG_DIR/gradido-federation.conf +rm -f $NGINX_CONFIG_DIR/gradido-federation.conf echo "====================================================================================================" IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" From c7c4f52816824be2dfa89cbd3afa8b416cbd69d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 00:42:49 +0100 Subject: [PATCH 25/45] correct migration downgrade by delete communities entries with last_announced_at is null --- database/migrations/0060-update_communities_table.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/database/migrations/0060-update_communities_table.ts b/database/migrations/0060-update_communities_table.ts index 79180e587..d7ab7c8b3 100644 --- a/database/migrations/0060-update_communities_table.ts +++ b/database/migrations/0060-update_communities_table.ts @@ -23,6 +23,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write downgrade logic as parameter of queryFn + await queryFn('DELETE * FROM TABLE `communities` WHERE `last_announced_at` IS NULL`;') await queryFn( 'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) NOT NULL AFTER `end_point`;', ) From 876bc91d9307cb1f8381530f29c77ef1f9a58589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 00:46:58 +0100 Subject: [PATCH 26/45] correct migration downgrade by delete communities entries with last_announced_at is null --- database/migrations/0060-update_communities_table.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/0060-update_communities_table.ts b/database/migrations/0060-update_communities_table.ts index d7ab7c8b3..33c143262 100644 --- a/database/migrations/0060-update_communities_table.ts +++ b/database/migrations/0060-update_communities_table.ts @@ -23,7 +23,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write downgrade logic as parameter of queryFn - await queryFn('DELETE * FROM TABLE `communities` WHERE `last_announced_at` IS NULL`;') + await queryFn('DELETE FROM TABLE `communities` WHERE `last_announced_at` IS NULL`;') await queryFn( 'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) NOT NULL AFTER `end_point`;', ) From aaf4c9748c4bf25efa50ba10af402b33b9146498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 00:57:52 +0100 Subject: [PATCH 27/45] correct migration downgrade by delete communities entries with last_announced_at is null --- database/migrations/0060-update_communities_table.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/0060-update_communities_table.ts b/database/migrations/0060-update_communities_table.ts index 33c143262..c1268850a 100644 --- a/database/migrations/0060-update_communities_table.ts +++ b/database/migrations/0060-update_communities_table.ts @@ -23,7 +23,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write downgrade logic as parameter of queryFn - await queryFn('DELETE FROM TABLE `communities` WHERE `last_announced_at` IS NULL`;') + await queryFn('DELETE FROM `communities` WHERE `last_announced_at` IS NULL;') await queryFn( 'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) NOT NULL AFTER `end_point`;', ) From b1a6fcdb42456a918aaa354a4cbe247c158d83da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 01:23:28 +0100 Subject: [PATCH 28/45] adapt federation config files --- federation/.env.dist | 21 +++++++++++++++++++++ federation/.env.template | 16 ++++++++++++++++ federation/src/config/index.ts | 4 ++-- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 federation/.env.dist create mode 100644 federation/.env.template diff --git a/federation/.env.dist b/federation/.env.dist new file mode 100644 index 000000000..a1330546c --- /dev/null +++ b/federation/.env.dist @@ -0,0 +1,21 @@ +LOG_LEVEL=debug +PORT=4000 +GRAPHIQL=true +// LOGIN_API_URL=http://login-server:1201/ +// COMMUNITY_API_URL=http://nginx/api/ +// GDT_API_URL=https://gdt.gradido.net/ + +# Database +# Database +DB_PORT=3306 +DB_DATABASE=gradido_community + + +COMMUNITY_NAME=Gradido Entwicklung +COMMUNITY_URL=http://localhost:4000/ +COMMUNITY_DESCRIPTION=lokale Entwicklungsumgebung + +# Federation +FEDERATION_API=1_0 +FEDERATION_PORT=5010 +FEDERATION_COMMUNITY_URL=http://localhost diff --git a/federation/.env.template b/federation/.env.template new file mode 100644 index 000000000..74f4cb75b --- /dev/null +++ b/federation/.env.template @@ -0,0 +1,16 @@ +LOG_LEVEL=$LOG_LEVEL +PORT=$PORT +GRAPHIQL=$GRAPHIQL + +# Database +DB_PORT=$DB_PORT +DB_DATABASE=$DB_DATABASE + +COMMUNITY_NAME=$COMMUNITY_NAME +COMMUNITY_URL=$COMMUNITY_URL +COMMUNITY_DESCRIPTION=$COMMUNITY_DESCRIPTION + +# Federation +FEDERATION_API=$FEDERATION_API +FEDERATION_PORT=$FEDERATION_PORT +FEDERATION_COMMUNITY_URL=$FEDERATION_COMMUNITY_URL diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index de474f517..dc2e77928 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -73,8 +73,8 @@ if ( const federation = { // FEDERATION_DHT_TOPIC: process.env.FEDERATION_DHT_TOPIC || null, // FEDERATION_DHT_SEED: process.env.FEDERATION_DHT_SEED || null, - FEDERATION_COMMUNITY_API_PORT: - process.env.FEDERATION_COMMUNITY_API_PORT || 5000, + // FEDERATION_COMMUNITY_API_PORT: + // process.env.FEDERATION_COMMUNITY_API_PORT || 5000, FEDERATION_API: process.env.FEDERATION_API || '1_0', FEDERATION_PORT: process.env.FEDERATION_PORT || 5010, FEDERATION_COMMUNITY_URL: process.env.FEDERATION_COMMUNITY_URL || null, From 7f12bf759d230d7e90b3f27bebb66cb1d1d1169c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 01:52:44 +0100 Subject: [PATCH 29/45] change dir before nginx restart --- deployment/bare_metal/start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 0ede8cbff..ca3de32e1 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -247,6 +247,7 @@ done # let nginx showing gradido +cd $SCRIPT_DIR echo 'Configuring nginx to serve gradido again' >> $UPDATE_HTML ln -s /etc/nginx/sites-available/gradido.conf /etc/nginx/sites-enabled/ rm /etc/nginx/sites-enabled/update-page.conf From 1e960cbd83c9b91d3196881ba8e731dc6ddd4a3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 02:13:26 +0100 Subject: [PATCH 30/45] correct gradido-federation.conf replacements --- deployment/bare_metal/start.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index ca3de32e1..e6b7c8689 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -88,11 +88,12 @@ do FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" - envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf + envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf.append done echo "====================================================================================================" # *** 2nd read gradido-federation.conf file in env variable to be replaced in 3rd step +envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.append > $NGINX_CONFIG_DIR/gradido-federation.conf export FEDERATION_NGINX_CONF=$(< $NGINX_CONFIG_DIR/gradido-federation.conf) # *** 3rd generate gradido nginx config including federation modules per api-version @@ -102,6 +103,7 @@ case "$NGINX_SSL" in *) TEMPLATE_FILE="gradido.conf.template" ;; esac envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf +rm $NGINX_CONFIG_DIR/gradido-federation.conf.append rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template From 25634a9cfa80d3778fdc626d03c34e6bf8df6319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 02:19:20 +0100 Subject: [PATCH 31/45] keep gradido-federation.conf files --- deployment/bare_metal/start.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index e6b7c8689..44db1815c 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -77,6 +77,7 @@ export BUILD_COMMIT="$(git rev-parse HEAD)" # *** 1st prepare for each apiversion the federation conf for nginx from federation-template # *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file rm -f $NGINX_CONFIG_DIR/gradido-federation.conf +rm -f $NGINX_CONFIG_DIR/gradido-federation.conf.append echo "====================================================================================================" IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" @@ -103,8 +104,8 @@ case "$NGINX_SSL" in *) TEMPLATE_FILE="gradido.conf.template" ;; esac envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf -rm $NGINX_CONFIG_DIR/gradido-federation.conf.append -rm $NGINX_CONFIG_DIR/gradido-federation.conf +# rm $NGINX_CONFIG_DIR/gradido-federation.conf.append +# rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template echo 'Generate new update-page nginx config' >> $UPDATE_HTML From 192d0520899a86a59964fe5e1e28117fdf5a43fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 02:27:19 +0100 Subject: [PATCH 32/45] include gradido-federation.conf --- .../nginx/sites-available/gradido.conf.ssl.template | 2 +- .../bare_metal/nginx/sites-available/gradido.conf.template | 2 +- deployment/bare_metal/start.sh | 5 +---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index ddb0724b0..2790c90cf 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -113,7 +113,7 @@ server { } # Federation - $FEDERATION_NGINX_CONF + include ./gradido-federation.conf # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index 42a5a1851..378f9eee9 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -99,7 +99,7 @@ server { } # Federation - $FEDERATION_NGINX_CONF + include ./gradido-federation.conf # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 44db1815c..609fdce0b 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -77,7 +77,6 @@ export BUILD_COMMIT="$(git rev-parse HEAD)" # *** 1st prepare for each apiversion the federation conf for nginx from federation-template # *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file rm -f $NGINX_CONFIG_DIR/gradido-federation.conf -rm -f $NGINX_CONFIG_DIR/gradido-federation.conf.append echo "====================================================================================================" IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" @@ -89,12 +88,11 @@ do FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" - envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf.append + envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done echo "====================================================================================================" # *** 2nd read gradido-federation.conf file in env variable to be replaced in 3rd step -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.append > $NGINX_CONFIG_DIR/gradido-federation.conf export FEDERATION_NGINX_CONF=$(< $NGINX_CONFIG_DIR/gradido-federation.conf) # *** 3rd generate gradido nginx config including federation modules per api-version @@ -104,7 +102,6 @@ case "$NGINX_SSL" in *) TEMPLATE_FILE="gradido.conf.template" ;; esac envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf -# rm $NGINX_CONFIG_DIR/gradido-federation.conf.append # rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template From 90887b1abe751bd8d3dc1ad1557da9d994a4b2d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 02:33:11 +0100 Subject: [PATCH 33/45] define .env-files --- federation/{.env.template => .env.dist.template} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename federation/{.env.template => .env.dist.template} (100%) diff --git a/federation/.env.template b/federation/.env.dist.template similarity index 100% rename from federation/.env.template rename to federation/.env.dist.template From 780ece56c5155350d7226015d497a3ca97c8b7f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 02:36:04 +0100 Subject: [PATCH 34/45] change include back to EnvVar-Replacement --- .../bare_metal/nginx/sites-available/gradido.conf.ssl.template | 2 +- .../bare_metal/nginx/sites-available/gradido.conf.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index 2790c90cf..ddb0724b0 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -113,7 +113,7 @@ server { } # Federation - include ./gradido-federation.conf + $FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index 378f9eee9..42a5a1851 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -99,7 +99,7 @@ server { } # Federation - include ./gradido-federation.conf + $FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { From 0ee62ef6446e337ceb847547db048d5fd745a537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 02:40:22 +0100 Subject: [PATCH 35/45] additional replacement step --- deployment/bare_metal/start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 609fdce0b..25cbb59fd 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -101,7 +101,8 @@ case "$NGINX_SSL" in true) TEMPLATE_FILE="gradido.conf.ssl.template" ;; *) TEMPLATE_FILE="gradido.conf.template" ;; esac -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf +envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf # rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template From 211c8f07c05a6ff379c74c5a3ba7bed90ccb4741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 22:42:14 +0100 Subject: [PATCH 36/45] change replacement logic to insert federation locations --- .../bare_metal/nginx/sites-available/gradido.conf.ssl.template | 2 +- .../bare_metal/nginx/sites-available/gradido.conf.template | 2 +- deployment/bare_metal/start.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index ddb0724b0..73b894faf 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -113,7 +113,7 @@ server { } # Federation - $FEDERATION_NGINX_CONF + FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index 42a5a1851..ae43dc94f 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -99,7 +99,7 @@ server { } # Federation - $FEDERATION_NGINX_CONF + FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 25cbb59fd..d3d87b8d5 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -101,7 +101,7 @@ case "$NGINX_SSL" in true) TEMPLATE_FILE="gradido.conf.ssl.template" ;; *) TEMPLATE_FILE="gradido.conf.template" ;; esac -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +envsubst "$(env | sed -e 's/FEDERATION_NGINX_CONF/\$FEDERATION_NGINX_CONF/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf # rm $NGINX_CONFIG_DIR/gradido-federation.conf From af5cf0f5856b050e7d1d68b5734aa5a50fa22e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 1 Mar 2023 23:41:34 +0100 Subject: [PATCH 37/45] next try of replacement logic for federation locations --- .../nginx/sites-available/gradido.conf.ssl.template | 2 +- .../bare_metal/nginx/sites-available/gradido.conf.template | 2 +- deployment/bare_metal/start.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template index 73b894faf..ddb0724b0 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.ssl.template @@ -113,7 +113,7 @@ server { } # Federation - FEDERATION_NGINX_CONF + $FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/nginx/sites-available/gradido.conf.template b/deployment/bare_metal/nginx/sites-available/gradido.conf.template index ae43dc94f..42a5a1851 100644 --- a/deployment/bare_metal/nginx/sites-available/gradido.conf.template +++ b/deployment/bare_metal/nginx/sites-available/gradido.conf.template @@ -99,7 +99,7 @@ server { } # Federation - FEDERATION_NGINX_CONF + $FEDERATION_NGINX_CONF # TODO this could be a performance optimization #location /vue { diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index d3d87b8d5..8cccb856a 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -88,7 +88,7 @@ do FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" - envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf + envsubst "$(env | sed -e 's/\$FEDERATION_APIVERSION\|\$FEDERATION_PORT//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done echo "====================================================================================================" @@ -101,7 +101,7 @@ case "$NGINX_SSL" in true) TEMPLATE_FILE="gradido.conf.ssl.template" ;; *) TEMPLATE_FILE="gradido.conf.template" ;; esac -envsubst "$(env | sed -e 's/FEDERATION_NGINX_CONF/\$FEDERATION_NGINX_CONF/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +envsubst "$(env | sed -e 's/\$FEDERATION_NGINX_CONF//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf # rm $NGINX_CONFIG_DIR/gradido-federation.conf From 1a2bfb487e0876670a2dc2e54df8bb026ffc6334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 00:22:35 +0100 Subject: [PATCH 38/45] replace logic simply now with envsubst --- deployment/bare_metal/start.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 8cccb856a..afa13445b 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -88,7 +88,7 @@ do FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" - envsubst "$(env | sed -e 's/\$FEDERATION_APIVERSION\|\$FEDERATION_PORT//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf + envsubst '$FEDERATION_APIVERSION, $FEDERATION_PORT' < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done echo "====================================================================================================" @@ -101,8 +101,9 @@ case "$NGINX_SSL" in true) TEMPLATE_FILE="gradido.conf.ssl.template" ;; *) TEMPLATE_FILE="gradido.conf.template" ;; esac -envsubst "$(env | sed -e 's/\$FEDERATION_NGINX_CONF//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +envsubst "$FEDERATION_NGINX_CONF" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf +# rm $NGINX_CONFIG_DIR/gradido.conf.tmp # rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template From e6b35e08849723652e6a085d99218f78dbac5e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 00:36:03 +0100 Subject: [PATCH 39/45] echo the current env before envsubst --- deployment/bare_metal/start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index afa13445b..a2dca6608 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -88,7 +88,7 @@ do FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" - envsubst '$FEDERATION_APIVERSION, $FEDERATION_PORT' < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf + envsubst "$FEDERATION_APIVERSION, $FEDERATION_PORT" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done echo "====================================================================================================" @@ -102,6 +102,7 @@ case "$NGINX_SSL" in *) TEMPLATE_FILE="gradido.conf.template" ;; esac envsubst "$FEDERATION_NGINX_CONF" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +echo "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf # rm $NGINX_CONFIG_DIR/gradido.conf.tmp # rm $NGINX_CONFIG_DIR/gradido-federation.conf From a5177d54bd730447aa9ccc7800b82db1642af20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 00:47:15 +0100 Subject: [PATCH 40/45] next try --- deployment/bare_metal/start.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index a2dca6608..fc1860f0e 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -76,6 +76,7 @@ export BUILD_COMMIT="$(git rev-parse HEAD)" # Generate gradido.conf from template # *** 1st prepare for each apiversion the federation conf for nginx from federation-template # *** set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS and create gradido-federation.conf file +rm -f $NGINX_CONFIG_DIR/gradido.conf.tmp rm -f $NGINX_CONFIG_DIR/gradido-federation.conf echo "====================================================================================================" IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS @@ -88,7 +89,7 @@ do FEDERATION_PORT=$(($FEDERATION_PORT + $port)) export FEDERATION_PORT echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" - envsubst "$FEDERATION_APIVERSION, $FEDERATION_PORT" < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf + envsubst '$FEDERATION_APIVERSION, $FEDERATION_PORT' < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done echo "====================================================================================================" @@ -101,8 +102,9 @@ case "$NGINX_SSL" in true) TEMPLATE_FILE="gradido.conf.ssl.template" ;; *) TEMPLATE_FILE="gradido.conf.template" ;; esac -envsubst "$FEDERATION_NGINX_CONF" < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp -echo "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" +envsubst '$FEDERATION_NGINX_CONF' < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +# echo "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" +echo "$(env)" envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf # rm $NGINX_CONFIG_DIR/gradido.conf.tmp # rm $NGINX_CONFIG_DIR/gradido-federation.conf From c2d9b75de297821359107eae8cbb70ffaae96bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 00:58:04 +0100 Subject: [PATCH 41/45] delete exported env-vars after usage --- deployment/bare_metal/start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index fc1860f0e..28f259d27 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -91,6 +91,8 @@ do echo " create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" envsubst '$FEDERATION_APIVERSION, $FEDERATION_PORT' < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf done +export FEDERATION_APIVERSION= +export FEDERATION_PORT= echo "====================================================================================================" # *** 2nd read gradido-federation.conf file in env variable to be replaced in 3rd step @@ -103,6 +105,7 @@ case "$NGINX_SSL" in *) TEMPLATE_FILE="gradido.conf.template" ;; esac envsubst '$FEDERATION_NGINX_CONF' < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp +export FEDERATION_NGINX_CONF= # echo "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" echo "$(env)" envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf From 55dd5038c795e7484c55930402dc064d349fb681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 01:47:34 +0100 Subject: [PATCH 42/45] remove echo outputs --- deployment/bare_metal/start.sh | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 28f259d27..d82bcbe9b 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -106,11 +106,9 @@ case "$NGINX_SSL" in esac envsubst '$FEDERATION_NGINX_CONF' < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CONFIG_DIR/gradido.conf.tmp export FEDERATION_NGINX_CONF= -# echo "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" -echo "$(env)" envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $NGINX_CONFIG_DIR/gradido.conf.tmp > $NGINX_CONFIG_DIR/gradido.conf -# rm $NGINX_CONFIG_DIR/gradido.conf.tmp -# rm $NGINX_CONFIG_DIR/gradido-federation.conf +rm $NGINX_CONFIG_DIR/gradido.conf.tmp +rm $NGINX_CONFIG_DIR/gradido-federation.conf # Generate update-page.conf from template echo 'Generate new update-page nginx config' >> $UPDATE_HTML @@ -217,18 +215,6 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -# # first remove previous pm2 gradido-federation processes from list -# pm2 ls -m | grep "+--- gradido-federation" | tr '\n' ',' | sed -e 's/+---//g' > proc.list -# IFS="," read -a PROCESS_ARRAY < proc.list -# for proc in "${PROCESS_ARRAY[@]}" -# do -# echo "---> delete process $proc" -# pm2 delete $proc -# done -# pm2 save -# rm proc.list -# echo "finished removeing previous gradido-federation processes from pm2" -# echo # set FEDERATION_PORT from FEDERATION_COMMUNITY_APIS IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS From 9907a4caf42e53b78ef5b42f151513bc012e001e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 11:58:42 +0100 Subject: [PATCH 43/45] add .env.dist and .env.dist.template to federation module --- federation/.env.dist | 4 ---- federation/.env.dist.template | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/federation/.env.dist b/federation/.env.dist index a1330546c..2bbf77fa8 100644 --- a/federation/.env.dist +++ b/federation/.env.dist @@ -1,11 +1,7 @@ LOG_LEVEL=debug PORT=4000 GRAPHIQL=true -// LOGIN_API_URL=http://login-server:1201/ -// COMMUNITY_API_URL=http://nginx/api/ -// GDT_API_URL=https://gdt.gradido.net/ -# Database # Database DB_PORT=3306 DB_DATABASE=gradido_community diff --git a/federation/.env.dist.template b/federation/.env.dist.template index 74f4cb75b..336da8f1a 100644 --- a/federation/.env.dist.template +++ b/federation/.env.dist.template @@ -14,3 +14,4 @@ COMMUNITY_DESCRIPTION=$COMMUNITY_DESCRIPTION FEDERATION_API=$FEDERATION_API FEDERATION_PORT=$FEDERATION_PORT FEDERATION_COMMUNITY_URL=$FEDERATION_COMMUNITY_URL + From 9419e9062c671b997f08a339edb39f7862c8e564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 13:28:12 +0100 Subject: [PATCH 44/45] remove port from dht-url --- dht-node/src/dht_node/index.test.ts | 14 +++++++------- dht-node/src/dht_node/index.ts | 4 +--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/dht-node/src/dht_node/index.test.ts b/dht-node/src/dht_node/index.test.ts index b7e36c783..ac5b1b21a 100644 --- a/dht-node/src/dht_node/index.test.ts +++ b/dht-node/src/dht_node/index.test.ts @@ -719,11 +719,11 @@ describe('federation', () => { JSON.stringify([ { api: '1_0', - url: 'http://localhost:5001/api/', + url: 'http://localhost/api/', }, { api: '2_0', - url: 'http://localhost:5002/api/', + url: 'http://localhost/api/', }, ]), ), @@ -747,7 +747,7 @@ describe('federation', () => { foreign: true, publicKey: expect.any(Buffer), apiVersion: '1_0', - endPoint: 'http://localhost:5001/api/', + endPoint: 'http://localhost/api/', lastAnnouncedAt: expect.any(Date), createdAt: expect.any(Date), updatedAt: null, @@ -764,7 +764,7 @@ describe('federation', () => { foreign: true, publicKey: expect.any(Buffer), apiVersion: '2_0', - endPoint: 'http://localhost:5002/api/', + endPoint: 'http://localhost/api/', lastAnnouncedAt: expect.any(Date), createdAt: expect.any(Date), updatedAt: null, @@ -786,15 +786,15 @@ describe('federation', () => { JSON.stringify([ { api: '1_0', - url: 'http://localhost:5001/api/', + url: 'http://localhost/api/', }, { api: '1_1', - url: 'http://localhost:5002/api/', + url: 'http://localhost/api/', }, { api: '2_0', - url: 'http://localhost:5003/api/', + url: 'http://localhost/api/', }, ]), ), diff --git a/dht-node/src/dht_node/index.ts b/dht-node/src/dht_node/index.ts index 722a62af7..d101037ae 100644 --- a/dht-node/src/dht_node/index.ts +++ b/dht-node/src/dht_node/index.ts @@ -181,11 +181,9 @@ export const startDHT = async (topic: string): Promise => { async function writeHomeCommunityEnries(pubKey: any): Promise { const homeApiVersions: CommunityApi[] = Object.values(ApiVersionType).map(function (apiEnum) { - const port = - Number.parseInt(CONFIG.FEDERATION_COMMUNITY_API_PORT) + Number(apiEnum.replace('_', '')) const comApi: CommunityApi = { api: apiEnum, - url: CONFIG.FEDERATION_COMMUNITY_URL + ':' + port.toString() + '/api/', + url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', } return comApi }) From 3fbd2cbf0b2ff67e6c2fa942c28df094eb255328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 2 Mar 2023 13:38:23 +0100 Subject: [PATCH 45/45] complete graphql-client request with variables to avoid password expectation in header --- backend/src/federation/client/1_0/FederationClient.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/src/federation/client/1_0/FederationClient.ts b/backend/src/federation/client/1_0/FederationClient.ts index 1c0ec4996..a8d7e1dff 100644 --- a/backend/src/federation/client/1_0/FederationClient.ts +++ b/backend/src/federation/client/1_0/FederationClient.ts @@ -18,9 +18,13 @@ export async function requestGetPublicKey(dbCom: DbCommunity): Promise