// config.js const path = require('path') const fs = require('fs') const nodeRoot = path.dirname(require.main.filename) const configPath = path.join(nodeRoot, 'config.json') // Default configuration let config = { listen: { ip: '0.0.0.0', port: 2222 }, http: { origins: ['*:*'] }, user: { name: null, password: null }, ssh: { host: null, port: 22, term: 'xterm-color', readyTimeout: 20000, keepaliveInterval: 120000, keepaliveCountMax: 10 }, terminal: { cursorBlink: true, scrollback: 10000, tabStopWidth: 8, bellStyle: 'sound' }, header: { text: null, background: 'green' }, session: { name: 'WebSSH2', secret: 'mysecret' }, options: { challengeButton: true, allowreauth: true }, algorithms: { kex: [ 'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384', 'ecdh-sha2-nistp521', 'diffie-hellman-group-exchange-sha256', 'diffie-hellman-group14-sha1' ], cipher: [ 'aes128-ctr', 'aes192-ctr', 'aes256-ctr', 'aes128-gcm', 'aes128-gcm@openssh.com', 'aes256-gcm', 'aes256-gcm@openssh.com', 'aes256-cbc' ], hmac: ['hmac-sha2-256', 'hmac-sha2-512', 'hmac-sha1'], compress: ['none', 'zlib@openssh.com', 'zlib'] }, serverlog: { client: false, server: false }, accesslog: false, verify: false } try { if (fs.existsSync(configPath)) { console.log('WebSSH2 service reading config from: ' + configPath) config = require('read-config-ng')(configPath) } else { console.error( '\n\nERROR: Missing config.json for webssh. Current config: ' + JSON.stringify(config) ) console.error('\n See config.json.sample for details\n\n') } } catch (err) { console.error( '\n\nERROR: Missing config.json for webssh. Current config: ' + JSON.stringify(config) ) console.error('\n See config.json.sample for details\n\n') console.error('ERROR:\n\n ' + err) } module.exports = config