diff --git a/setup/argparser.sh b/setup/argparser.sh index 107dc1e6f..5ef482572 100644 --- a/setup/argparser.sh +++ b/setup/argparser.sh @@ -11,6 +11,7 @@ arg_is_custom_domain="false" arg_restore_key="" arg_restore_url="" arg_retire="false" +arg_tls_config="" arg_tls_cert="" arg_tls_key="" arg_token="" @@ -37,6 +38,9 @@ EOF arg_tls_cert=$(echo "$2" | $json tlsCert) arg_tls_key=$(echo "$2" | $json tlsKey) + arg_tls_config=$(echo "$2" | $json tlsConfig) + [[ "${arg_tls_config}" == "null" ]] && arg_tls_config="" + arg_restore_url=$(echo "$2" | $json restore.url) [[ "${arg_restore_url}" == "null" ]] && arg_restore_url="" diff --git a/setup/start.sh b/setup/start.sh index e811c787c..081fa1de9 100755 --- a/setup/start.sh +++ b/setup/start.sh @@ -176,6 +176,14 @@ if [[ ! -z "${arg_dns_config}" ]]; then -e "REPLACE INTO settings (name, value) VALUES (\"dns_config\", '$arg_dns_config')" box fi +# Add TLS Configuration +if [[ ! -z "${arg_tls_config}" ]]; then + echo "Add TLS Config" + + mysql -u root -p${mysql_root_password} \ + -e "REPLACE INTO settings (name, value) VALUES (\"tls_config\", '$arg_dns_config')" box +fi + # Add webadmin oauth client # The domain might have changed, therefor we have to update the record # !!! This needs to be in sync with the webadmin, specifically login_callback.js diff --git a/src/settings.js b/src/settings.js index ffbb0053c..0422fdbe7 100644 --- a/src/settings.js +++ b/src/settings.js @@ -35,6 +35,7 @@ exports = module.exports = { DEVELOPER_MODE_KEY: 'developer_mode', DNS_CONFIG_KEY: 'dns_config', BACKUP_CONFIG_KEY: 'backup_config', + TLS_CONFIG: 'tls_config', events: new (require('events').EventEmitter)() }; @@ -57,6 +58,7 @@ var gDefaults = (function () { result[exports.DEVELOPER_MODE_KEY] = false; result[exports.DNS_CONFIG_KEY] = { }; result[exports.BACKUP_CONFIG_KEY] = { }; + result[exports.TLS_CONFIG_KEY] = { }; return result; })(); @@ -262,6 +264,17 @@ function setDnsConfig(dnsConfig, callback) { }); } +function getTlsConfig(callback) { + assert.strictEqual(typeof callback, 'function'); + + settingsdb.get(exports.TLS_CONFIG_KEY, function (error, value) { + if (error && error.reason === DatabaseError.NOT_FOUND) return callback(null, gDefaults[exports.TLS_CONFIG_KEY]); + if (error) return callback(new SettingsError(SettingsError.INTERNAL_ERROR, error)); + + callback(null, JSON.parse(value)); // provider + }); +} + function getBackupConfig(callback) { assert.strictEqual(typeof callback, 'function');