webssh2/app/index.js
2019-01-19 13:15:49 +08:00

46 lines
1.3 KiB
JavaScript

'use strict'
/* jshint esversion: 6, asi: true, node: true */
/*
* index.js
*
* WebSSH2 - Web to SSH2 gateway
* Bill Church - https://github.com/billchurch/WebSSH2 - May 2017
*
*/
var path = require('path')
var express = require('express')
var app = express()
var compression = require('compression')
var nodeRoot = path.dirname(require.main.filename)
var expressOptions = require('./server/expressOptions')
// static files
var publicPath = path.join(nodeRoot, 'client', 'public')
app.use(express.static(publicPath, expressOptions))
// express
app.use(compression({ level: 9 }))
var server = require('http').Server(app)
var io = require('socket.io')(server, { serveClient: false })
app.disable('x-powered-by')
var config = require('./server/app').config
require('./server/app').mySSH(app,io.of("/ssh"))
server.listen({ host: config.listen.ip, port: config.listen.port
})
console.log('WebSSH2 service listening on ' + config.listen.ip + ':' + config.listen.port)
server.on('error', function (err) {
if (err.code === 'EADDRINUSE') {
config.listen.port++
console.warn('WebSSH2 Address in use, retrying on port ' + config.listen.port)
setTimeout(function () {
server.listen(config.listen.port)
}, 250)
} else {
console.log('WebSSH2 server.listen ERROR: ' + err.code)
}
})