diff --git a/src/routes/setup.js b/src/routes/setup.js index be395ff4b..39a1157df 100644 --- a/src/routes/setup.js +++ b/src/routes/setup.js @@ -82,6 +82,9 @@ function provision(req, res, next) { // TODO: validate subfields of these objects if (req.body.autoconf && typeof req.body.autoconf !== 'object') return next(new HttpError(400, 'autoconf must be an object')); + // it can take sometime to setup DNS, register cloudron + req.clearTimeout(); + setup.provision(dnsConfig, req.body.autoconf || {}, function (error) { if (error && error.reason === SetupError.ALREADY_SETUP) return next(new HttpError(409, error.message)); if (error && error.reason === SetupError.BAD_FIELD) return next(new HttpError(400, error.message)); diff --git a/src/setup.js b/src/setup.js index e45a68086..621a2773d 100644 --- a/src/setup.js +++ b/src/setup.js @@ -187,13 +187,12 @@ function provision(dnsConfig, autoconf, callback) { config.setAdminFqdn(adminFqdn); config.setAdminLocation('my'); - autoprovision(autoconf, function (error) { - if (error) return callback(error); + clients.addDefaultClients(config.adminOrigin(), callback); - clients.addDefaultClients(config.adminOrigin(), callback); - - configureWebadmin(NOOP_CALLBACK); - }); + async.series([ + autoprovision.bind(null, autoconf), + configureWebadmin + ], NOOP_CALLBACK); }); }); }