UNTESTED: Added database port as a configurable option

Also updated license field in package.json
This commit is contained in:
2024-04-15 21:03:23 +10:00
parent 3700372e92
commit 9db6dbf63b
6 changed files with 30 additions and 7 deletions
+2
View File
@@ -3,6 +3,8 @@ WEB_PORT=3300
WEB_ORIGIN=http://localhost:3001 WEB_ORIGIN=http://localhost:3001
DB_HOSTNAME=localhost DB_HOSTNAME=localhost
DB_PORTNAME=3306
DB_DATABASE=chat DB_DATABASE=chat
DB_USERNAME=chat DB_USERNAME=chat
DB_PASSWORD=blastoise DB_PASSWORD=blastoise
+24 -3
View File
@@ -33,6 +33,25 @@ const question = (prompt, def = null) => {
const appWebOrigin = await question('Web Origin', `https://example.com`); //TODO: clean these up properly const appWebOrigin = await question('Web Origin', `https://example.com`); //TODO: clean these up properly
const appPort = await question('App Port', '3300'); const appPort = await question('App Port', '3300');
//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 appDBUser = await question('DB User', appName);
const appDBPass = await question('DB Pass', 'blastoise'); const appDBPass = await question('DB Pass', 'blastoise');
const dbRootPass = await question('DB Root Pass'); const dbRootPass = await question('DB Root Pass');
@@ -61,20 +80,22 @@ services:
environment: environment:
- WEB_PORT=${appPort} - WEB_PORT=${appPort}
- WEB_ORIGIN=${appWebOrigin} - WEB_ORIGIN=${appWebOrigin}
- DB_HOSTNAME=database - DB_HOSTNAME=${appDBHost}
- DB_PORTNAME=${appDBPort}
- DB_DATABASE=${appName} - DB_DATABASE=${appName}
- DB_USERNAME=${appDBUser} - DB_USERNAME=${appDBUser}
- DB_PASSWORD=${appDBPass} - DB_PASSWORD=${appDBPass}
- DB_TIMEZONE=Australia/Sydney - DB_TIMEZONE=Australia/Sydney
- SECRET_ACCESS=${appSecretAccess} - SECRET_ACCESS=${appSecretAccess}
networks: networks:
- app-network - app-network${ appDBHost != 'database' ? '' : `
depends_on: depends_on:
- database - database
database: database:
image: mariadb:latest image: mariadb:latest
environment: environment:
MYSQL_DATABASE: ${appName} MYSQL_DATABASE: ${appName}
MYSQL_TCP_PORT: ${appDBPort}
MYSQL_USER: ${appDBUser} MYSQL_USER: ${appDBUser}
MYSQL_PASSWORD: ${appDBPass} MYSQL_PASSWORD: ${appDBPass}
MYSQL_ROOT_PASSWORD: ${dbRootPass} MYSQL_ROOT_PASSWORD: ${dbRootPass}
@@ -82,7 +103,7 @@ services:
- app-network - app-network
volumes: volumes:
- ./mysql:/var/lib/mysql - ./mysql:/var/lib/mysql
- ./startup.sql:/docker-entrypoint-initdb.d/startup.sql:ro - ./startup.sql:/docker-entrypoint-initdb.d/startup.sql:ro`}
traefik_${appName}: traefik_${appName}:
container_name: ${appName}_traefik container_name: ${appName}_traefik
image: "traefik:v2.10" image: "traefik:v2.10"
+1 -1
View File
@@ -7,7 +7,7 @@
"": { "": {
"name": "chat-server", "name": "chat-server",
"version": "1.5.1", "version": "1.5.1",
"license": "ISC", "license": "Zlib",
"dependencies": { "dependencies": {
"cors": "^2.8.5", "cors": "^2.8.5",
"dotenv": "^16.4.5", "dotenv": "^16.4.5",
+1 -1
View File
@@ -13,7 +13,7 @@
"url": "git+https://github.com/krgamestudios/chat-server.git" "url": "git+https://github.com/krgamestudios/chat-server.git"
}, },
"author": "Kayne Ruse", "author": "Kayne Ruse",
"license": "ISC", "license": "Zlib",
"bugs": { "bugs": {
"url": "https://github.com/krgamestudios/chat-server/issues" "url": "https://github.com/krgamestudios/chat-server/issues"
}, },
+1 -2
View File
@@ -2,11 +2,10 @@ const Sequelize = require('sequelize');
const sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, { const sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, {
host: process.env.DB_HOSTNAME, host: process.env.DB_HOSTNAME,
port: process.env.DB_PORTNAME,
dialect: 'mariadb', dialect: 'mariadb',
timezone: process.env.DB_TIMEZONE, timezone: process.env.DB_TIMEZONE,
logging: process.env.DB_LOGGING ? console.log : false logging: process.env.DB_LOGGING ? console.log : false
}); });
sequelize.sync();
module.exports = sequelize; module.exports = sequelize;
+1
View File
@@ -39,4 +39,5 @@ app.get('*', (req, res) => {
server.listen(process.env.WEB_PORT || 3300, async (err) => { server.listen(process.env.WEB_PORT || 3300, async (err) => {
await database.sync(); await database.sync();
console.log(`listening to localhost:${process.env.WEB_PORT || 3300}`); console.log(`listening to localhost:${process.env.WEB_PORT || 3300}`);
console.log(`database located at ${process.env.DB_HOSTNAME || '<default>'}:${process.env.DB_PORTNAME || '<default>'}`);
}); });