index.js 1.16 KB
"use strict";

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

const URL = require('url');
const fs = require('fs');
const isIp = require('is-ip');
const config = require(__dirname + '/config.json');

fs.existsSync('certs') || fs.mkdirSync('certs');

const redbird = require('redbird')(config.server_options);

const hostsCount = config.hosts.length;
for (let i=0; i < hostsCount; i++) {
    let host = config.hosts[i]
    console.log(`Registering ${host.host} to ${host.target}`);
    if (!host.disable) {
        const options = host.options || config.default_host_options;
        const optionsWoSSL = JSON.parse(JSON.stringify(options));
        delete optionsWoSSL.ssl;

        if (!options) {
            redbird.register(host.host, host.target);
        }
        else {

            if (isIp(URL.parse(host.host).hostname)) {
                console.log('Register ' + host.host + ' without SSL')
                redbird.register(host.host, host.target, optionsWoSSL);
            }
            else {
                console.log('Register ' + host.host + ' with SSL if exists');
                redbird.register(host.host, host.target, options);
            }

        }

    }
}