dashboard.js
1.33 KB
const express = require('express');
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
const { isAuthenticated } = require('../middleware/auth');
const router = express.Router();
const PXE_ROOT = process.env.PXE_ROOT || '/var/www/html';
const LIVE_DIR = path.join(PXE_ROOT, 'debian12/live');
const BOOT_FILE = path.join(PXE_ROOT, 'boot.ipxe');
router.get('/', isAuthenticated, (req, res) => {
const stats = {
bootFileExists: fs.existsSync(BOOT_FILE),
vmlinuzExists: fs.existsSync(path.join(LIVE_DIR, 'vmlinuz')),
initrdExists: fs.existsSync(path.join(LIVE_DIR, 'initrd.img')),
squashfsExists: fs.existsSync(path.join(LIVE_DIR, 'filesystem.squashfs')),
bootFileSize: 0,
vmlinuzSize: 0,
initrdSize: 0,
squashfsSize: 0,
pxeRoot: PXE_ROOT,
liveDir: LIVE_DIR,
};
try {
if (stats.bootFileExists) stats.bootFileSize = fs.statSync(BOOT_FILE).size;
if (stats.vmlinuzExists) stats.vmlinuzSize = fs.statSync(path.join(LIVE_DIR, 'vmlinuz')).size;
if (stats.initrdExists) stats.initrdSize = fs.statSync(path.join(LIVE_DIR, 'initrd.img')).size;
if (stats.squashfsExists) stats.squashfsSize = fs.statSync(path.join(LIVE_DIR, 'filesystem.squashfs')).size;
} catch(e) {}
res.render('dashboard', { stats, title: 'Dashboard' });
});
module.exports = router;