From d42824d41ac9331d4e45a2a44b64e02cb951c92e Mon Sep 17 00:00:00 2001 From: Ratstail91 Date: Mon, 15 Apr 2024 21:03:08 +1000 Subject: [PATCH] UNTESTED: Added database port as a configurable option Also updated license field in package.json --- .envdev | 2 ++ configure-script.js | 27 ++++++++++++++++++++++++--- package-lock.json | 2 +- package.json | 2 +- server/database/index.js | 1 + server/server.js | 1 + 6 files changed, 30 insertions(+), 5 deletions(-) diff --git a/.envdev b/.envdev index 5641b16..b1d7ecf 100644 --- a/.envdev +++ b/.envdev @@ -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 diff --git a/configure-script.js b/configure-script.js index 915a0a7..4882bfc 100644 --- a/configure-script.js +++ b/configure-script.js @@ -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: diff --git a/package-lock.json b/package-lock.json index 412629d..0bfe606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "news-server", "version": "1.7.1", - "license": "ISC", + "license": "Zlib", "dependencies": { "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/package.json b/package.json index 65048e9..f3a0667 100644 --- a/package.json +++ b/package.json @@ -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" }, diff --git a/server/database/index.js b/server/database/index.js index 02da5eb..9f9611c 100644 --- a/server/database/index.js +++ b/server/database/index.js @@ -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 diff --git a/server/server.js b/server/server.js index eca3000..53861aa 100644 --- a/server/server.js +++ b/server/server.js @@ -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 || ''}:${process.env.DB_PORTNAME || ''}`); });