diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..68b39e280 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,16 @@ +.circleci +**/node_modules +test-queries +.editorconfig +.gitignore +.git +Contributing.md +ISSUE_TEMPLATE.md +lerna.json +LICENSE +package-lock.json +package.json +.env.example +.eslintrc.json +.mocharc.js +readme.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..5336e21f6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM node:14.15.4-alpine3.10@sha256:fe215d05cdde4b7f2a0f546c88a8ddc4f5fa280a204acdfc2383afe901fd6d84 as build + +USER node + +WORKDIR /home/node + +COPY --chown=node packages/ . + +RUN npm --prefix frontend install frontend && \ + npm --prefix frontend run build + +FROM node:14.15.4-alpine3.10@sha256:fe215d05cdde4b7f2a0f546c88a8ddc4f5fa280a204acdfc2383afe901fd6d84 + +ENV NODE_ENV production + +RUN mkdir -p frontend/dist server + +COPY --from=build /home/node/frontend/dist frontend/dist +COPY --chown=node packages/server server + +RUN npm --prefix server install server + +USER node + +WORKDIR /home/node/server + +CMD ["node", "bin/www"] \ No newline at end of file diff --git a/packages/server/app.js b/packages/server/app.js index d6ff2122b..d22700eef 100644 --- a/packages/server/app.js +++ b/packages/server/app.js @@ -3,7 +3,6 @@ const http = require( 'http' ) const url = require( 'url' ) -const WebSocket = require( 'ws' ) const express = require( 'express' ) const compression = require( 'compression' ) const appRoot = require( 'app-root-path' ) diff --git a/packages/server/package-lock.json b/packages/server/package-lock.json index 75ea7b010..214e4bdab 100644 --- a/packages/server/package-lock.json +++ b/packages/server/package-lock.json @@ -2082,7 +2082,6 @@ "version": "1.17.4", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz", "integrity": "sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==", - "dev": true, "requires": { "@types/node": "*" } @@ -5894,8 +5893,7 @@ "follow-redirects": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" }, "for-in": { "version": "1.0.2", @@ -6949,7 +6947,6 @@ "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, "requires": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -6959,8 +6956,7 @@ "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" } } }, @@ -7004,7 +7000,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.6.tgz", "integrity": "sha512-NyL6ZB6cVni7pl+/IT2W0ni5ME00xR0sN27AQZZrpKn1b+qRh+mLbBxIq9Cq1oGfmTc7BUq4HB77mxwCaxAYNg==", - "dev": true, "requires": { "@types/http-proxy": "^1.17.4", "http-proxy": "^1.18.1", @@ -7017,7 +7012,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -7026,7 +7020,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -7034,14 +7027,12 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -7051,7 +7042,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -10060,8 +10050,7 @@ "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "3.0.0", @@ -10735,8 +10724,7 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { "version": "1.19.0", diff --git a/packages/server/package.json b/packages/server/package.json index 5fa4bad89..0aeb4aa4b 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -56,7 +56,8 @@ "pg": "^7.18.2", "pg-query-stream": "^3.4.2", "redis": "^3.0.2", - "zxcvbn": "^4.4.2" + "zxcvbn": "^4.4.2", + "http-proxy-middleware": "^1.0.6" }, "devDependencies": { "@apollo/client": "^3.3.6", @@ -71,7 +72,6 @@ "cross-env": "^7.0.3", "cz-conventional-changelog": "^3.1.0", "eslint": "^7.16.0", - "http-proxy-middleware": "^1.0.6", "lerna": "^3.22.1", "mocha": "^7.2.0", "node-fetch": "^2.6.1",