!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.23 GB of 57.97 GB (22.82%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

const packageJson = require('../package.json');

const cors = require('cors');
const fs = require('fs-extra');
const helmet = require('helmet');
const history = require('connect-history-api-fallback');
const morgan = require('morgan');
const multer = require('multer');
const path = require('path');
const os = require('os');

const express = require('express');
const app = express();

//swagger
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');
const swaggerOptions = require('./swagger');
const specs = swaggerJsdoc(swaggerOptions);

const AuthRouter = require('./components/auth/auth.routes');
const BackupRouter = require('./components/backup/backup.routes');
const CamerasRouter = require('./components/cameras/cameras.routes');
const ConfigRouter = require('./components/config/config.routes');
const FilesRouter = require('./components/files/files.routes');
const NotificationsRouter = require('./components/notifications/notifications.routes');
const RecordingsRouter = require('./components/recordings/recordings.routes');
const SettingsRouter = require('./components/settings/settings.routes');
const SubscribeRouter = require('./components/subscribe/subscribe.routes');
const UsersRouter = require('./components/users/users.routes');

const config = require('../services/config/config.service');

app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(helmet());
app.use(
  helmet.contentSecurityPolicy({
    directives: {
      // eslint-disable-next-line quotes
      defaultSrc: ["'unsafe-eval'", "'unsafe-inline'", "'self'"],
      // eslint-disable-next-line quotes
      scriptSrc: ["'unsafe-eval'", "'unsafe-inline'", "'self'", 'https://*.googleapis.com', 'blob:'],
      // eslint-disable-next-line quotes
      connectSrc: ['ws:', 'wss:', "'unsafe-eval'", "'unsafe-inline'", "'self'"],
      // eslint-disable-next-line quotes
      'img-src': ["'unsafe-eval'", "'unsafe-inline'", "'self'", 'data:', 'blob:'],
      // eslint-disable-next-line quotes
      'media-src': ["'unsafe-eval'", "'unsafe-inline'", "'self'", 'data:', 'blob:'],
    },
  })
);
app.use(morgan('dev', { skip: () => !config.plugin.debug }));

const backupUpload = multer({
  storage: multer.diskStorage({
    destination: async (request, file, callback) => {
      const backupDirectory = await fs.mkdtemp(path.join(os.tmpdir(), 'cameraui-restore-'));
      callback(null, backupDirectory);
    },
    filename: (request, file, callback) => {
      callback(null, file.originalname);
    },
  }),
});

AuthRouter.routesConfig(app);
BackupRouter.routesConfig(app, backupUpload);
CamerasRouter.routesConfig(app);
ConfigRouter.routesConfig(app);
FilesRouter.routesConfig(app);
NotificationsRouter.routesConfig(app);
RecordingsRouter.routesConfig(app);
SettingsRouter.routesConfig(app);
SubscribeRouter.routesConfig(app);
UsersRouter.routesConfig(app);

app.get('/version', (req, res) => {
  res.status(200).send({
    version: packageJson.version,
  });
});

app.use(
  '/swagger',
  swaggerUi.serve,
  swaggerUi.setup(specs, {
    explorer: true,
    swaggerOptions: {
      displayRequestDuration: true,
      docExpansion: 'none',
      filter: false,
      showExtensions: true,
      showCommonExtensions: true,
      displayOperationId: false,
    },
  })
);

app.use(history({ index: 'index.html', verbose: config.debug }));
app.use(express.static(path.join(__dirname, '../interface')));

module.exports = app;

:: 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.0151 ]--