UNTESTED: Added database port as a configurable option
Also updated license field in package.json
This commit is contained in:
@@ -3,6 +3,8 @@ WEB_PORT=3100
|
||||
WEB_ORIGIN=http://localhost:3001
|
||||
|
||||
DB_HOSTNAME=localhost
|
||||
DB_PORTNAME=3306
|
||||
|
||||
DB_DATABASE=news
|
||||
DB_USERNAME=news
|
||||
DB_PASSWORD=venusaur
|
||||
|
||||
+24
-3
@@ -33,6 +33,25 @@ const question = (prompt, def = null) => {
|
||||
const appWebOrigin = await question('Web Origin', `https://example.com`); //TODO: clean these up properly
|
||||
const appPort = await question('App Port', '3100');
|
||||
|
||||
//configure the database address
|
||||
let dbLocation = '';
|
||||
while (typeof dbLocation != 'string' || /^[le]/i.test(dbLocation[0]) == false) {
|
||||
dbLocation = await question('[l]ocal or [e]xternal database?');
|
||||
}
|
||||
|
||||
let appDBHost = '';
|
||||
let appDBPort = '';
|
||||
|
||||
if (/^[l]/i.test(dbLocation[0])) {
|
||||
appDBHost = 'database';
|
||||
appDBPort = '3306';
|
||||
}
|
||||
else {
|
||||
appDBHost = await question('DB Host');
|
||||
appDBPort = await question('DB Port', '3306');
|
||||
}
|
||||
|
||||
//configure the database account
|
||||
const appDBUser = await question('DB User', appName);
|
||||
const appDBPass = await question('DB Pass', 'venusaur');
|
||||
const dbRootPass = await question('DB Root Pass');
|
||||
@@ -60,7 +79,8 @@ services:
|
||||
environment:
|
||||
- WEB_PORT=${appPort}
|
||||
- WEB_ORIGIN=${appWebOrigin}
|
||||
- DB_HOSTNAME=database
|
||||
- DB_HOSTNAME=${appDBHost}
|
||||
- DB_PORTNAME=${appDBPort}
|
||||
- DB_DATABASE=${appName}
|
||||
- DB_USERNAME=${appDBUser}
|
||||
- DB_PASSWORD=${appDBPass}
|
||||
@@ -68,13 +88,14 @@ services:
|
||||
- PAGE_SIZE=10
|
||||
- SECRET_ACCESS=${appSecretAccess}
|
||||
networks:
|
||||
- app-network
|
||||
- app-network${ appDBHost != 'database' ? '' : `
|
||||
depends_on:
|
||||
- database
|
||||
database:
|
||||
image: mariadb:latest
|
||||
environment:
|
||||
MYSQL_DATABASE: ${appName}
|
||||
MYSQL_TCP_PORT: ${appDBPort}
|
||||
MYSQL_USER: ${appDBUser}
|
||||
MYSQL_PASSWORD: ${appDBPass}
|
||||
MYSQL_ROOT_PASSWORD: ${dbRootPass}
|
||||
@@ -82,7 +103,7 @@ services:
|
||||
- app-network
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
- ./startup.sql:/docker-entrypoint-initdb.d/startup.sql:ro
|
||||
- ./startup.sql:/docker-entrypoint-initdb.d/startup.sql:ro`}
|
||||
traefik_${appName}:
|
||||
image: "traefik:v2.10"
|
||||
command:
|
||||
|
||||
Generated
+1
-1
@@ -7,7 +7,7 @@
|
||||
"": {
|
||||
"name": "news-server",
|
||||
"version": "1.7.1",
|
||||
"license": "ISC",
|
||||
"license": "Zlib",
|
||||
"dependencies": {
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.4.5",
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
"url": "git+https://github.com/krgamestudios/news-server.git"
|
||||
},
|
||||
"author": "Kayne Ruse",
|
||||
"license": "ISC",
|
||||
"license": "Zlib",
|
||||
"bugs": {
|
||||
"url": "https://github.com/krgamestudios/news-server/issues"
|
||||
},
|
||||
|
||||
@@ -2,6 +2,7 @@ const Sequelize = require('sequelize');
|
||||
|
||||
const sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, {
|
||||
host: process.env.DB_HOSTNAME,
|
||||
port: process.env.DB_PORTNAME,
|
||||
dialect: 'mariadb',
|
||||
timezone: process.env.DB_TIMEZONE,
|
||||
logging: process.env.DB_LOGGING ? console.log : false
|
||||
|
||||
@@ -24,4 +24,5 @@ app.get('*', (req, res) => {
|
||||
server.listen(process.env.WEB_PORT || 3100, async (err) => {
|
||||
await database.sync();
|
||||
console.log(`listening to localhost:${process.env.WEB_PORT || 3100}`);
|
||||
console.log(`database located at ${process.env.DB_HOSTNAME || '<default>'}:${process.env.DB_PORTNAME || '<default>'}`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user