Real server stats via docker socket

This commit is contained in:
Neo
2026-02-19 11:44:56 +00:00
parent 25c749b6ee
commit 457ad7234b

View File

@@ -82,15 +82,36 @@ export async function GET(request: Request) {
return NextResponse.json(memories); return NextResponse.json(memories);
} }
// SERVER STATUS // SERVER STATUS - real data from docker
if (type === 'server') { if (type === 'server') {
return NextResponse.json({ try {
cpu: 'Load: 2.4, 1.8, 1.2', const { execSync } = require('child_process');
ram: '42GB / 62GB used',
disk: '72% used', // Get container count
uptime: '52 days', const containers = execSync('docker ps --format "{{.Names}}" | wc -l', { cwd: '/' }).toString().trim();
containers: '62 running'
}); // Get disk usage
const disk = execSync('df -h / | tail -1 | awk \'{print $5}\'', { cwd: '/' }).toString().trim();
// Get RAM usage
const ram = execSync('free -h | grep Mem | awk \'{print $3 "/" $2}\'', { cwd: '/' }).toString().trim();
// Get load
const load = execSync('uptime | awk -F\'load average:\' \'{print $2}\'', { cwd: '/' }).toString().trim();
// Get uptime
const uptime = execSync('uptime -p', { cwd: '/' }).toString().trim();
return NextResponse.json({
containers: `${containers} running`,
disk: disk,
ram: ram,
load: load.trim(),
uptime: uptime
});
} catch (e: any) {
return NextResponse.json({ error: e.message }, { status: 500 });
}
} }
// BACKUP STATUS // BACKUP STATUS