From e4586e58f253a5d1fc59fc7a36d68a99b09745b9 Mon Sep 17 00:00:00 2001 From: argirok Date: Mon, 3 Oct 2022 12:22:13 +0300 Subject: [PATCH] Services: add properties files and scripts to create separate configuration per environment --- services/cache/mecache/README.md | 25 +++++++++++++++++++ services/cache/mecache/beta-properties.file | 1 + services/cache/mecache/cache.js | 6 +++-- services/cache/mecache/package.json | 8 ++++-- .../cache/mecache/production-properties.file | 1 + services/cache/mecache/properties.file | 1 + services/utils-service/README.md | 24 ++++++++++++++++++ services/utils-service/beta-properties.file | 1 + services/utils-service/package.json | 5 +++- services/utils-service/prepareDeploy.sh | 14 ----------- .../utils-service/production-properties.file | 1 + services/utils-service/properties.file | 1 + services/utils-service/uploadService.js | 2 +- 13 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 services/cache/mecache/README.md create mode 100644 services/cache/mecache/beta-properties.file create mode 100644 services/cache/mecache/production-properties.file create mode 100644 services/cache/mecache/properties.file create mode 100644 services/utils-service/README.md delete mode 100755 services/utils-service/prepareDeploy.sh diff --git a/services/cache/mecache/README.md b/services/cache/mecache/README.md new file mode 100644 index 00000000..3922272d --- /dev/null +++ b/services/cache/mecache/README.md @@ -0,0 +1,25 @@ +# README # + + +### What is this repository for? ### + +Cache service + +* Version 1.0.0 + +### How to run locally? ### + +* "npm start" to start the service +* Check properties to set the port + +### How to run in a server? ### +* run "npm run prepare-{CONFIGURATION_NAME}" +* cp dist folder in the server +* create a folder for the service files +* "npm i" to install dependencies. +* if you just update the project run "pm2 restart cache" +* if you start a new service run: pm2 start --name cache ./cache.js --log-date-format="YYYY-MM-DD HH:mm Z" + + + + diff --git a/services/cache/mecache/beta-properties.file b/services/cache/mecache/beta-properties.file new file mode 100644 index 00000000..471fad82 --- /dev/null +++ b/services/cache/mecache/beta-properties.file @@ -0,0 +1 @@ +port = 4000 diff --git a/services/cache/mecache/cache.js b/services/cache/mecache/cache.js index 425c2a61..8dba6912 100644 --- a/services/cache/mecache/cache.js +++ b/services/cache/mecache/cache.js @@ -6,6 +6,8 @@ let mcache = require('memory-cache'); const request = require('superagent'); const prom = require('prom-client'); const URL = require('url'); +var PropertiesReader = require('properties-reader'); +var properties = PropertiesReader('./properties.file'); const expireShort = 2 * 60 * 1000; //2mins const expireLong = 24 * 60 * 60 * 1000; //24 hours const cacheMaxSize = 500; @@ -136,8 +138,8 @@ app.use((req, res) => { res.status(404).send(getResponse(404, "Not Found")); //not found }); -app.listen((process.env.PORT) ? process.env.PORT : 3000, function () { - console.log(`Example app listening on port ${(process.env.PORT) ? process.env.PORT : 3000}!`) +const server = app.listen(properties.get('port'), function () { + console.log(`Example app listening on port`, server.address().port) //run the timer resetAtMidnight(); }); diff --git a/services/cache/mecache/package.json b/services/cache/mecache/package.json index 580d7869..c321041d 100644 --- a/services/cache/mecache/package.json +++ b/services/cache/mecache/package.json @@ -4,14 +4,18 @@ "description": "Caching in memory", "main": "cache.js", "scripts": { - "start": "PORT=3200 node cache.js" + "start": "node cache.js", + "prepare-dist": "rm -rf dist; mkdir dist; cp package.json ./dist; cp cache.js ./dist; cp properties.file ./dist;", + "prepare-beta":" npm run prepare-dist; cp beta-properties.file ./dist/properties.file", + "prepare-prod":" npm run prepare-dist; cp production-properties.file ./dist/properties.file" }, "dependencies": { "cors": "^2.8.5", "express": "^4.15.2", "memory-cache": "^0.2.0", "superagent": "^5.0.5", - "prom-client": "^11.3.0" + "prom-client": "^11.3.0", + "properties-reader": "0.0.16" }, "engines": { "node": "16.3.0" diff --git a/services/cache/mecache/production-properties.file b/services/cache/mecache/production-properties.file new file mode 100644 index 00000000..471fad82 --- /dev/null +++ b/services/cache/mecache/production-properties.file @@ -0,0 +1 @@ +port = 4000 diff --git a/services/cache/mecache/properties.file b/services/cache/mecache/properties.file new file mode 100644 index 00000000..74f6260b --- /dev/null +++ b/services/cache/mecache/properties.file @@ -0,0 +1 @@ +port = 3200 diff --git a/services/utils-service/README.md b/services/utils-service/README.md new file mode 100644 index 00000000..d553c9f5 --- /dev/null +++ b/services/utils-service/README.md @@ -0,0 +1,24 @@ +# README # + + +### What is this repository for? ### + +Utils service + +* Version 1.0.0 + +### How to run locally? ### + +* "npm start" to start the service + +### How to run in a server? ### +* run "npm run prepare-{CONFIGURATION_NAME}" +* cp dist folder in the server +* create a folder for the service files +* "npm i" to install dependencies. +* if you just update the project run "pm2 restart upload" +* if you start a new service run: pm2 start --name upload ./uploadService.js --log-date-format="YYYY-MM-DD HH:mm Z" + + + + diff --git a/services/utils-service/beta-properties.file b/services/utils-service/beta-properties.file index 534e81dd..7e37b386 100644 --- a/services/utils-service/beta-properties.file +++ b/services/utils-service/beta-properties.file @@ -5,3 +5,4 @@ localPath = false max.size = 200 # file size in KB big-max.size = 1000 +port = 8000 diff --git a/services/utils-service/package.json b/services/utils-service/package.json index 736a2805..0ab94c2b 100644 --- a/services/utils-service/package.json +++ b/services/utils-service/package.json @@ -4,7 +4,10 @@ "description": "", "main": "index.js", "scripts": { - "start": "node uploadService.js" + "start": "node uploadService.js", + "prepare-dist": "rm -rf dist; mkdir dist; cp package.json ./dist; cp uploadService.js ./dist; cp properties.file ./dist;", + "prepare-beta":" npm run prepare-dist; cp beta-properties.file ./dist/properties.file", + "prepare-prod":" npm run prepare-dist; cp production-properties.file ./dist/properties.file" }, "keywords": [], "author": "", diff --git a/services/utils-service/prepareDeploy.sh b/services/utils-service/prepareDeploy.sh deleted file mode 100755 index 69f959e5..00000000 --- a/services/utils-service/prepareDeploy.sh +++ /dev/null @@ -1,14 +0,0 @@ -#uncomment properties file based on deployment environment -#mv beta-properties.file properties.file -#mv production-properties.file properties.file - -#rm -rf node_modules/ run.sh uploads/ .idea/ beta-properties.file production-properties.file -#rm prepareDeploy.sh - -#Copy files to beta.explore.openaire.eu or explore.openaire.eu /home/argiro.kokogiannaki/portals/utils-service.YYYY-MM-DD -# run npm i -#change to user nodejs " sudo su nodejs -s /bin/bash" -#copy files to deploy folder " cp -r /home/argiro.kokogiannaki/portals/utils-service.YYY-MM-DD/* /srv/www/upload/" -# restart uplication "pm2 restart upload" - - diff --git a/services/utils-service/production-properties.file b/services/utils-service/production-properties.file index 896864da..93f676c1 100644 --- a/services/utils-service/production-properties.file +++ b/services/utils-service/production-properties.file @@ -5,3 +5,4 @@ localPath = false max.size = 200 # file size in KB big-max.size = 1000 +port = 8000 diff --git a/services/utils-service/properties.file b/services/utils-service/properties.file index 9420587d..ed2c1d79 100644 --- a/services/utils-service/properties.file +++ b/services/utils-service/properties.file @@ -5,3 +5,4 @@ localPath = true max.size = 200 # file size in KB big-max.size = 1000 +port = 8000 diff --git a/services/utils-service/uploadService.js b/services/utils-service/uploadService.js index 3122f1ec..c929c2e2 100644 --- a/services/utils-service/uploadService.js +++ b/services/utils-service/uploadService.js @@ -97,7 +97,7 @@ app.delete(['/delete/:filename', '/delete/stakeholder/:filename', '/delete/:type }); }); -const server = app.listen(8000, function () { +const server = app.listen(properties.get('port'), function () { console.log("Listening on port %s...", server.address().port); });