diff --git a/config.js b/config.js new file mode 100644 index 0000000..f65981c --- /dev/null +++ b/config.js @@ -0,0 +1,8 @@ +// webserver configuration + +// listen port +exports.port = 80; + +// uid and gid to drop root priv. +exports.uid = 'light'; +exports.gid = 'users'; diff --git a/dmx.js b/dmx.js index 6d2c0ef..0dfbd97 100644 --- a/dmx.js +++ b/dmx.js @@ -1,4 +1,5 @@ var events = require('events') + , config = require('./config.js') , web = require('./web.js') , setup = require('./setup.js').setup , devices = require('./devices.js').devices @@ -7,6 +8,7 @@ var events = require('events') var dmx = new events.EventEmitter(); +dmx.config = config; dmx.setup = setup; dmx.devices = devices; dmx.drivers = {}; @@ -22,4 +24,4 @@ for(var universe in setup.universes) { } -web.init(dmx); \ No newline at end of file +web.init(dmx); diff --git a/web.js b/web.js index 19b532d..3708eac 100644 --- a/web.js +++ b/web.js @@ -49,7 +49,15 @@ exports.init = function(dmx) { var app = http.createServer(handler) - app.listen(8080, '::'); + app.listen(dmx.config.port, '::', null, function() { + try { + process.setgid(dmx.config.gid); + process.setuid(dmx.config.uid); + } catch (err) { + console.log(err); + process.exit(1); + } + }); io.listen(app).sockets.on('connection', function (socket) { socket.emit('init', {'devices': dmx.devices, 'setup': dmx.setup});