added node-ip and updated CLI #579

Merged
bones7242 merged 3 commits from 560-ip-address into master 2018-08-16 18:35:04 +02:00
9 changed files with 61 additions and 14 deletions

3
.gitignore vendored
View file

@ -15,8 +15,7 @@ client_custom/src/pages
devConfig/sequelizeCliConfig.js
devConfig/testingConfig.js
config/mysqlConfig.json
config/siteConfig.json
config/
public/bundle/bundle.js
public/bundle/bundle.js.map

View file

@ -34,8 +34,6 @@ $ npm install
$ npm run configure
```
Add your ip address in `config/siteConfig.json`
#### Build & start the app
_note: make sure lbry is running in the background before proceeding_

View file

@ -2,6 +2,7 @@ const inquirer = require('inquirer');
const fs = require('fs');
const Path = require('path');
const axios = require('axios');
const ip = require('ip');
const mysqlQuestions = require(Path.resolve(__dirname, 'questions/mysqlQuestions.js'));
const siteQuestions = require(Path.resolve(__dirname, 'questions/siteQuestions.js'));
@ -11,6 +12,14 @@ let thumbnailChannelDefault = '@thumbnails';
let thumbnailChannel = '';
let thumbnailChannelId = '';
const createConfigFile = (fileName, configObject) => { // siteConfig.json , siteConfig
const fileLocation = Path.resolve(__dirname, `../config/${fileName}`);
const fileContents = JSON.stringify(configObject, null, 2);
fs.writeFileSync(fileLocation, fileContents, 'utf-8');
console.log(`Successfully created /config/${fileName}\n`);
};
// import existing configs or import the defaults
let mysqlConfig;
try {
mysqlConfig = require('../config/mysqlConfig.json');
@ -36,14 +45,33 @@ const {
},
} = siteConfig;
let lbryConfig;
try {
lbryConfig = require('../config/lbryConfig.json');
} catch (error) {
lbryConfig = require('./defaults/lbryConfig.json');
}
let loggerConfig;
try {
loggerConfig = require('../config/loggerConfig.json');
} catch (error) {
loggerConfig = require('./defaults/loggerConfig.json');
}
let slackConfig;
try {
slackConfig = require('../config/slackConfig.json');
} catch (error) {
slackConfig = require('./defaults/slackConfig.json');
}
// ask user questions and create config files
inquirer
.prompt(mysqlQuestions(mysqlDatabase, mysqlUsername, mysqlPassword))
.then(results => {
console.log('\nCreating mysql config file...');
const fileLocation = Path.resolve(__dirname, '../config/mysqlConfig.json');
const fileContents = JSON.stringify(results, null, 2);
fs.writeFileSync(fileLocation, fileContents, 'utf-8');
console.log('Successfully created /config/mysqlConfig.json!\n');
createConfigFile('mysqlConfig.json', results);
})
.then(() => {
// check for lbrynet connection & retrieve a default address
@ -158,15 +186,19 @@ inquirer
siteConfig['details']['port'] = results.port;
siteConfig['details']['title'] = results.title;
siteConfig['details']['host'] = results.host;
siteConfig['details']['ipAddress'] = ip.address();
siteConfig['publishing']['uploadDirectory'] = results.uploadDirectory;
const fileLocation = Path.resolve(__dirname, '../config/siteConfig.json');
const fileContents = JSON.stringify(siteConfig, null, 2);
fs.writeFileSync(fileLocation, fileContents, 'utf-8');
console.log('Successfully created /config/siteConfig.json\n');
})
.then(() => {
// create the config files
createConfigFile('siteConfig.json', siteConfig);
createConfigFile('lbryConfig.json', lbryConfig);
createConfigFile('loggerConfig.json', loggerConfig);
createConfigFile('slackConfig.json', slackConfig);
})
.then(() => {
console.log('\nYou\'re all done!');
console.log('Next step: run "npm run build" to build your server, then "npm run start" to start your server!');
console.log('Next step: run "npm run start" to build and start your server!');
console.log('If you want to change any settings, you can edit the files in the "/config" folder.');
process.exit(0);
})

View file

@ -0,0 +1,5 @@
{
"apiHost": "localhost",
"apiPort": "5279",
"getTimeout": 30
}

View file

@ -0,0 +1,3 @@
{
"logLevel": "verbose"
}

View file

@ -0,0 +1,5 @@
{
"slackWebHook": false,
"slackErrorChannel": false,
"slackInfoChannel": false
}

View file

@ -131,7 +131,6 @@ Check your site configs
$ cd config/
$ nano siteConfig.json
```
add your ip address in `config/siteConfig.json`
### Build & run

5
package-lock.json generated
View file

@ -6677,6 +6677,11 @@
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
},
"ip": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
},
"ip-regex": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",

View file

@ -54,6 +54,7 @@
"helmet": "^3.13.0",
"image-size": "^0.6.3",
"inquirer": "^5.2.0",
"ip": "^1.1.5",
"make-dir": "^1.3.0",
"module-alias": "^2.1.0",
"mysql2": "^1.6.1",