diff --git a/deployment/bare_metal/.env.dist b/deployment/bare_metal/.env.dist index 12297e357..da745d705 100644 --- a/deployment/bare_metal/.env.dist +++ b/deployment/bare_metal/.env.dist @@ -66,7 +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 +# comma separated list of api-versions, which cause starting several federation modules 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 d82bcbe9b..aee21fbee 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -59,7 +59,7 @@ ln -s /etc/nginx/sites-available/update-page.conf /etc/nginx/sites-enabled/ sudo /etc/init.d/nginx restart # stop all services -echo 'Stopping and Delete all Gradido services' >> $UPDATE_HTML +echo 'Stop and delete all Gradido services' >> $UPDATE_HTML pm2 delete all pm2 save @@ -77,8 +77,8 @@ 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.conf.tmp -rm -f $NGINX_CONFIG_DIR/gradido-federation.conf -echo "====================================================================================================" +rm -f $NGINX_CONFIG_DIR/gradido-federation.conf.locations +echo "====================================================================================================" >> $UPDATE_HTML IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" do @@ -88,15 +88,15 @@ 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" - envsubst '$FEDERATION_APIVERSION, $FEDERATION_PORT' < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf + echo "create ngingx config: location /api/$FEDERATION_APIVERSION to http://127.0.0.1:$FEDERATION_PORT" >> $UPDATE_HTML + envsubst '$FEDERATION_APIVERSION, $FEDERATION_PORT' < $NGINX_CONFIG_DIR/gradido-federation.conf.template >> $NGINX_CONFIG_DIR/gradido-federation.conf.locations done -export FEDERATION_APIVERSION= -export FEDERATION_PORT= -echo "====================================================================================================" +unset FEDERATION_APIVERSION +unset FEDERATION_PORT +echo "====================================================================================================" >> $UPDATE_HTML # *** 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) +export FEDERATION_NGINX_CONF=$(< $NGINX_CONFIG_DIR/gradido-federation.conf.locations) # *** 3rd generate gradido nginx config including federation modules per api-version echo 'Generate new gradido nginx config' >> $UPDATE_HTML @@ -108,7 +108,7 @@ envsubst '$FEDERATION_NGINX_CONF' < $NGINX_CONFIG_DIR/$TEMPLATE_FILE > $NGINX_CO export FEDERATION_NGINX_CONF= 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-federation.conf.locations # Generate update-page.conf from template echo 'Generate new update-page nginx config' >> $UPDATE_HTML @@ -156,7 +156,6 @@ if [ "$DEPLOY_SEED_DATA" = "true" ]; then fi # TODO maybe handle this differently? export NODE_ENV=production -# 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 @@ -169,7 +168,6 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -# 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 @@ -182,7 +180,6 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -# 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 @@ -195,14 +192,13 @@ yarn install yarn build # TODO maybe handle this differently? export NODE_ENV=production -# 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 else - echo "=====================================================================" - echo "WARNING: FEDERATION_DHT_TOPIC not configured. DHT-Node not started..." - echo "=====================================================================" + echo "=====================================================================" >> $UPDATE_HTML + echo "WARNING: FEDERATION_DHT_TOPIC not configured. DHT-Node not started..." >> $UPDATE_HTML + echo "=====================================================================" >> $UPDATE_HTML fi @@ -221,17 +217,17 @@ IFS="," read -a API_ARRAY <<< $FEDERATION_COMMUNITY_APIS for api in "${API_ARRAY[@]}" do export FEDERATION_API=$api - echo "FEDERATION_API=$FEDERATION_API" + echo "FEDERATION_API=$FEDERATION_API" >> $UPDATE_HTML export MODULENAME=gradido-federation-$api - echo "MODULENAME=$MODULENAME" + echo "MODULENAME=$MODULENAME" >> $UPDATE_HTML # 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 "====================================================" + echo "====================================================" >> $UPDATE_HTML + echo " start $MODULENAME listening on port=$FEDERATION_PORT" >> $UPDATE_HTML + echo "====================================================" >> $UPDATE_HTML # 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 diff --git a/federation/.env.dist b/federation/.env.dist index 2bbf77fa8..68cedd5bb 100644 --- a/federation/.env.dist +++ b/federation/.env.dist @@ -1,15 +1,7 @@ -LOG_LEVEL=debug -PORT=4000 -GRAPHIQL=true - # Database -DB_PORT=3306 -DB_DATABASE=gradido_community - - -COMMUNITY_NAME=Gradido Entwicklung -COMMUNITY_URL=http://localhost:4000/ -COMMUNITY_DESCRIPTION=lokale Entwicklungsumgebung +# DB_HOST=localhost +# DB_PORT=3306 +# DB_DATABASE=gradido_community # Federation FEDERATION_API=1_0 diff --git a/federation/.env.dist.template b/federation/.env.dist.template index 336da8f1a..780779722 100644 --- a/federation/.env.dist.template +++ b/federation/.env.dist.template @@ -1,14 +1,16 @@ +CONFIG_VERSION=$FEDERATION_CONFIG_VERSION + LOG_LEVEL=$LOG_LEVEL -PORT=$PORT -GRAPHIQL=$GRAPHIQL +# this is set fix to false, because it is important for 'production' environments. only set to true if a graphql-playground should be in use +GRAPHIQL=false # Database +DB_HOST=$DB_HOST DB_PORT=$DB_PORT DB_DATABASE=$DB_DATABASE - -COMMUNITY_NAME=$COMMUNITY_NAME -COMMUNITY_URL=$COMMUNITY_URL -COMMUNITY_DESCRIPTION=$COMMUNITY_DESCRIPTION +DB_USER=$DB_USER +DB_PASSWORD=$DB_PASSWORD +DB_DATABASE=$DB_DATABASE # Federation FEDERATION_API=$FEDERATION_API diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index dc2e77928..e9036fc49 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -24,7 +24,6 @@ const constants = { } const server = { - PORT: process.env.PORT || 5010, // JWT_SECRET: process.env.JWT_SECRET || 'secret123', // JWT_EXPIRES_IN: process.env.JWT_EXPIRES_IN || '10m', GRAPHIQL: process.env.GRAPHIQL === 'true' || false, @@ -40,21 +39,6 @@ const database = { TYPEORM_LOGGING_RELATIVE_PATH: process.env.TYPEORM_LOGGING_RELATIVE_PATH || 'typeorm.backend.log', } -/* -const community = { - COMMUNITY_NAME: process.env.COMMUNITY_NAME || 'Gradido Entwicklung', - COMMUNITY_URL: process.env.COMMUNITY_URL || 'http://localhost/', - COMMUNITY_REGISTER_URL: process.env.COMMUNITY_REGISTER_URL || 'http://localhost/register', - COMMUNITY_REDEEM_URL: process.env.COMMUNITY_REDEEM_URL || 'http://localhost/redeem/{code}', - COMMUNITY_REDEEM_CONTRIBUTION_URL: - process.env.COMMUNITY_REDEEM_CONTRIBUTION_URL || 'http://localhost/redeem/CL-{code}', - COMMUNITY_DESCRIPTION: - process.env.COMMUNITY_DESCRIPTION || 'Die lokale Entwicklungsumgebung von Gradido.', -} -*/ - -// This is needed by graphql-directive-auth -// process.env.APP_SECRET = server.JWT_SECRET // Check config version constants.CONFIG_VERSION.CURRENT = @@ -71,10 +55,6 @@ 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_API: process.env.FEDERATION_API || '1_0', FEDERATION_PORT: process.env.FEDERATION_PORT || 5010, FEDERATION_COMMUNITY_URL: process.env.FEDERATION_COMMUNITY_URL || null,