From 93d07ca4d131147283494fa77fea6208a25a3a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 21 Feb 2023 22:29:44 +0100 Subject: [PATCH 1/5] add dht-node to deployment scripts --- deployment/bare_metal/.env.dist | 9 +++++++-- deployment/bare_metal/install.sh | 3 +++ deployment/bare_metal/start.sh | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/deployment/bare_metal/.env.dist b/deployment/bare_metal/.env.dist index 9c9c7ac82..b19bd8855 100644 --- a/deployment/bare_metal/.env.dist +++ b/deployment/bare_metal/.env.dist @@ -57,10 +57,15 @@ EMAIL_CODE_REQUEST_TIME=10 WEBHOOK_ELOPAGE_SECRET=secret # Federation -# 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_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_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 + + # database DATABASE_CONFIG_VERSION=v1.2022-03-18 diff --git a/deployment/bare_metal/install.sh b/deployment/bare_metal/install.sh index 9e60bec08..284e40576 100755 --- a/deployment/bare_metal/install.sh +++ b/deployment/bare_metal/install.sh @@ -137,6 +137,9 @@ envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/frontend/.env # Configure admin envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/admin/.env.template > $PROJECT_ROOT/admin/.env +# Configure dht-node +envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/dht-node/.env.template > $PROJECT_ROOT/dht-node/.env + # create cronjob to delete yarn output in /tmp # crontab -e # hourly job: 0 * * * * find /tmp -name "yarn--*" -cmin +60 -exec rm -r {} \; > /dev/null diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 95b89241f..14a616040 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -93,10 +93,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/dht-node/.env $PROJECT_ROOT/dht-node/.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/dht-node/.env.template > $PROJECT_ROOT/dht-node/.env # Install & build database echo 'Updating database' >> $UPDATE_HTML @@ -152,6 +154,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 dht-node +echo 'Updating dht-node' >> $UPDATE_HTML +cd $PROJECT_ROOT/dht-node +# TODO maybe handle this differently? +unset NODE_ENV +yarn install +yarn build +# TODO maybe handle this differently? +export NODE_ENV=production +pm2 delete gradido-dht-node +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 + # 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 d37714b4688097f26e88dce4154d541deaff6456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 21 Feb 2023 23:02:46 +0100 Subject: [PATCH 2/5] config changes --- dht-node/.env.dist | 10 +++++----- dht-node/.env.template | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dht-node/.env.dist b/dht-node/.env.dist index 5d287ee1a..51728d3e1 100644 --- a/dht-node/.env.dist +++ b/dht-node/.env.dist @@ -11,9 +11,9 @@ TYPEORM_LOGGING_RELATIVE_PATH=typeorm.dht-node.log # LOG_LEVEL=info # Federation -# 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 +# 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_COMMUNITY_URL=http://localhost -# FEDERATION_COMMUNITY_API_PORT=5000 +# FEDERATION_DHT_SEED=64ebcb0e3ad547848fef4197c6e2332f +FEDERATION_COMMUNITY_URL=http://localhost +# the api port is the dht baseport, which will be added with the supported api-versions, e.g. 1_0 = 5010 +FEDERATION_COMMUNITY_API_PORT=5000 diff --git a/dht-node/.env.template b/dht-node/.env.template index b3e5d6478..243bfc60f 100644 --- a/dht-node/.env.template +++ b/dht-node/.env.template @@ -1,4 +1,4 @@ -CONFIG_VERSION=$BACKEND_CONFIG_VERSION +CONFIG_VERSION=$FEDERATION_DHT_CONFIG_VERSION # Database DB_HOST=localhost From e6291c7dd488a6691e178b911c8e9739d16be7ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Tue, 21 Feb 2023 23:56:26 +0100 Subject: [PATCH 3/5] solve error returning ownApiList --- dht-node/log4js-config.json | 4 ++-- dht-node/src/dht_node/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dht-node/log4js-config.json b/dht-node/log4js-config.json index 877bc4255..3e5cc59ec 100644 --- a/dht-node/log4js-config.json +++ b/dht-node/log4js-config.json @@ -8,7 +8,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %c [%X{user}] [%f : %l] - %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", @@ -21,7 +21,7 @@ "pattern": "yyyy-MM-dd", "layout": { - "type": "pattern", "pattern": "%d{ISO8601} %c [%X{user}] [%f : %l] - %m" + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" }, "keepFileExt" : true, "fileNameSep" : "_", diff --git a/dht-node/src/dht_node/index.ts b/dht-node/src/dht_node/index.ts index 50ed46600..722a62af7 100644 --- a/dht-node/src/dht_node/index.ts +++ b/dht-node/src/dht_node/index.ts @@ -31,8 +31,8 @@ export const startDHT = async (topic: string): Promise => { logger.info(`keyPairDHT: publicKey=${keyPair.publicKey.toString('hex')}`) logger.debug(`keyPairDHT: secretKey=${keyPair.secretKey.toString('hex')}`) - const ownApiVersions = writeHomeCommunityEnries(keyPair.publicKey) - logger.debug(`ApiList: ${JSON.stringify(ownApiVersions)}`) + const ownApiVersions = await writeHomeCommunityEnries(keyPair.publicKey) + logger.info(`ApiList: ${JSON.stringify(ownApiVersions)}`) const node = new DHT({ keyPair }) From 9966a0663066662a98ab46e3e4e196037669ab97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 21:14:34 +0100 Subject: [PATCH 4/5] conditional start of dht-node --- deployment/bare_metal/start.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 14a616040..be353c0cd 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -164,7 +164,11 @@ yarn build # TODO maybe handle this differently? export NODE_ENV=production pm2 delete gradido-dht-node -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' +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' +else + echo "No Federation DHT-Topic configured. DHT-Node not started..." +fi pm2 save # let nginx showing gradido From b070ef55041ebd5d0600eab7190594d99c0e12e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 22 Feb 2023 21:30:32 +0100 Subject: [PATCH 5/5] conditional dht-node start with message --- 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 be353c0cd..89dc9d2f0 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -167,7 +167,9 @@ 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' else - echo "No Federation DHT-Topic configured. DHT-Node not started..." + echo "=====================================================================" + echo "WARNING: FEDERATION_DHT_TOPIC not configured. DHT-Node not started..." + echo "=====================================================================" fi pm2 save