diff --git a/src/routes/cloudron.js b/src/routes/cloudron.js index 71d262062..63ed9c518 100644 --- a/src/routes/cloudron.js +++ b/src/routes/cloudron.js @@ -13,6 +13,7 @@ exports = module.exports = { setDashboardAndMailDomain: setDashboardAndMailDomain, prepareDashboardDomain: prepareDashboardDomain, renewCerts: renewCerts, + getServerIp: getServerIp, syncExternalLdap: syncExternalLdap }; @@ -26,6 +27,7 @@ let assert = require('assert'), externalLdap = require('../externalldap.js'), HttpError = require('connect-lastmile').HttpError, HttpSuccess = require('connect-lastmile').HttpSuccess, + sysinfo = require('../sysinfo.js'), updater = require('../updater.js'), updateChecker = require('../updatechecker.js'); @@ -190,3 +192,11 @@ function syncExternalLdap(req, res, next) { next(new HttpSuccess(202, { taskId: taskId })); }); } + +function getServerIp(req, res, next) { + sysinfo.getServerIp(function (error, ip) { + if (error) return next(BoxError.toHttpError(error)); + + next(new HttpSuccess(200, { ip })); + }); +} diff --git a/src/server.js b/src/server.js index 76bfedd73..76a50dd93 100644 --- a/src/server.js +++ b/src/server.js @@ -149,6 +149,7 @@ function initializeExpressSync() { router.get ('/api/v1/cloudron/eventlog', cloudronScope, routes.eventlog.list); router.get ('/api/v1/cloudron/eventlog/:eventId', cloudronScope, routes.eventlog.get); router.post('/api/v1/cloudron/sync_external_ldap', cloudronScope, routes.cloudron.syncExternalLdap); + router.get ('/api/v1/cloudron/server_ip', cloudronScope, routes.cloudron.getServerIp); // tasks router.get ('/api/v1/tasks', settingsScope, routes.tasks.list);