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` ) } })