46 lines
1.3 KiB
JavaScript
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)
|
|
}
|
|
})
|