parent
3573b2aab9
commit
3b7034c7eb
@ -1,110 +0,0 @@
|
||||
// Requires statements and code for non-production mode usage
|
||||
// if (!process.env.NODE_ENV || !process.env.NODE_ENV === 'production') {
|
||||
// require('appmetrics-dash').attach();
|
||||
//}
|
||||
|
||||
var http = require('http');
|
||||
var https = require('https');
|
||||
var util = require("util");
|
||||
var express = require("express");
|
||||
var crypto = require("crypto");
|
||||
try { bcrypt = require('bcrypt'); }
|
||||
catch(e) { bcrypt = require('bcryptjs'); }
|
||||
var nopt = require("nopt");
|
||||
var path = require("path");
|
||||
var fs = require("fs-extra");
|
||||
var RED = require("node-red");
|
||||
// var health = require('@cloudnative/health-connect');
|
||||
|
||||
|
||||
// Create an Express app
|
||||
var server;
|
||||
var app = express();
|
||||
|
||||
process.env.NODE_RED_HOME = __dirname;
|
||||
|
||||
// Add a simple route for static content served from 'public'
|
||||
app.use("/",express.static("public"));
|
||||
|
||||
//var healthcheck = new health.HealthChecker();
|
||||
//app.use('/live', health.LivenessEndpoint(healthcheck));
|
||||
//app.use('/ready', health.ReadinessEndpoint(healthcheck));
|
||||
//app.use('/health', health.HealthEndpoint(healthcheck));
|
||||
|
||||
// Create the settings object from file
|
||||
var settings = require("./settings.js");
|
||||
var fs = require("fs");
|
||||
|
||||
if (process.env.NODE_RED_TLS_CERT && process.env.NODE_RED_TLS_KEY) {
|
||||
settings.https = {
|
||||
"key" : fs.readFileSync(process.env.NODE_RED_TLS_KEY),
|
||||
"cert" : fs.readFileSync(process.env.NODE_RED_TLS_CERT)
|
||||
};
|
||||
if (process.env.NODE_RED_TLS_CA) {
|
||||
settings.https.ca = fs.readFileSync(process.env.NODE_RED_TLS_CA);
|
||||
}
|
||||
if (process.env.NODE_RED_TLS_PASS_FILE) {
|
||||
settings.https.passphrase = fs.readFileSync(process.env.NODE_RED_TLS_PASS_FILE);
|
||||
} else if (process.env.NODE_RED_TLS_PASS_ENV) {
|
||||
settings.https.passphrase = process.env.NODE_RED_TLS_PASS_ENV;
|
||||
}
|
||||
settings.requireHttps = true;
|
||||
}
|
||||
|
||||
if (settings.https) {
|
||||
server = https.createServer(settings.https,function(req,res) {app(req,res);});
|
||||
} else {
|
||||
server = http.createServer(function(req,res) {app(req,res);});
|
||||
}
|
||||
server.setMaxListeners(0);
|
||||
|
||||
function formatRoot(root) {
|
||||
if (root[0] != "/") {
|
||||
root = "/" + root;
|
||||
}
|
||||
if (root.slice(-1) != "/") {
|
||||
root = root + "/";
|
||||
}
|
||||
return root;
|
||||
}
|
||||
|
||||
if (settings.httpRoot === false) {
|
||||
settings.httpAdminRoot = false;
|
||||
settings.httpNodeRoot = false;
|
||||
} else {
|
||||
settings.httpRoot = settings.httpRoot||"/";
|
||||
settings.disableEditor = settings.disableEditor||false;
|
||||
}
|
||||
|
||||
if (settings.httpAdminRoot !== false) {
|
||||
settings.httpAdminRoot = formatRoot(settings.httpAdminRoot || settings.httpRoot || "/");
|
||||
settings.httpAdminAuth = settings.httpAdminAuth || settings.httpAuth;
|
||||
} else {
|
||||
settings.disableEditor = true;
|
||||
}
|
||||
|
||||
if (settings.httpNodeRoot !== false) {
|
||||
settings.httpNodeRoot = formatRoot(settings.httpNodeRoot || settings.httpRoot || "/");
|
||||
settings.httpNodeAuth = settings.httpNodeAuth || settings.httpAuth;
|
||||
}
|
||||
|
||||
if (settings.uiPort === undefined){
|
||||
settings.uiPort = 1880;
|
||||
}
|
||||
|
||||
|
||||
settings.uiHost = settings.uiHost||"0.0.0.0";
|
||||
|
||||
// Initialise the runtime with a server and settings
|
||||
RED.init(server,settings);
|
||||
|
||||
// Serve the editor UI from /red
|
||||
app.use(settings.httpAdminRoot,RED.httpAdmin);
|
||||
|
||||
// Serve the http nodes UI from /api
|
||||
app.use(settings.httpNodeRoot,RED.httpNode);
|
||||
|
||||
server.listen(settings.uiPort);
|
||||
|
||||
// Start the runtime
|
||||
RED.start();
|
||||
Loading…
Reference in new issue