Skip to content

Feature/http2 #192

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 37 additions & 6 deletions .core/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import express from 'express';
import bodyParser from 'body-parser';
import cookieParser from 'cookie-parser';
import cookieSession from 'cookie-session';
import proxy from 'http-proxy-middleware';
import morgan from 'morgan';
import path from 'path';
import fs from 'fs';
import op from 'object-path';
import _ from 'underscore';
import staticGzip from 'express-static-gzip';
import chalk from 'chalk';

const globby = require('./globby-patch').sync;

Expand Down Expand Up @@ -307,15 +307,46 @@ const startServer = async () => {
}
});

// TODO: Handle TLS server automatically
// start server on the specified port and binding host
app.listen(PORT, '0.0.0.0', function() {
BOOT(`Reactium Server running on port '${PORT}'...`);
BOOT(
`Reactium Server running ${chalk.red(
'PLAIN',
)} on port '${PORT}'...`,
);
});

// Provide opportunity for ssl server
if (fs.existsSync(`${rootPath}/src/app/server/ssl.js`)) {
require(`${rootPath}/src/app/server/ssl.js`)(app);
if (process.env.REACTIUM_TLS_MODE === 'on') {
const spdy = require('spdy');
const options = {
key: fs.readFileSync(
op.get(
process.env,
'REACTIUM_TLS_KEY',
path.resolve(__dirname, '../src', 'server.key'),
),
),
cert: fs.readFileSync(
op.get(
process.env,
'REACTIUM_TLS_CERT',
path.resolve(__dirname, '../src', 'server.crt'),
),
),
};
await ReactiumBoot.Hook.run('spdy-options', options);

spdy.createServer(options, app).listen(TLS_PORT, error => {
if (error) {
ERROR(error);
process.exit(1);
}
BOOT(
`Reactium Server running ${chalk.green(
'TLS',
)} on port '${TLS_PORT}'...`,
);
});
}
};

Expand Down
2 changes: 2 additions & 0 deletions .core/server-globals.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ module.exports = async () => {

PORT = parseInt(PORT) || defaultPort;

global.TLS_PORT = op.get(process.env, 'TLS_PORT', 3443);

require('./reactium.log');

await reactiumBootHooks();
Expand Down
106 changes: 92 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
"semver": "^7.3.8",
"serialize-javascript": "^6.0.1",
"shallow-equals": "^1.0.0",
"spdy": "^4.0.2",
"underscore": "^1.13.6",
"uuid": "^3.4.0",
"xss": "^1.0.14"
Expand Down
32 changes: 32 additions & 0 deletions src/server.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFjTCCA3UCFGEzBaUMG8FVpMs+f1XH3lOiA92sMA0GCSqGSIb3DQEBCwUAMIGC
MQswCQYDVQQGEwJVUzEPMA0GA1UECAwGSGF3YWlpMREwDwYDVQQHDAhIb251bHVs
dTEVMBMGA1UECgwMUmVhY3RpdW0gTExDMRcwFQYDVQQDDA5yZWFjdGl1bS5sb2Nh
bDEfMB0GCSqGSIb3DQEJARYQam9obkByZWFjdGl1bS5pbzAeFw0yMzA0MjExNTEz
MjdaFw0yNDA0MjAxNTEzMjdaMIGCMQswCQYDVQQGEwJVUzEPMA0GA1UECAwGSGF3
YWlpMREwDwYDVQQHDAhIb251bHVsdTEVMBMGA1UECgwMUmVhY3RpdW0gTExDMRcw
FQYDVQQDDA5yZWFjdGl1bS5sb2NhbDEfMB0GCSqGSIb3DQEJARYQam9obkByZWFj
dGl1bS5pbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMhxAXaSIVY3
hG31QmjZZiDXlRwLYiRTADpbhTDEJL32eT2lPVOPiGYq9Qzj3K967wMhv03spesn
tjD7BikN5CBkuzlj2LFYfK8dRW2eYTVh8trj0TyMjTKORIDxaubgOXMxiLrVGKl3
ZpbwhHc/MG66tYZsL0m2mPIOr9LPYWs2jgLi9Azkka3i+6U+WFbYG2QdE7zVAWbF
yR7HHiyiMIJr+kPtxKnhqVUgCrR1ZZpUyGBhqR8LR4JJAEC6TI22mibZ55hBsi8X
NWrxXM/DOtqZpGFyqkaZx1+y8zJ8RiO1uMngShJqbQTx4e3ANIRqM1wM0UJ3YcUV
yo/q1bx/poaPw6N5N54UGJoi8zKk02PdMIeyEYAzpV+nQPPzCZhkuujfGFTFTQhS
+eVTDi56jhPdcRHPpxGWVUguqdV3MIo42AzC/O9t/22my4APYCNcKxOGoBlmURRj
nNMjAfbOqEwpVS0uVDPJYqSKrSqzG95U9uAH7evGzSHyuuOACyKsmegd8H0SRaYI
9QZii2jfGcvWx/dtbPPX3jea5GfN7cs+T8t6RASdpOGkoaTGFOWeq7pnB8b73J2D
13Gxzl9jFB4RSVhQ21+Lptt/y8ouI2UWgtQOoY3BH3hGXNZ1oqgsIJmaniPd9fz3
iJDXspg3cE3FGAkwtfYJJF8dOHNqELsZAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
AAynspRmVKZ0lNtghVJ+WhGrT43jt/9+XGQ2UQ/VR+f66xkAOwSTj7NbrebAgcnY
m1OuUVYPg6aGWrKz2iPBKpA+l9QcjFmwdrFMk6fobUPiCfe4rKSyn01iJOZJDsl9
ajD4SKdNCzkJQvtRC8Ki0YMO7gEPlVlEr1lb8w+ZEXzcgUhhieq0GhwNBX3jza+3
QOEHFYqgD7/QZ6p/T17fsV4dQPsNnlrI1IoBkoF86d6PSLYuRLo3cdS8ClLKaQkk
ta8oBTWnNER3dFXYNmzuZsNgkGbtKAQa40wcDL/On8pLOynQbtNjHDpPpJ1yJrtZ
dTSjFbKIa/3XGFyHo8ByeKKcVYmOXLkkvNAujpJkGRN+FDsk2ewzMaAPVc0/b6hZ
tOxhNOsV/o4Hsvln4xHJsnVppn/FhHdq/wchuC/FgMxkrO9GWwfxBMzDEfBxWE0W
T4a6digk9xLp7uPVeVYTh9xKZx5TI0K0qqUL8QGiNVbrM3/quCjKA5I/iPk0IWVF
nD7pJns9Q773IDYYxjwF1ohOV/7teWWrk8HhjsVhQrGBVanpNiaXJl7VsfEk87o2
ID67PP3bnSb2d5hLCqy/Galk3go3CBU9DRcAHIQZmUq8V99H/omP694bq9Kb0tfR
oT/ROT0hQX17bY3eb72DggjPQ+2xkoCsyx9+n4pBX7ir
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions src/server.csr
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIEyDCCArACAQAwgYIxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZIYXdhaWkxETAP
BgNVBAcMCEhvbnVsdWx1MRUwEwYDVQQKDAxSZWFjdGl1bSBMTEMxFzAVBgNVBAMM
DnJlYWN0aXVtLmxvY2FsMR8wHQYJKoZIhvcNAQkBFhBqb2huQHJlYWN0aXVtLmlv
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyHEBdpIhVjeEbfVCaNlm
INeVHAtiJFMAOluFMMQkvfZ5PaU9U4+IZir1DOPcr3rvAyG/Teyl6ye2MPsGKQ3k
IGS7OWPYsVh8rx1FbZ5hNWHy2uPRPIyNMo5EgPFq5uA5czGIutUYqXdmlvCEdz8w
brq1hmwvSbaY8g6v0s9hazaOAuL0DOSRreL7pT5YVtgbZB0TvNUBZsXJHsceLKIw
gmv6Q+3EqeGpVSAKtHVlmlTIYGGpHwtHgkkAQLpMjbaaJtnnmEGyLxc1avFcz8M6
2pmkYXKqRpnHX7LzMnxGI7W4yeBKEmptBPHh7cA0hGozXAzRQndhxRXKj+rVvH+m
ho/Do3k3nhQYmiLzMqTTY90wh7IRgDOlX6dA8/MJmGS66N8YVMVNCFL55VMOLnqO
E91xEc+nEZZVSC6p1XcwijjYDML8723/babLgA9gI1wrE4agGWZRFGOc0yMB9s6o
TClVLS5UM8lipIqtKrMb3lT24Aft68bNIfK644ALIqyZ6B3wfRJFpgj1BmKLaN8Z
y9bH921s89feN5rkZ83tyz5Py3pEBJ2k4aShpMYU5Z6rumcHxvvcnYPXcbHOX2MU
HhFJWFDbX4um23/Lyi4jZRaC1A6hjcEfeEZc1nWiqCwgmZqeI931/PeIkNeymDdw
TcUYCTC19gkkXx04c2oQuxkCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4ICAQCKwY6e
yxW3jzQoa0PDhrNf3QSRhBTMwYXxISt80qt9QDKvHLEq4wVEgVkplBENixHOBhOI
NaUrsTpt5oyL1qxEbMCrutv1O95AFYZSxqFZoxF4MHMvxq8diOBhrDlyANHFZ2ig
MXO/1vpzc1ni3M0f7iQ/+y69Tr30ob4BuAHy4XGmgvCVj6zVmdPQv8IRwJwT3Zdp
SJ78NtrDNPyES/kCJdUU4SdLDfNq4k/H1j9E2RVcbp97dy0K5NecVH+Eix0kNwO4
+8eA13HdC3w18B0rYtrh5rbsk5w4FQIcsyUfLwqb3UjFpuR4wBXtYYE3LsGaaBnz
n8GlQ3HopSxn3qJfPFCGwG8awSTQP5tlh2o+P4gvz4nr4EEkVtRh2ZI0b1aaYGbY
tL1nnUe+MhFSADQc5SdkCU7w2MxPYucnFdlI7ZE/nZMlx+bA1L8ZTao06a1Xv4eJ
gmBY1cwdu5duKG4N/L/482udL4srMQsh7Xh43QtVCsuXrCdsMOKnl+2oOhJUOAGJ
/h+uix22HgI9DMXitPg0D73mQy5rizA/6YDTIXTNvwpTwRLI+osCH1x2L2dOZ3fl
Mxki6Vi77/BMvJZ1+Xsf3rSWCpcfhpx1Dj+LyNWhqUNi3wSrzI46T+xCWm4Fg+nv
sIwBeRyA0rx76bgHIPznhMS6glHragsisW3WSA==
-----END CERTIFICATE REQUEST-----
Loading