UNPKG

server-man

Version:

Web UI dashboard for PM2 admins

121 lines (111 loc) 2.5 kB
var express = require('express'), bodyParser = require('body-parser'), os=require('os'), pm2=require('pm2'), app = express(); // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()); //Information app.get('/serverStat',function(req,res){ var _stat={ system_info:{ hostName:os.hostname(), uptime:os.uptime() }, monit:{ loadavg:os.loadavg(), total_mem:os.totalmem(), free_mem:os.freemem(), cpu:os.cpus(), interfaces:os.networkInterfaces() }, os:{ type:os.type(), platform:os.platform(), release:os.release(), }, cpu_arch:os.arch(), loadAvg:os.loadavg(), userName:req.connection.user }; pm2.connect(function(){ pm2.list(function(err,list){ pm2.disconnect(); _stat.processes=list; res.json(_stat); }); }); }); //Operations app.get('/operations/stop/:id',function(request,response){ if(!request.params.id){ response.send(400 ,{ error:"Process id not supplied" }); return; } pm2.connect(function(){ pm2.stop(request.params.id,function(err,details){ if(err){ console.log(err); response.send(err) }else response.send(details); pm2.disconnect(); }) }); }); app.get('/operations/restart/:id',function(request,response){ if(!request.params.id){ response.send(400 ,{ error:"Process id not supplied" }); return; } pm2.connect(function(){ pm2.restart(request.params.id,function(err,details){ if(err){ console.log(err); response.send(err) }else response.send(details); pm2.disconnect(); }) }); }); app.get('/operations/delete/:id',function(request,response){ if(!request.params.id){ response.send(400 ,{ error:"Process id not supplied" }); return; } pm2.connect(function(){ pm2.delete(request.params.id,function(err,status){ if(err){ console.log(err); response.send(err) }else response.send(status); pm2.disconnect(); }) }); }); app.get('/operations/kill',function(request,response){ pm2.connect(function(){ pm2.killDaemon(function(err,status){ if(err){ console.log(err); response.send(err) }else response.send(status); }) }); }); app.post('/newApplication',function(req,res){ console.log(req.body) }); app.use('/',express.static(__dirname+'/web')); var server = app.listen(3190);