Skip to content

Commit

Permalink
chore: add https support for webpack|express servers in dev
Browse files Browse the repository at this point in the history
- use local.uxscoreboard instead of localhost for www
- use local.api.uxscoreboard instead of localhostt for api
  • Loading branch information
asapzacy committed Mar 2, 2020
1 parent b7b0517 commit cf8c354
Show file tree
Hide file tree
Showing 10 changed files with 158 additions and 27 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
.env
.DS_Store

.ssl/
.vscode/

yarn-error.log
Expand Down
23 changes: 23 additions & 0 deletions .ssl/local.api.uxscoreboard.cert
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIIDyzCCArOgAwIBAgIJAO/aHkUKHjPwMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
BAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5kaXNjbzENMAsG
A1UECgwEYXNhcDESMBAGA1UEAwwJbG9jYWxob3N0MSUwIwYJKoZIhvcNAQkBFhZ6
YWNkYXJlbGxhbm9AZ21haWwuY29tMB4XDTIwMDMwMTAwMzYzOFoXDTIwMDMzMTAw
MzYzOFowfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4g
RnJhbmRpc2NvMQ0wCwYDVQQKDARhc2FwMRIwEAYDVQQDDAlsb2NhbGhvc3QxJTAj
BgkqhkiG9w0BCQEWFnphY2RhcmVsbGFub0BnbWFpbC5jb20wggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDCxJGktbSI0xcfuhjhjfTgd0jHPQaJYzHfEDke
pqnDzVQxjB3I3hPsPqrPbr4eOeYM2OKYf+UjMEPi2imzVzSEbLRhRctugPc9Ns7f
dx84sx7uZWKTNbYNkVcXWJ3QHsk6Mn4PopUGP5V78Yszw7zht6Rtn6/dWXxCs1on
wr6fYT76Tw4OP4z1huPOEGMs240FXb6GA/Jv2RFNS9v0AOxYbJs+WNBtuMmViBZr
7f+pZPZjoGVL7ph0KNJFd4q8PwsEaUPF61eC+7WxugbCZZuRMhcF0jKkOs5qJeFY
FVoWVd1IBPsJOrJbnRZA2L8Zs9WiZfn8Tv8aLbWTUIaNUElXAgMBAAGjUDBOMB0G
A1UdDgQWBBRg3HDhwEH1MagRk/QhBL28IRVp5zAfBgNVHSMEGDAWgBRg3HDhwEH1
MagRk/QhBL28IRVp5zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCh
6tzrU9jE5VPyU0NA7LCC8fci2Muuck5CcI9ykiKT7kqICu3KTyJCR5O1JnHA2kzZ
C8S5+DuPUubexbtL6/DDde8sb6D2hz61L1gl4ykyOkCzPCMbrrL6GeFGn0Sh1Z3T
FImxQfnla8hUPcwlBLV5iYUgr+m/f1BLao2m2B3q+n7nfvQSj9/w31yckTvqYDv8
ZZW74ncud64quzEgM631mqp4mnG6pbsmuo2gN+pELHqQMefapOfk+wBHFKEj6fy/
bRKa7otF25ouzwfT5rtd81TEQu3daWPXcbqH6my81k36FUB061B52omYKI75urbL
ZBqUGnholNkdaMS7dIiF
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions .ssl/local.api.uxscoreboard.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCxJGktbSI0xcf
uhjhjfTgd0jHPQaJYzHfEDkepqnDzVQxjB3I3hPsPqrPbr4eOeYM2OKYf+UjMEPi
2imzVzSEbLRhRctugPc9Ns7fdx84sx7uZWKTNbYNkVcXWJ3QHsk6Mn4PopUGP5V7
8Yszw7zht6Rtn6/dWXxCs1onwr6fYT76Tw4OP4z1huPOEGMs240FXb6GA/Jv2RFN
S9v0AOxYbJs+WNBtuMmViBZr7f+pZPZjoGVL7ph0KNJFd4q8PwsEaUPF61eC+7Wx
ugbCZZuRMhcF0jKkOs5qJeFYFVoWVd1IBPsJOrJbnRZA2L8Zs9WiZfn8Tv8aLbWT
UIaNUElXAgMBAAECggEAUzfuCvRgeP3IqZO4QdeHw8jz3b1jZ5xsmKSz4zbO3oyC
5tC5gTPyS0TTcuIcdYnDk8Wvu/0ZiJl8yBbzLl+aXuKbh9xseYC9IviiF7UsL+vI
0Y+cOM4ARXfOQHlqpJwi2qzsU/3hstPEKTshgTKnJ8JxjS1n1SoA//bmFIsPK8WA
caO6apGyNesngP7GqZCHEZ6dbgWhY20OcfAUXFA4C6jzOaFEQQY/OG0uipMunTQ4
Z5v3o+EmsllE/Jg0IqaFxSmnJCSgm1a/gBa/EGU+VfkXrRWBXao9lh6UPOgvTbiF
1dW668ULVQmTkQd9c/AvYHBT36/maMd+goig61gskQKBgQDhevWfXsyMFk8qvgVH
78NLymWqzePSmgfw4PMIIgVicafeEYPHn7JxcvKTkou7AGdoSUYeLRnCJI+fm3Cs
y5aq02XQbCqliHwEUqwIbnGfb5sv73frPPQwN/FsavOtYgL5JJ0ATTdtgfMITk82
fCzHqJvJaugk58K4YFPl2Xv99QKBgQDdIWcJE4Af3hb/xGFEAoAoyGIwrQkStzRp
g+R7IyRKlWl93oP7DWAsX9VHPoR3q4rqWW4yRxFx17nlgVVIODLW+EhAhZUiiaKS
Y85tI6k/9Iq6fXKX02nXL3FEdYLWBywKdYswM94M03nQj6U/l7dnowPDs9VYGOAg
H0QNOH2umwKBgFB+eNkgGp2YCUMU+wWnTmzsIEdNoRs56cPQSnKI0qtGL8tTLVxC
Yo2ln3uXQVLM3h2YqvNy3lM0giFUeHD3bR4mwZ4aP09A3iUc7lVEOEPWr+v47TKJ
XBMqpYEy3TL0XmNa8sF8z2DEl2JLsnOc+M9+Hb9V7vHd2uG/YbQYY+9RAoGASz/4
rjACo9WSAgu0Bc7MChTWxTW9Jq9NmLKXaAf3a6IYugqk4yQUHEWocIwnzAmGRmWU
iGuC1jjRO/adLOxi8KChBcPvkkdAGYz5TE6cY/U12GykOGJrXBz68I8ErQzXwd9q
NEcSQ08b3wti8pcQhKYGu+xQp6AfdQ7uu4kDzA0CgYEAn2XBlt4d2gJTYQ2N8wZx
Im0Y7P+HWDjbcYOlFKWbJ9/PAERV2/7x1o3hgIuXhsUH8bu22QRI27fcDzLKO/Sb
wDtLxbL+dG/WdzFCkH+bzGMf08WOiH4QjZlRbS9I6gPHQL34IarMQ+fOslh8c7Ih
o8MbtI4LhsGkUxBown2vYWg=
-----END PRIVATE KEY-----
23 changes: 23 additions & 0 deletions .ssl/local.uxscoreboard.cert
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIIDyzCCArOgAwIBAgIJAKMIDHP9cZVaMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
BAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5kaXNjbzENMAsG
A1UECgwEYXNhcDESMBAGA1UEAwwJbG9jYWxob3N0MSUwIwYJKoZIhvcNAQkBFhZ6
YWNkYXJlbGxhbm9AZ21haWwuY29tMB4XDTIwMDMwMTAwNTQ1NloXDTIwMDMzMTAw
NTQ1NlowfDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4g
RnJhbmRpc2NvMQ0wCwYDVQQKDARhc2FwMRIwEAYDVQQDDAlsb2NhbGhvc3QxJTAj
BgkqhkiG9w0BCQEWFnphY2RhcmVsbGFub0BnbWFpbC5jb20wggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCij34Qx9FsV9YF8R9QaAWQdGi0WFdEsudIc6TI
sed7RISO97daZTd515OuTDzy+zb/3rG8uWysyEX2w/nVJ/ydLKKozqYjAK5wegCb
mosRGFAkiA2IlrjjVs3NqiZkcXc2QOhE/UPD2ETX3vzJXVO7xJnEV21afW9PWcjF
gI0Td796nEJB5ZZOYjxqBt2SYN3Df7sXaET/MX9nYTC2KOy9oPvAeZ9jWTf5Sk67
lpDWT2fspVa5+91GE4uMuCzDWeNGp2HGh0fbw1+MacXRDbyNwBG88CaAvOp/cqO1
JtVY3sSk3EJZmyIpiqvYxmQ2HvcW6FGgwiVNufbpddgssOwxAgMBAAGjUDBOMB0G
A1UdDgQWBBRbebvhOiJ3iYZzbWjvaobelrvN1DAfBgNVHSMEGDAWgBRbebvhOiJ3
iYZzbWjvaobelrvN1DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBm
NDktXVDeRCdV+n981uL9+2j/u9HGcTrJIP6jFc7+LgDX6jB3KS0xNkcjKTLVJWFo
7DgI6C9GqkWbomvUMjBccMxCqYljoNo3rJgp+g0QnEuQjHQ9M7gg1ZpOfXn9aW8a
1hR+gDIyptZQ7EhCUat1spWGl0U6+G1ClRtYXwqhFmQ7xYZLy+MRGjhk06ixglWK
Ery4cv55fO9TRyVQ+HyijJTFkQm/UT+wMNMTw3O7rjIj3aZ3gjbJf0JXzGvXAHBo
g///yzmb5mkGmEp5uyzcSngKBqdFE2DPJB89Er6vJaWQNpO5pynWPLF60eDz0KTP
uel8/NRk+TdV/BfBiPRL
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions .ssl/local.uxscoreboard.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCij34Qx9FsV9YF
8R9QaAWQdGi0WFdEsudIc6TIsed7RISO97daZTd515OuTDzy+zb/3rG8uWysyEX2
w/nVJ/ydLKKozqYjAK5wegCbmosRGFAkiA2IlrjjVs3NqiZkcXc2QOhE/UPD2ETX
3vzJXVO7xJnEV21afW9PWcjFgI0Td796nEJB5ZZOYjxqBt2SYN3Df7sXaET/MX9n
YTC2KOy9oPvAeZ9jWTf5Sk67lpDWT2fspVa5+91GE4uMuCzDWeNGp2HGh0fbw1+M
acXRDbyNwBG88CaAvOp/cqO1JtVY3sSk3EJZmyIpiqvYxmQ2HvcW6FGgwiVNufbp
ddgssOwxAgMBAAECggEACKCA2jcggBVxQEN5m/TJRs9Gtztw9i5gY9HvTs9SL5KF
TmkLC/sPJKIyLi/RlDuMwat510An6kt+mwfvfEZw+45g24CMBJOGrmVrHtbmxnN5
3VZzEWqeSUJUDbQX8YCsCO8M5IxkSkJx9Nrao30WcoKOfoL9RK4feCCVrRWTZxMA
IUWsgAc3L2H5LUedxgq2TVg5n5fM8NeAfCsATxf3F00IY5KFHKLqGks10NPbNv6a
zWU/hWhkfEsmgtoNjjHpQep1GhVP345TrrelHJt7NQqCE+gLgvca53ZZxhgd/FH0
a0DJ7Xbqsf/UxjSg6fN53UAnPncG/oHlYETNdq68AQKBgQDXV+YvAJIIS9ZQNvCF
NakTmH+qvuESPoHiZHJj3fN1qHX6E+nEIVYFw2zf0ZjEjSvmLZl3IqKgS7lZtDpi
8ZVQbadcoqNStgSk/j5+LSPh0HHD08t6ac4l+MgahMQjbK6WmBban0RDYoi6qGA6
x+o8WLBQYS2jPE83TEUMbqBfkQKBgQDBQHZZfy0LGGVP6pnf0k3Fv1mk5Sg1NT6a
09zz2TgZ873yLCCDurk95freDjq9gIDag7d0OeA9ExxOjTmZhBRm/dLmCfNq/+Wm
BCJ1suKnnmmabhDXcUZeLC+rwDf/eHwWHOAcVlIl0BiOQrJ7YmaAGX0CrMptWHRT
ZttJNEKyoQKBgQC2WNkyvdHqsoUUwaDju++jB0Q8Cow9za5gTVxL0psg63iTPZ96
lBvqn3QnBq3M6hndPImyRyLch6K5IhM6y4T7aQ8KMzIHjNfb+upiH8k9oytiforT
6ppEryiKxBfuQ06HeNwJXkoIoXxUStXJkJV5akRKnC9wBVay5aOmhlrI8QKBgBZw
n82AoQBa0tjWywtcZj+CGqy1F1gmWKCt3UhLfuI0lWfbi+L/+aagX+MND/EVTOES
zmiml80/vNe6OmgDGENlUen4WdWg5U/DxySXow4HrQeLpFUACEXDJ73v0hDOMsp2
i+d+doeBhHhwcj01jeVuEEARRGgyDz/n/6qecOhBAoGBAJDE7zUSVPnh6UWoINI0
zsDAwpoRiVWxdjqhHKAYBZwhqSMgA8PeqG4MCn9J06tD2uKJqpERmqjSVhoWNELA
w/0DZzGp38OvSXKz/BEQubYMlGKUoKsIrGB3nQCo6PmsYVygoAtzKwoZ1G0FxQAo
97RYRCwfB9xN5g4QPL/X8ds2
-----END PRIVATE KEY-----
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
```sh
git clone https://github.com/asapzacy/uxscoreboard.git
cd uxscoreboard
yarn
yarn start
```
yarn dev:fresh

then --> [localhost:8080](http://localhost:8080)
# open https://local.uxsocreboard:8888 or https://localhost:8888
```
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
"main": "server.js",
"scripts": {
"commit": "git-cz",
"www": "env UV_THREADPOOL_SIZE=100 webpack-dev-server --progress --colors",
"api": "npx nodemon server.js",
"dev": "concurrently 'yarn www' 'yarn api' --names 'WWW,API' -c 'bgBlue.bold,bgMagenta.bold'",
"www": "env UV_THREADPOOL_SIZE=100 webpack-dev-server --progress --colors",
"dev": "NODE_ENV=development concurrently 'yarn www' 'yarn api' --names 'WWW,API' -c 'bgBlue.bold,bgMagenta.bold'",
"dev:fresh": "yarn reset && yarn dev",
"build": "yarn --production=false && NODE_ENV=production webpack --progress --colors",
"clean": "yarn clean:build && yarn clean:npm",
Expand Down Expand Up @@ -84,6 +84,7 @@
"eslint-plugin-react": "^7.13.0",
"eslint-plugin-standard": "^3.0.1",
"html-webpack-plugin": "^4.0.0-beta.11",
"https": "^1.0.0",
"husky": "^4.0.10",
"identity-obj-proxy": "^3.0.0",
"jest": "^24.8.0",
Expand Down
31 changes: 23 additions & 8 deletions server.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
#!/usr/bin/env node
const express = require('express')
const fs = require('fs')
const path = require('path')

const express = require('express')
const https = require('https')
const compression = require('compression')
const cors = require('cors')
const responseTime = require('response-time')
const axios = require('axios')
const parseString = require('xml2js').parseString

require('dotenv').config()

const port = process.env.PORT || 9090
const API_HOST = process.env.API_HOST || 'local.api.uxscoreboard'
const API_PORT = process.env.API_PORT || 9999

const app = express()

app.use(compression())
app.use(cors())
app.use(responseTime())

app.use(express.static('dist'))
app.use(express.static('./dist'))

const parseDate = dt => {
const yyyy = dt.slice(0, 4)
Expand Down Expand Up @@ -87,11 +92,21 @@ app.get('/api/nfl/scores/week/:week', (req, res) => {
})

app.get('*', (req, res) => {
res.sendFile(path.resolve('dist/index.html'))
res.sendFile(path.resolve('./dist/index.html'))
})

app.listen(port, () => {
console.log(`server listening on port ${port}`)
})
const localApp = https.createServer(
{
key: fs.readFileSync(`./.ssl/${API_HOST}.key`),
cert: fs.readFileSync(`./.ssl/${API_HOST}.cert`),
requestCert: false,
rejectUnauthorized: false
},
app
)

module.exports = app
const server = process.env.NODE_ENV === 'development' ? localApp : app
server.listen(API_PORT, () => {
/* eslint-disable */
console.log(`server listening on port ${API_PORT}`)
})
34 changes: 22 additions & 12 deletions webpack.config.babel.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
const webpack = require('webpack')
const fs = require('fs')
const path = require('path')

const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const BrowserSyncPlugin = require('browser-sync-webpack-plugin')
const StatsWriterPlugin = require('webpack-stats-plugin').StatsWriterPlugin
Expand All @@ -17,16 +19,18 @@ const LAUNCH_COMMAND = process.env.npm_lifecycle_event
const isProduction = LAUNCH_COMMAND === 'build'
process.env.BABEL_ENV = LAUNCH_COMMAND

const HOST = process.env.HOST || 'localhost'
const WWW_PORT = process.env.WWW_PORT || 8080
const API_PORT = process.env.API_PORT || 9090
const WWW_HOST = process.env.WWW_HOST || 'local.uxscoreboard'
const WWW_PORT = process.env.WWW_PORT || 8888

const API_HOST = process.env.API_HOST || 'local.api.uxscoreboard'
const API_PORT = process.env.API_PORT || 9999

const WWW_PROXY = `http://${HOST}:${WWW_PORT}`
const API_PROXY = `http://${HOST}:${API_PORT}`
const WWW_PROXY = `https://${WWW_HOST}:${WWW_PORT}`
const API_PROXY = `https://${API_HOST}:${API_PORT}`

const PATHS = {
app: path.join(__dirname, 'src'),
dist: path.join(__dirname, 'dist')
app: path.join(__dirname, './src'),
dist: path.join(__dirname, './dist')
}

const globalVariables = new webpack.DefinePlugin({
Expand All @@ -40,11 +44,11 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({

const browserSyncPlugin = new BrowserSyncPlugin(
{
host: HOST,
host: WWW_HOST,
port: WWW_PORT,
proxy: WWW_PROXY,
open: false,
ui: { port: 8080, weinre: { port: 9090 } }
ui: { port: WWW_PORT, weinre: { port: API_PORT } }
},
{ reload: false }
)
Expand Down Expand Up @@ -202,11 +206,17 @@ const devConfig = {
inline: true,
compress: true,
historyApiFallback: true,
host: HOST,
host: WWW_HOST,
port: WWW_PORT,
https: {
cert: fs.readFileSync(`./.ssl/${WWW_HOST}.cert`),
key: fs.readFileSync(`./.ssl/${WWW_HOST}.key`)
},
disableHostCheck: true,
proxy: {
'/api/**': {
target: API_PROXY
target: API_PROXY,
secure: false
}
}
},
Expand Down
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5989,6 +5989,11 @@ https-proxy-agent@^2.2.1:
agent-base "^4.1.0"
debug "^3.1.0"

https@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4"
integrity sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=

humanize-ms@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
Expand Down

0 comments on commit cf8c354

Please # to comment.