mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-19 11:01:15 +00:00
Add HTTPS support by giving an SSL Cert and Key
This commit is contained in:
@@ -175,6 +175,18 @@ const config = convict({
|
|||||||
env: 'N8N_PROTOCOL',
|
env: 'N8N_PROTOCOL',
|
||||||
doc: 'HTTP Protocol via which n8n can be reached'
|
doc: 'HTTP Protocol via which n8n can be reached'
|
||||||
},
|
},
|
||||||
|
ssl_key: {
|
||||||
|
format: String,
|
||||||
|
default: 'server.key',
|
||||||
|
env: 'N8N_SSL_KEY',
|
||||||
|
doc: 'SSL Key for HTTPS Protocol'
|
||||||
|
},
|
||||||
|
ssl_cert: {
|
||||||
|
format: String,
|
||||||
|
default: 'server.pem',
|
||||||
|
env: 'N8N_SSL_CERT',
|
||||||
|
doc: 'SSL Cert for HTTPS Protocol'
|
||||||
|
},
|
||||||
|
|
||||||
security: {
|
security: {
|
||||||
basicAuth: {
|
basicAuth: {
|
||||||
@@ -276,10 +288,10 @@ const config = convict({
|
|||||||
// Overwrite default configuration with settings which got defined in
|
// Overwrite default configuration with settings which got defined in
|
||||||
// optional configuration files
|
// optional configuration files
|
||||||
if (process.env.N8N_CONFIG_FILES !== undefined) {
|
if (process.env.N8N_CONFIG_FILES !== undefined) {
|
||||||
const configFiles = process.env.N8N_CONFIG_FILES.split(',');
|
const configFiles = process.env.N8N_CONFIG_FILES.split(',');
|
||||||
console.log(`\nLoading configuration overwrites from:\n - ${configFiles.join('\n - ')}\n`);
|
console.log(`\nLoading configuration overwrites from:\n - ${configFiles.join('\n - ')}\n`);
|
||||||
|
|
||||||
config.loadFile(configFiles);
|
config.loadFile(configFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
config.validate({
|
config.validate({
|
||||||
|
|||||||
@@ -97,6 +97,10 @@ class App {
|
|||||||
push: Push.Push;
|
push: Push.Push;
|
||||||
versions: IPackageVersions | undefined;
|
versions: IPackageVersions | undefined;
|
||||||
|
|
||||||
|
protocol: string;
|
||||||
|
ssl_key: string;
|
||||||
|
ssl_cert: string;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.app = express();
|
this.app = express();
|
||||||
|
|
||||||
@@ -112,6 +116,10 @@ class App {
|
|||||||
this.push = Push.getInstance();
|
this.push = Push.getInstance();
|
||||||
|
|
||||||
this.activeExecutionsInstance = ActiveExecutions.getInstance();
|
this.activeExecutionsInstance = ActiveExecutions.getInstance();
|
||||||
|
|
||||||
|
this.protocol = config.get('protocol');
|
||||||
|
this.ssl_key = config.get('ssl_key');
|
||||||
|
this.ssl_cert = config.get('ssl_cert');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1254,8 +1262,23 @@ export async function start(): Promise<void> {
|
|||||||
const app = new App();
|
const app = new App();
|
||||||
|
|
||||||
await app.config();
|
await app.config();
|
||||||
|
|
||||||
|
// Differntiate HTTP and HTTPS server
|
||||||
|
const http = require('http');
|
||||||
|
const https = require('https');
|
||||||
|
const fs = require('fs');
|
||||||
|
var server;
|
||||||
|
|
||||||
app.app.listen(PORT, async () => {
|
if(app.protocol === 'https'){
|
||||||
|
const privateKey = fs.readFileSync(app.ssl_key,'utf8');
|
||||||
|
const cert = fs.readFileSync(app.ssl_cert,'utf8');
|
||||||
|
const credentials = {key: privateKey,cert: cert};
|
||||||
|
server = https.createServer(credentials,app.app);
|
||||||
|
}else{
|
||||||
|
server = http.createServer(app.app);
|
||||||
|
}
|
||||||
|
|
||||||
|
server.listen(PORT, async () => {
|
||||||
const versions = await GenericHelpers.getVersions();
|
const versions = await GenericHelpers.getVersions();
|
||||||
console.log(`n8n ready on port ${PORT}`);
|
console.log(`n8n ready on port ${PORT}`);
|
||||||
console.log(`Version: ${versions.cli}`);
|
console.log(`Version: ${versions.cli}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user