From 266cf4070f4946cb78c8571ebdb5653126ff1025 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 3 Apr 2021 01:08:10 +1100 Subject: [PATCH 01/15] Added docker publishing --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index fbb4102..2bfef8a 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,10 @@ "scripts": { "start": "node server/server.js", "dev": "npm run watch:server", - "watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'" + "watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'", + "docker": "npm run docker:build && npm run docker:push", + "docker:build": "docker build . --platform amd64 --platform arm --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", + "docker:push": "docker push docker.krgamestudios.com/krgamestudios/03-chat:latest" }, "repository": { "type": "git", From 028766c82bdef688e9037fa578ee7c7c1c1d6082 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 3 Apr 2021 01:42:37 +1100 Subject: [PATCH 02/15] Working on multiplatform things --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2bfef8a..fd9f0a6 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "npm run watch:server", "watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'", "docker": "npm run docker:build && npm run docker:push", - "docker:build": "docker build . --platform amd64 --platform arm --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", + "docker:build": "docker buildx build . --platform amd64 --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", "docker:push": "docker push docker.krgamestudios.com/krgamestudios/03-chat:latest" }, "repository": { From 7b85bb1aeb6af61687de7197099009e5c4e53038 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 3 Apr 2021 01:59:30 +1100 Subject: [PATCH 03/15] Formatting errors --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index fd9f0a6..360f5b9 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "start": "node server/server.js", "dev": "npm run watch:server", "watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'", - "docker": "npm run docker:build && npm run docker:push", - "docker:build": "docker buildx build . --platform amd64 --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", - "docker:push": "docker push docker.krgamestudios.com/krgamestudios/03-chat:latest" + "docker": "npm run docker:build && npm run docker:push", + "docker:build": "docker buildx build . --platform amd64 --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", + "docker:push": "docker push docker.krgamestudios.com/krgamestudios/03-chat:latest" }, "repository": { "type": "git", From ee5394f895cc1f0de8e09d1fe032e9507c805df3 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 3 Apr 2021 02:11:21 +1100 Subject: [PATCH 04/15] Tweaked Dockerfile --- Dockerfile | 3 +-- configure-script.js | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index e3b5a4f..161a2ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,8 @@ FROM node:15 WORKDIR "/app" COPY package*.json ./ -RUN npm install --production COPY . /app EXPOSE 3300 USER node ENTRYPOINT ["bash", "-c"] -CMD ["sleep 10 && npm start"] +CMD ["npm install --production && sleep 10 && npm start"] diff --git a/configure-script.js b/configure-script.js index 24d6b79..2fc06a1 100644 --- a/configure-script.js +++ b/configure-script.js @@ -111,12 +111,11 @@ networks: FROM node:15 WORKDIR "/app" COPY package*.json ./ -RUN npm install --production COPY . /app EXPOSE ${appPort} USER node ENTRYPOINT ["bash", "-c"] -CMD ["sleep 10 && npm start"] +CMD ["npm install --production && sleep 10 && npm start"] `; const sqlfile = ` From 928c76fc84c13e95dd607292a1fa88e9b9e1f621 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 3 Apr 2021 02:35:00 +1100 Subject: [PATCH 05/15] Tweaked Dockerfile --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 161a2ad..678c7fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,8 @@ FROM node:15 WORKDIR "/app" COPY package*.json ./ COPY . /app +RUN "npm install --production" EXPOSE 3300 USER node ENTRYPOINT ["bash", "-c"] -CMD ["npm install --production && sleep 10 && npm start"] +CMD ["sleep 10 && npm start"] From b503df3399a6eac91aa9e35abdfdd0e9b4ad7198 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 3 Apr 2021 03:26:59 +1100 Subject: [PATCH 06/15] Funky config stuff gives me a headache --- Dockerfile | 2 +- configure-script.js | 3 ++- package.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 678c7fb..cadc485 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM node:15 WORKDIR "/app" COPY package*.json ./ COPY . /app -RUN "npm install --production" +RUN npm install --production EXPOSE 3300 USER node ENTRYPOINT ["bash", "-c"] diff --git a/configure-script.js b/configure-script.js index 2fc06a1..81e61d0 100644 --- a/configure-script.js +++ b/configure-script.js @@ -112,10 +112,11 @@ FROM node:15 WORKDIR "/app" COPY package*.json ./ COPY . /app +RUN npm install --production EXPOSE ${appPort} USER node ENTRYPOINT ["bash", "-c"] -CMD ["npm install --production && sleep 10 && npm start"] +CMD ["sleep 10 && npm start"] `; const sqlfile = ` diff --git a/package.json b/package.json index 360f5b9..6416a7c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "npm run watch:server", "watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'", "docker": "npm run docker:build && npm run docker:push", - "docker:build": "docker buildx build . --platform amd64 --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", + "docker:build": "docker buildx build . --platform linux/amd64 --tag docker.krgamestudios.com/krgamestudios/03-chat:latest", "docker:push": "docker push docker.krgamestudios.com/krgamestudios/03-chat:latest" }, "repository": { From 37e6c35b9c72a6373585f16a49ab9ec8b29d974d Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Wed, 7 Apr 2021 02:00:33 +1000 Subject: [PATCH 07/15] Ripped out unneeded stuff --- .github/workflows/docker.yml | 39 ---------- LICENSE | 11 --- configure-script.js | 134 ----------------------------------- package-lock.json | 2 +- package.json | 1 - server/server.js | 3 +- 6 files changed, 2 insertions(+), 188 deletions(-) delete mode 100644 .github/workflows/docker.yml delete mode 100644 LICENSE delete mode 100644 configure-script.js diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index f72fa8b..0000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Publish Docker image -on: - release: - types: [ published ] - push: - tags: - - v1.* -jobs: - push_to_registry: - name: Push Docker Image to Docker Hub - runs-on: ubuntu-latest - steps: - - name: Check Out The Repo - uses: actions/checkout@v2 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Get Smart Tag - id: prepare - uses: Surgo/docker-smart-tag-action@v1 - with: - docker_image: krgamestudios/chat-server - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Push to Docker Hub - uses: docker/build-push-action@v2 - with: - push: true - tags: ${{ steps.prepare.outputs.tag }} - platforms: amd64,arm diff --git a/LICENSE b/LICENSE deleted file mode 100644 index be733db..0000000 --- a/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) 2021 Kayne Ruse, KR Game Studios - -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. diff --git a/configure-script.js b/configure-script.js deleted file mode 100644 index 81e61d0..0000000 --- a/configure-script.js +++ /dev/null @@ -1,134 +0,0 @@ -//setup -const readline = require('readline'); -const fs = require('fs'); -const crypto = require("crypto"); - -const uuid = (bytes = 16) => crypto.randomBytes(bytes).toString("hex"); - -const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - terminal: false -}); - -//manually promisify this (util didn't work) -const question = (prompt, def = null) => { - return new Promise((resolve, reject) => { - rl.question(`${prompt}${def ? ` (${def})` : ''}: `, answer => { - //loop on required - if (def === null && !answer) { - return resolve(question(prompt, def)); - } - - return resolve(answer || def); - }); - }); -}; - -//questions -(async () => { - //project configuration - const appName = await question('App Name', 'chat'); - const appWebAddress = await question('Web Addr', `${appName}.example.com`); - const appPort = await question('App Port', '3300'); - - const appDBUser = await question('DB User', appName); - const appDBPass = await question('DB Pass', uuid()); - const dbRootPass = await question('DB Root Pass'); - - const appSecretAccess = await question('Access Token Secret', uuid(32)); - - const supportEmail = await question('Support Email', 'example@example.com'); - - //generate the files - const ymlfile = ` -version: '3' - -services: - ${appName}: - build: - context: . - ports: - - "${appPort}" - labels: - - "traefik.enable=true" - - "traefik.http.routers.${appName}router.rule=Host(\`${appWebAddress}\`)" - - "traefik.http.routers.${appName}router.entrypoints=websecure" - - "traefik.http.routers.${appName}router.tls.certresolver=myresolver" - - "traefik.http.routers.${appName}router.service=${appName}service@docker" - - "traefik.http.services.${appName}service.loadbalancer.server.port=${appPort}" - environment: - - WEB_PORT=${appPort} - - DB_HOSTNAME=database - - DB_DATABASE=${appName} - - DB_USERNAME=${appDBUser} - - DB_PASSWORD=${appDBPass} - - DB_TIMEZONE=Australia/Sydney - - SECRET_ACCESS=${appSecretAccess} - networks: - - app-network - depends_on: - - database - database: - image: mariadb:latest - environment: - MYSQL_DATABASE: ${appName} - MYSQL_USER: ${appDBUser} - MYSQL_PASSWORD: ${appDBPass} - MYSQL_ROOT_PASSWORD: ${dbRootPass} - networks: - - app-network - volumes: - - ./mysql:/var/lib/mysql - - ./startup.sql:/docker-entrypoint-initdb.d/startup.sql:ro - traefik_${appName}: - container_name: ${appName}_traefik - image: "traefik:v2.4" - container_name: "traefik" - command: - - "--log.level=ERROR" - - "--api.insecure=false" - - "--providers.docker=true" - - "--providers.docker.exposedbydefault=false" - - "--entrypoints.websecure.address=:443" - - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - - "--certificatesresolvers.myresolver.acme.email=${supportEmail}" - - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" - ports: - - "80:80" - - "443:443" - volumes: - - "./letsencrypt:/letsencrypt" - - "/var/run/docker.sock:/var/run/docker.sock:ro" - networks: - - app-network -networks: - app-network: - driver: bridge -`; - - const dockerfile = ` -FROM node:15 -WORKDIR "/app" -COPY package*.json ./ -COPY . /app -RUN npm install --production -EXPOSE ${appPort} -USER node -ENTRYPOINT ["bash", "-c"] -CMD ["sleep 10 && npm start"] -`; - - const sqlfile = ` -CREATE DATABASE IF NOT EXISTS ${appName}; -CREATE USER IF NOT EXISTS '${appDBUser}'@'%' IDENTIFIED BY '${appDBPass}'; -GRANT ALL PRIVILEGES ON ${appName}.* TO '${appDBUser}'@'%'; -`; - - fs.writeFileSync('docker-compose.yml', ymlfile); - fs.writeFileSync('Dockerfile', dockerfile); - fs.writeFileSync('startup.sql', sqlfile); -})() - .then(() => rl.close()) - .catch(e => console.error(e)) -; diff --git a/package-lock.json b/package-lock.json index 4083652..fe2fd42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,10 +5,10 @@ "requires": true, "packages": { "": { + "name": "chat-server", "version": "1.0.0", "license": "ISC", "dependencies": { - "body-parser": "^1.19.0", "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", diff --git a/package.json b/package.json index 6416a7c..681a8d1 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ }, "homepage": "https://github.com/krgamestudios/chat-server#readme", "dependencies": { - "body-parser": "^1.19.0", "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", diff --git a/server/server.js b/server/server.js index 6d5f840..2d07610 100644 --- a/server/server.js +++ b/server/server.js @@ -10,11 +10,10 @@ const io = require('socket.io')(server, { origin: '*' } }); -const bodyParser = require('body-parser'); const cors = require('cors'); //config -app.use(bodyParser.json()); +app.use(express.json()); app.use(cors()); //database connection From 85564657967db70006bdf04013d0c121b2a4247b Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 10 Apr 2021 04:59:24 +1000 Subject: [PATCH 08/15] Tweaked package.json --- package.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 681a8d1..cbbb98b 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "chat-server", + "name": "03-chat", "version": "1.0.0", "description": "An API centric chat server. Uses Sequelize and mariaDB by default.", "main": "server/server.js", @@ -13,14 +13,10 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/krgamestudios/chat-server.git" + "url": "https://gitea.krgamestudios.com/krgamestudios/03-chat.git" }, "author": "Kayne Ruse", "license": "ISC", - "bugs": { - "url": "https://github.com/krgamestudios/chat-server/issues" - }, - "homepage": "https://github.com/krgamestudios/chat-server#readme", "dependencies": { "cors": "^2.8.5", "dotenv": "^8.2.0", From 14c4f52a93a55a84db3aa334902b573345690171 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 16 Apr 2021 13:24:38 +1000 Subject: [PATCH 09/15] Added .dockerignore --- .dockerignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c82437f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.git + +tools \ No newline at end of file From e077d4b2d55484d7bfd00e48b836addcde5c0562 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 16 Apr 2021 16:25:24 +1000 Subject: [PATCH 10/15] Updated .dockerignore --- .dockerignore | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index c82437f..8d8dcf6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,5 @@ -.git +.git* -tools \ No newline at end of file +tools* +mysql* +letsencrypt* From 254e5f2d18d94ea626b0d20345e176592b2887b4 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Mon, 19 Apr 2021 06:05:27 +1000 Subject: [PATCH 11/15] Updated packages --- package-lock.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe2fd42..1ce7377 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,10 @@ { - "name": "chat-server", + "name": "03-chat", "version": "1.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "chat-server", "version": "1.0.0", "license": "ISC", "dependencies": { @@ -392,7 +391,6 @@ "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", From 0e88c9e64c103db11e52b962bbe2fb123ecbf259 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Tue, 20 Apr 2021 18:50:39 +1000 Subject: [PATCH 12/15] Updated modules --- package-lock.json | 100 +++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1ce7377..43d531c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,9 +62,9 @@ "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" }, "node_modules/@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + "version": "14.14.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz", + "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -173,9 +173,9 @@ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -191,9 +191,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/base64-arraybuffer": { @@ -1339,19 +1339,19 @@ } }, "node_modules/mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "dependencies": { - "mime-db": "1.46.0" + "mime-db": "1.47.0" }, "engines": { "node": ">= 0.6" @@ -1565,9 +1565,9 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "dev": true, "engines": { "node": ">=8.6" @@ -1915,9 +1915,9 @@ "dev": true }, "node_modules/socket.io": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.0.0.tgz", - "integrity": "sha512-/c1riZMV/4yz7KEpaMhDQbwhJDIoO55whXaRKgyEBQrLU9zUHXo9rzeTMvTOqwL9mbKfHKdrXcMoCeQ/1YtMsg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz", + "integrity": "sha512-g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==", "dependencies": { "@types/cookie": "^0.4.0", "@types/cors": "^2.8.8", @@ -2275,9 +2275,9 @@ } }, "node_modules/ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", "engines": { "node": ">=8.3.0" }, @@ -2346,9 +2346,9 @@ "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" }, "@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + "version": "14.14.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz", + "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==" }, "abbrev": { "version": "1.1.1", @@ -2435,9 +2435,9 @@ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -2450,9 +2450,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "base64-arraybuffer": { @@ -3352,16 +3352,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "requires": { - "mime-db": "1.46.0" + "mime-db": "1.47.0" } }, "mimic-response": { @@ -3523,9 +3523,9 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "dev": true }, "please-upgrade-node": { @@ -3788,9 +3788,9 @@ "dev": true }, "socket.io": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.0.0.tgz", - "integrity": "sha512-/c1riZMV/4yz7KEpaMhDQbwhJDIoO55whXaRKgyEBQrLU9zUHXo9rzeTMvTOqwL9mbKfHKdrXcMoCeQ/1YtMsg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz", + "integrity": "sha512-g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==", "requires": { "@types/cookie": "^0.4.0", "@types/cors": "^2.8.8", @@ -4061,9 +4061,9 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", "requires": {} }, "xdg-basedir": { From 370d7905eb5aabab2ec983196d6a488d3c45ac05 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 23 Apr 2021 21:20:22 +1000 Subject: [PATCH 13/15] Renaming database primary key --- server/admin/reports-delete.js | 2 +- server/admin/reports.js | 4 ++-- server/chat/index.js | 6 +++--- server/database/models/chatlog.js | 2 +- server/database/models/reports.js | 8 +++++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/server/admin/reports-delete.js b/server/admin/reports-delete.js index 4a29ea1..7f52937 100644 --- a/server/admin/reports-delete.js +++ b/server/admin/reports-delete.js @@ -4,7 +4,7 @@ const { chatlog, reports } = require('../database/models'); const route = async (req, res) => { const reps = await reports.destroy({ where: { - chatlogId: req.body.chatlogId + chatlogIndex: req.body.chatlogIndex } }); diff --git a/server/admin/reports.js b/server/admin/reports.js index 7370f2d..8d2705a 100644 --- a/server/admin/reports.js +++ b/server/admin/reports.js @@ -7,14 +7,14 @@ const route = async (req, res) => { model: chatlog, required: true }], - order: ['chatlogId'] + order: ['chatlogIndex'] }); //collate const response = []; for(let i = 0; i < reps.length; i++) { //new chatlog - if (response.length == 0 || response[response.length - 1].chatlogId != reps[i].chatlogId) { + if (response.length == 0 || response[response.length - 1].chatlogIndex != reps[i].chatlogIndex) { response.push(reps[i]); response[response.length - 1].reporter = [response[response.length - 1].reporter]; //reporters in an array continue; diff --git a/server/chat/index.js b/server/chat/index.js index de4be2a..09a5edd 100644 --- a/server/chat/index.js +++ b/server/chat/index.js @@ -72,7 +72,7 @@ const chat = io => { } }, order: [ - ['id', 'DESC'] + ['index', 'DESC'] ], limit: 50 }) @@ -140,14 +140,14 @@ const chat = io => { socket.on('report', info => { //handle reports of malicious content - if (!info.id) { + if (!info.index) { return; } //report reports.create({ reporter: socket.user.username, - chatlogId: info.id + chatlogIndex: info.index }); }); }); diff --git a/server/database/models/chatlog.js b/server/database/models/chatlog.js index 081a317..c694c7b 100644 --- a/server/database/models/chatlog.js +++ b/server/database/models/chatlog.js @@ -2,7 +2,7 @@ const Sequelize = require('sequelize'); const sequelize = require('..'); module.exports = sequelize.define('chatlog', { - id: { + index: { type: Sequelize.INTEGER(11), allowNull: false, autoIncrement: true, diff --git a/server/database/models/reports.js b/server/database/models/reports.js index d4239b6..353c9bc 100644 --- a/server/database/models/reports.js +++ b/server/database/models/reports.js @@ -4,7 +4,7 @@ const sequelize = require('..'); const chatlog = require('./chatlog'); const reports = sequelize.define('reports', { - id: { + index: { type: Sequelize.INTEGER(11), allowNull: false, autoIncrement: true, @@ -18,7 +18,9 @@ const reports = sequelize.define('reports', { }, }); -chatlog.hasMany(reports, { foreignKey: 'chatlogId', foreignKeyConstraint: true }); -reports.belongsTo(chatlog, { foreignKey: 'chatlogId' }); +chatlog.hasMany(reports, { foreignKey: 'chatlogIndex', foreignKeyConstraint: true }); +reports.belongsTo(chatlog, { foreignKey: 'chatlogIndex' }); + +sequelize.sync(); module.exports = reports; \ No newline at end of file From 488b932282a336ea3d8a6861a02d9077c70e2827 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Wed, 28 Apr 2021 21:29:08 +1000 Subject: [PATCH 14/15] Updated packages --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43d531c..3f65032 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,9 +62,9 @@ "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" }, "node_modules/@types/node": { - "version": "14.14.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz", - "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==" + "version": "14.14.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.43.tgz", + "integrity": "sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -2346,9 +2346,9 @@ "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" }, "@types/node": { - "version": "14.14.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz", - "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==" + "version": "14.14.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.43.tgz", + "integrity": "sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ==" }, "abbrev": { "version": "1.1.1", From 31d19df4a533d9adf71ce404cb78b55b14695a8f Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 23 Jul 2021 19:12:53 +1000 Subject: [PATCH 15/15] Updated .dockerignore --- .dockerignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.dockerignore b/.dockerignore index 8d8dcf6..3b0902b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,3 +3,5 @@ tools* mysql* letsencrypt* + +.env* \ No newline at end of file