feat: decouple l-s entrypoint
This commit is contained in:
parent
03cb4a3c4c
commit
b0860cdea5
48 changed files with 411 additions and 232 deletions
32
tools/build-dev-env.js
Normal file
32
tools/build-dev-env.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
const fs = require('fs')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
|
||||
const setEnvVariable = require('./set-env-var')
|
||||
|
||||
fs.copyFileSync(path.resolve(__dirname, '../.sample.env'), path.resolve(__dirname, '../.env'))
|
||||
|
||||
setEnvVariable('LAMASSU_DB', 'DEV')
|
||||
setEnvVariable('POSTGRES_USER', 'postgres')
|
||||
setEnvVariable('POSTGRES_PASSWORD', 'postgres123')
|
||||
setEnvVariable('POSTGRES_HOST', 'localhost')
|
||||
setEnvVariable('POSTGRES_PORT', '5432')
|
||||
setEnvVariable('POSTGRES_DB', 'lamassu')
|
||||
|
||||
setEnvVariable('CA_PATH', `${process.env.PWD}/certs/Lamassu_OP_Root_CA.pem`)
|
||||
setEnvVariable('CERT_PATH', `${process.env.PWD}/certs/Lamassu_OP.pem`)
|
||||
setEnvVariable('KEY_PATH', `${process.env.PWD}/certs/Lamassu_OP.key`)
|
||||
|
||||
setEnvVariable('MNEMONIC_PATH', `${process.env.HOME}/.lamassu/mnemonics/mnemonic.txt`)
|
||||
setEnvVariable('MIGRATE_STATE_PATH', `${process.env.HOME}/.lamassu/.migrate`)
|
||||
|
||||
setEnvVariable('OFAC_DATA_DIR', `${process.env.HOME}/.lamassu/ofac`)
|
||||
setEnvVariable('ID_PHOTO_CARD_DIR', `${process.env.HOME}/.lamassu/idphotocard`)
|
||||
setEnvVariable('FRONT_CAMERA_DIR', `${process.env.HOME}/.lamassu/frontcamera`)
|
||||
setEnvVariable('OPERATOR_DATA_DIR', `${process.env.HOME}/.lamassu/operatordata`)
|
||||
|
||||
setEnvVariable('OFAC_SOURCES_NAMES', 'sdn_advanced,cons_advanced')
|
||||
setEnvVariable('OFAC_SOURCES_URLS', 'https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml,https://www.treasury.gov/ofac/downloads/sanctions/1.0/cons_advanced.xml')
|
||||
|
||||
setEnvVariable('HOSTNAME', 'localhost')
|
||||
setEnvVariable('LOG_LEVEL', 'debug')
|
||||
45
tools/build-prod-env.js
Normal file
45
tools/build-prod-env.js
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
const fs = require('fs')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const argv = require('minimist')(process.argv.slice(2))
|
||||
const _ = require('lodash/fp')
|
||||
|
||||
const setEnvVariable = require('./set-env-var')
|
||||
|
||||
const requiredParams = ['db-password', 'hostname']
|
||||
|
||||
if (!_.isEqual(_.intersection(_.keys(argv), requiredParams), requiredParams)) {
|
||||
console.error('Usage: node tools/build-prod-env.js --db-password <DB_PASSWORD> --hostname <IP>')
|
||||
process.exit(2)
|
||||
}
|
||||
|
||||
fs.copyFileSync(path.resolve(__dirname, '../.sample.env'), path.resolve(__dirname, '../.env'))
|
||||
|
||||
setEnvVariable('POSTGRES_USER', 'lamassu_pg')
|
||||
setEnvVariable('POSTGRES_PASSWORD', `${argv['db-password']}`)
|
||||
setEnvVariable('POSTGRES_HOST', 'localhost')
|
||||
setEnvVariable('POSTGRES_PORT', '5432')
|
||||
setEnvVariable('POSTGRES_DB', 'lamassu')
|
||||
|
||||
setEnvVariable('LAMASSU_CA_PATH', `/etc/ssl/certs/Lamassu_CA.pem`)
|
||||
setEnvVariable('CA_PATH', `/etc/ssl/certs/Lamassu_OP_Root_CA.pem`)
|
||||
setEnvVariable('CERT_PATH', `/etc/ssl/certs/Lamassu_OP.pem`)
|
||||
setEnvVariable('KEY_PATH', `/etc/ssl/certs/Lamassu_OP.key`)
|
||||
|
||||
setEnvVariable('MNEMONIC_PATH', `/etc/lamassu/mnemonics/mnemonic.txt`)
|
||||
setEnvVariable('MIGRATE_STATE_PATH', `/etc/lamassu/.migrate`)
|
||||
|
||||
setEnvVariable('BLOCKCHAIN_DIR', `/mnt/blockchains`)
|
||||
setEnvVariable('OFAC_DATA_DIR', `/var/lamassu/ofac`)
|
||||
setEnvVariable('ID_PHOTO_CARD_DIR', `/opt/lamassu-server/idphotocard`)
|
||||
setEnvVariable('FRONT_CAMERA_DIR', `/opt/lamassu-server/frontcamera`)
|
||||
setEnvVariable('OPERATOR_DATA_DIR', `/opt/lamassu-server/operatordata`)
|
||||
|
||||
setEnvVariable('STRIKE_BASE_URL', `https://api.strike.acinq.co/api/`)
|
||||
setEnvVariable('COIN_ATM_RADAR_URL', `https://coinatmradar.info/api/lamassu/`)
|
||||
|
||||
setEnvVariable('OFAC_SOURCES_NAMES', 'sdn_advanced,cons_advanced')
|
||||
setEnvVariable('OFAC_SOURCES_URLS', 'https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml,https://www.treasury.gov/ofac/downloads/sanctions/1.0/cons_advanced.xml')
|
||||
|
||||
setEnvVariable('HOSTNAME', `${argv.hostname}`)
|
||||
setEnvVariable('LOG_LEVEL', 'info')
|
||||
|
|
@ -91,32 +91,6 @@ rm /tmp/Lamassu_OP.csr.pem
|
|||
mkdir -p $OFAC_DATA_DIR/sources
|
||||
touch $OFAC_DATA_DIR/etags.json
|
||||
|
||||
cat <<EOF > $CONFIG_DIR/lamassu.json
|
||||
{
|
||||
"postgresql": "psql://postgres:$POSTGRES_PASS@localhost/lamassu",
|
||||
"mnemonicPath": "$MNEMONIC_FILE",
|
||||
"caPath": "$CA_PATH",
|
||||
"certPath": "$SERVER_CERT_PATH",
|
||||
"keyPath": "$SERVER_KEY_PATH",
|
||||
"hostname": "$DOMAIN",
|
||||
"logLevel": "debug",
|
||||
"lamassuCaPath": "$LAMASSU_CA_PATH",
|
||||
"migrateStatePath": "$MIGRATE_STATE_PATH",
|
||||
"ofacDataDir": "$OFAC_DATA_DIR",
|
||||
"ofacSources": [
|
||||
{
|
||||
"name": "sdn_advanced",
|
||||
"url": "https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml"
|
||||
},
|
||||
{
|
||||
"name": "cons_advanced",
|
||||
"url": "https://www.treasury.gov/ofac/downloads/sanctions/1.0/cons_advanced.xml"
|
||||
}
|
||||
],
|
||||
"idPhotoCardDir": "$IDPHOTOCARD_DIR",
|
||||
"frontCameraDir": "$FRONTCAMERA_DIR",
|
||||
"operatorDataDir": "$OPERATOR_DIR"
|
||||
}
|
||||
EOF
|
||||
node tools/build-dev-env.js
|
||||
|
||||
echo "Done."
|
||||
|
|
|
|||
24
tools/set-env-var.js
Normal file
24
tools/set-env-var.js
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
const fs = require('fs')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
|
||||
const setEnvVariable = (key, value) => {
|
||||
const ENV_VARIABLES = fs.readFileSync(path.resolve(__dirname, '../.env'), 'utf-8').split(os.EOL)
|
||||
const target = ENV_VARIABLES.indexOf(ENV_VARIABLES.find(line => line.match(new RegExp(`^${key}=`))))
|
||||
|
||||
if (target < 0) {
|
||||
// The variable doesn't exist, add it
|
||||
ENV_VARIABLES.push(`${key}=${value}`)
|
||||
} else {
|
||||
// .env already has that variable set, or at least has the definition of its key
|
||||
//
|
||||
// This is currently circumventing a possible bug on dotenv
|
||||
// where the variables on this script were showing up as undefined on the first run despite the key existing,
|
||||
// while on a second run they'd appear as empty string, as intended
|
||||
ENV_VARIABLES.splice(target, 1, `${key}=${value}`)
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.resolve(__dirname, '../.env'), ENV_VARIABLES.join(os.EOL))
|
||||
}
|
||||
|
||||
module.exports = setEnvVariable
|
||||
Loading…
Add table
Add a link
Reference in a new issue