diff --git a/.dockerignore b/.dockerignore
index 4004b64..2b3aa56 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,4 +1,7 @@
-/Server/.env
-/Server/public
-/Server/node_modules
-/UI/node_modules
\ No newline at end of file
+Server/.env
+Server/public/
+.git/
+
+*/node_modules/
+UI/node_modules/
+Server/node_modules/
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 821c86f..38ec879 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,13 @@
FROM node:10 AS builder
-ENV NODE_ENV production
-RUN npm i -g yarn
-COPY . /src
-RUN cd /src/UI && yarn && yarn build && cd /src/Server && yarn && mkdir public && mv /src/UI/build/* public
+# ENV NODE_ENV production
+COPY ./UI /src/UI
+RUN cd /src/UI && yarn && yarn build
+
+COPY ./Server /src/Server
+RUN cd /src/Server && yarn
+
+RUN cp -r /src/UI/build /src/Server/public
+
FROM mhart/alpine-node:10
ENV NODE_ENV production
diff --git a/Server/index.js b/Server/index.js
index ed12176..040893d 100644
--- a/Server/index.js
+++ b/Server/index.js
@@ -25,7 +25,7 @@ Array.prototype.filterNot = Array.prototype.filterNot || function (predicate) {
// Create the server and socket.io server
const server = http.createServer(app.callback())
-const io = _io(server, { transports: ['websocket'], path: '/api/socket.io', wsEngine: 'uws' })
+const io = _io(server, { transports: ['websocket'], path: '/api/socket.io' })
const M = new Roleypoly(router, io, app) // eslint-disable-line no-unused-vars
@@ -47,19 +47,20 @@ async function start () {
// SPA + Static
if (process.env.NODE_ENV === 'production') {
const pub = path.join(__dirname, 'public')
+ log.info('public path', pub)
const staticFiles = require('koa-static')
- app.use(staticFiles(pub, { defer: true }))
- const send = require('koa-send')
- app.use(async (ctx, next) => {
- if (ctx.path.startsWith('/api')) {
- return next()
- }
+ // const send = require('koa-send')
+ // app.use(async (ctx, next) => {
+ // if (ctx.path.startsWith('/api')) {
+ // return next()
+ // }
- await next()
- send(ctx, 'index.html', { root: pub })
- })
+ // // await next()
+ // // send(ctx, 'index.html', { root: pub })
+ // })
+ app.use(staticFiles(pub, { defer: true, gzip: true, br: true }))
}
// Request logger
diff --git a/Server/package.json b/Server/package.json
index 53edc16..8ef37d7 100644
--- a/Server/package.json
+++ b/Server/package.json
@@ -9,6 +9,7 @@
"pm2": "pm2"
},
"dependencies": {
+ "@discordjs/uws": "^11.149.1",
"chalk": "^2.4.1",
"discord.js": "^11.4.2",
"dotenv": "^6.1.0",
@@ -17,22 +18,21 @@
"eslint-config-standard": "^12.0.0",
"glob": "^7.1.3",
"immutable": "^3.8.2",
- "koa": "^2.6.1",
+ "koa": "^2.6.2",
"koa-better-router": "^2.1.1",
"koa-bodyparser": "^4.2.1",
+ "koa-compress": "^3.0.0",
"koa-send": "^5.0.0",
"koa-session": "^5.10.0",
- "koa-compress": "^3.0.0",
"koa-static": "^5.0.0",
"ksuid": "^1.1.3",
"lru-cache": "^4.1.3",
- "pg": "^7.6.0",
+ "pg": "^7.6.1",
"pg-hstore": "^2.3.2",
- "pm2": "^2.9.3",
- "sequelize": "^4.41.0",
- "socket.io": "^2.1.1",
- "superagent": "^4.0.0-beta.5",
- "uuid": "^3.3.2",
- "uws": "10.148.1"
+ "pm2": "^2.10.4",
+ "sequelize": "^4.41.2",
+ "socket.io": "^2.2.0",
+ "superagent": "^4.0.0",
+ "uuid": "^3.3.2"
}
}
diff --git a/Server/yarn.lock b/Server/yarn.lock
index e5dc82b..5f69084 100644
--- a/Server/yarn.lock
+++ b/Server/yarn.lock
@@ -18,6 +18,11 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
+"@discordjs/uws@^11.149.1":
+ version "11.149.1"
+ resolved "https://registry.yarnpkg.com/@discordjs/uws/-/uws-11.149.1.tgz#2e86f2825f43bed43d2e69eaf30a07d2dd8e8946"
+ integrity sha512-TmbwZaeXDSCq0ckmf2q10Fkt1220gu9AZJ/UvtQjsi2jyJDjy0i0OwL4/eb3vc9Cwr0mpC9EbfzltQ2si0qUiQ==
+
"@types/geojson@^1.0.0":
version "1.0.6"
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf"
@@ -329,10 +334,10 @@ buffer-from@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-buffer-writer@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08"
- integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg=
+buffer-writer@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
+ integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
buffer@^5.1.0:
version "5.2.1"
@@ -658,7 +663,7 @@ debug@^3, debug@^3.0, debug@^3.1.0:
dependencies:
ms "^2.1.1"
-debug@^4.0.0, debug@^4.0.1:
+debug@^4.0.0, debug@^4.0.1, debug@~4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
@@ -806,10 +811,10 @@ emitter-listener@^1.1.1:
dependencies:
shimmer "^1.2.0"
-engine.io-client@~3.2.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
- integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==
+engine.io-client@~3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.1.tgz#afedb4a07b2ea48b7190c3136bfea98fdd4f0f03"
+ integrity sha512-q66JBFuQcy7CSlfAz9L3jH+v7DTT3i6ZEadYcVj2pOs8/0uJHLxKX3WBkGTvULJMdz0tUCyJag0aKT/dpXL9BQ==
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
@@ -819,7 +824,7 @@ engine.io-client@~3.2.0:
indexof "0.0.1"
parseqs "0.0.5"
parseuri "0.0.5"
- ws "~3.3.1"
+ ws "~6.1.0"
xmlhttprequest-ssl "~1.5.4"
yeast "0.1.2"
@@ -834,17 +839,17 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
blob "0.0.5"
has-binary2 "~1.0.2"
-engine.io@~3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
- integrity sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==
+engine.io@~3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.1.tgz#e076d9d2d6c075dda4623253b80fa045c81dd3a4"
+ integrity sha512-p0njqQo5QWVxJauKcnp5IO+LBeE5JD1tAf+UxPU8ASEUHSpsSSfYR+kVb8XGGH8AEDUa1Dk5jCvPQShNBL5BdQ==
dependencies:
accepts "~1.3.4"
base64id "1.0.0"
cookie "0.3.1"
debug "~3.1.0"
engine.io-parser "~2.1.0"
- ws "~3.3.1"
+ ws "~6.1.0"
"erlpack@github:discordapp/erlpack":
version "0.1.0"
@@ -1855,10 +1860,10 @@ koa-static@^5.0.0:
debug "^3.1.0"
koa-send "^5.0.0"
-koa@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/koa/-/koa-2.6.1.tgz#88cabb18cd297e0577a37e40f400c4b6f1699fef"
- integrity sha512-n9R5Eex4y0drUeqFTeCIeXyz8wjr2AxBo2Cq8LvmiXbJl4yDA5KIrecMPkhnmgACZnPXMRyCLbJoyLmpM9aFAw==
+koa@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/koa/-/koa-2.6.2.tgz#57ba4d049b0a99cae0d594e6144e2931949a7ce1"
+ integrity sha512-KdnBFhTgh9ysMMoYe4J4fLvaKjT7mF3nRYV8MjxLzx6qywFNeptqi4xevyUltg1fZl2CFJ+HeLXuCGx07Yvl/A==
dependencies:
accepts "^1.3.5"
cache-content-type "^1.0.0"
@@ -2405,12 +2410,12 @@ pg-types@~1.12.1:
postgres-date "~1.0.0"
postgres-interval "^1.1.0"
-pg@^7.6.0:
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/pg/-/pg-7.6.0.tgz#0c9ecaf0ce6f3c7e3c68ce8f621df79e741a89e3"
- integrity sha512-INUjsobS7O0Slad6fVlSSSVpMd5wozwtdSrWL5/JfEGYCWtPwgka0uQOf2KCo7QbWUmwefcuNQtzijeztDquQg==
+pg@^7.6.1:
+ version "7.6.1"
+ resolved "https://registry.yarnpkg.com/pg/-/pg-7.6.1.tgz#42c68aed37bf38b813616e3d21f4338f350c1b79"
+ integrity sha512-rAItIkYrRaNGinZN/Hs8F9R5mQjQSPlnzxPF+eCimSl92qnuNGR42gkpOQKP1bnvTwkSjRTBL+VNC5EcFhtCuQ==
dependencies:
- buffer-writer "1.0.1"
+ buffer-writer "2.0.0"
packet-reader "0.3.1"
pg-connection-string "0.1.3"
pg-pool "~2.0.3"
@@ -2484,7 +2489,7 @@ pm2-multimeter@^0.1.2:
dependencies:
charm "~0.1.1"
-pm2@^2.9.3:
+pm2@^2.10.4:
version "2.10.4"
resolved "https://registry.yarnpkg.com/pm2/-/pm2-2.10.4.tgz#dd292fd26aed882f6e9f7b9652191387d2debe6a"
integrity sha512-AuAA6DoF/R3L9zSuYtKzaEd6UFvhCKqfW49dgLe0Q4SQtYmQMmXmyEAp5tr1iduJrqGRwpb5ytVm2rWZ56/4Vg==
@@ -2805,10 +2810,10 @@ semver@5.*, semver@^5.0.1, semver@^5.3, semver@^5.3.0, semver@^5.5.0, semver@^5.
resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
-sequelize@^4.41.0:
- version "4.41.0"
- resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.41.0.tgz#fa24ac0471e398090b55b302579240ed58e0b54a"
- integrity sha512-6zCYxjPriUBgLQ5dN4ZxC5eadUtRu2tHFoBiSU9vNGb6G3f4bZM6vFpJu0DhxeeyhodTAXqY1GaBpZzT3PXB/Q==
+sequelize@^4.41.2:
+ version "4.41.2"
+ resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.41.2.tgz#bb9ba30d72e9eeb883c9861cd0e2cac672010883"
+ integrity sha512-8vPf2R0o9iEmtzkqNzwFdblO+0Mu+RNxOdLeYGGqWGlp3cushLpQucAeSGPQgf2hQVZP5yOCM1ouZKTQ5FTlvA==
dependencies:
bluebird "^3.5.0"
cls-bluebird "^2.1.0"
@@ -2943,46 +2948,46 @@ socket.io-adapter@~1.1.0:
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=
-socket.io-client@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f"
- integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==
+socket.io-client@2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7"
+ integrity sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==
dependencies:
backo2 "1.0.2"
base64-arraybuffer "0.1.5"
component-bind "1.0.0"
component-emitter "1.2.1"
debug "~3.1.0"
- engine.io-client "~3.2.0"
+ engine.io-client "~3.3.1"
has-binary2 "~1.0.2"
has-cors "1.1.0"
indexof "0.0.1"
object-component "0.0.3"
parseqs "0.0.5"
parseuri "0.0.5"
- socket.io-parser "~3.2.0"
+ socket.io-parser "~3.3.0"
to-array "0.1.4"
-socket.io-parser@~3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
- integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==
+socket.io-parser@~3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f"
+ integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==
dependencies:
component-emitter "1.2.1"
debug "~3.1.0"
isarray "2.0.1"
-socket.io@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980"
- integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==
+socket.io@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b"
+ integrity sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==
dependencies:
- debug "~3.1.0"
- engine.io "~3.2.0"
+ debug "~4.1.0"
+ engine.io "~3.3.1"
has-binary2 "~1.0.2"
socket.io-adapter "~1.1.0"
- socket.io-client "2.1.1"
- socket.io-parser "~3.2.0"
+ socket.io-client "2.2.0"
+ socket.io-parser "~3.3.0"
source-map-resolve@^0.5.0:
version "0.5.2"
@@ -3107,10 +3112,10 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-superagent@^4.0.0-beta.5:
- version "4.0.0-beta.5"
- resolved "https://registry.yarnpkg.com/superagent/-/superagent-4.0.0-beta.5.tgz#441a89214113515e87d2f545fc8dd08aaa30cb29"
- integrity sha512-v4FTm6kg6zJOfLcot9kCTcWy/wjD/hvtUXWcv0Pd8TlUqxKDctif2rtDPRb4gW6Df9MMXU1BHB+1z5U2VFVsYg==
+superagent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/superagent/-/superagent-4.0.0.tgz#b9de499c0363acb53879cc42bd14ec26751050bb"
+ integrity sha512-qaGDf+QUYxgMYdJBWCezHnc3UjrCUwxm5bCfxBhTXI5BbCluVzmVNYzxvCw1jP9PXmwUZeOW2yPpGm9fLbhtFg==
dependencies:
component-emitter "^1.2.0"
cookiejar "^2.1.2"
@@ -3280,11 +3285,6 @@ uid-safe@^2.1.3:
dependencies:
random-bytes "~1.0.0"
-ultron@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
- integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
-
underscore@^1.7.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
@@ -3345,11 +3345,6 @@ uuid@^3.0.1, uuid@^3.2.1, uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
-uws@10.148.1:
- version "10.148.1"
- resolved "https://registry.yarnpkg.com/uws/-/uws-10.148.1.tgz#fd1a79cf6118a388e0a1bed8a1397030d2c4fd2c"
- integrity sha1-/Rp5z2EYo4jgob7YoTlwMNLE/Sw=
-
v8-compile-cache@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4"
@@ -3435,14 +3430,12 @@ ws@^4.0.0:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
-ws@~3.3.1:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
- integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
+ws@~6.1.0:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"
+ integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==
dependencies:
async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
- ultron "~1.1.0"
xmlhttprequest-ssl@~1.5.4:
version "1.5.5"
diff --git a/UI/package.json b/UI/package.json
index d4361ef..7b7fa46 100644
--- a/UI/package.json
+++ b/UI/package.json
@@ -8,13 +8,13 @@
"immutable": "^3.8.2",
"moment": "^2.22.2",
"prop-types": "^15.6.2",
- "react": "^16.6.0",
+ "react": "^16.6.3",
"react-custom-scrollbars": "^4.2.1",
- "react-dnd": "^2.5.4",
- "react-dnd-html5-backend": "^2.5.4",
- "react-dom": "^16.6.0",
+ "react-dnd": "^7.0.0",
+ "react-dnd-html5-backend": "^7.0.0",
+ "react-dom": "^16.6.3",
"react-immutable-proptypes": "^2.1.0",
- "react-redux": "^5.1.0",
+ "react-redux": "^5.1.1",
"react-router": "^4.3.1",
"react-router-dom": "^4.3.1",
"react-router-redux": "^5.0.0-alpha.8",
@@ -24,7 +24,7 @@
"redux": "^4.0.1",
"redux-logger": "^3.0.6",
"redux-thunk": "^2.3.0",
- "superagent": "^4.0.0-beta.5",
+ "superagent": "^4.0.0",
"uuid": "^3.3.2"
},
"scripts": {
diff --git a/UI/public/index.html b/UI/public/index.html
index a47557f..646764e 100644
--- a/UI/public/index.html
+++ b/UI/public/index.html
@@ -7,9 +7,9 @@
Roleypoly
-
-
-
+
+
+