diff --git a/src/provision.js b/src/provision.js index 7794c771a..c2ca4abb0 100644 --- a/src/provision.js +++ b/src/provision.js @@ -128,19 +128,23 @@ function setup(dnsConfig, sysinfoConfig, auditSource, callback) { domains.add(domain, data, auditSource, function (error) { if (error) return done(error); - callback(); // now that args are validated run the task in the background + sysinfo.testConfig(sysinfoConfig, function (error) { + if (error) return done(error); - async.series([ - autoRegister.bind(null, domain), - settings.setSysinfoConfig.bind(null, sysinfoConfig), - domains.prepareDashboardDomain.bind(null, domain, auditSource, (progress) => setProgress('setup', progress.message, NOOP_CALLBACK)), - cloudron.setDashboardDomain.bind(null, domain, auditSource), - mail.addDomain.bind(null, domain), // this relies on settings.mailFqdn() and settings.adminDomain() - setProgress.bind(null, 'setup', 'Done'), - eventlog.add.bind(null, eventlog.ACTION_PROVISION, auditSource, { }) - ], function (error) { - gProvisionStatus.setup.active = false; - gProvisionStatus.setup.errorMessage = error ? error.message : ''; + callback(); // now that args are validated run the task in the background + + async.series([ + autoRegister.bind(null, domain), + settings.setSysinfoConfig.bind(null, sysinfoConfig), + domains.prepareDashboardDomain.bind(null, domain, auditSource, (progress) => setProgress('setup', progress.message, NOOP_CALLBACK)), + cloudron.setDashboardDomain.bind(null, domain, auditSource), + mail.addDomain.bind(null, domain), // this relies on settings.mailFqdn() and settings.adminDomain() + setProgress.bind(null, 'setup', 'Done'), + eventlog.add.bind(null, eventlog.ACTION_PROVISION, auditSource, { }) + ], function (error) { + gProvisionStatus.setup.active = false; + gProvisionStatus.setup.errorMessage = error ? error.message : ''; + }); }); }); });