Real server stats via docker socket
This commit is contained in:
@@ -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') {
|
||||||
|
try {
|
||||||
|
const { execSync } = require('child_process');
|
||||||
|
|
||||||
|
// Get container count
|
||||||
|
const containers = execSync('docker ps --format "{{.Names}}" | wc -l', { cwd: '/' }).toString().trim();
|
||||||
|
|
||||||
|
// 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({
|
return NextResponse.json({
|
||||||
cpu: 'Load: 2.4, 1.8, 1.2',
|
containers: `${containers} running`,
|
||||||
ram: '42GB / 62GB used',
|
disk: disk,
|
||||||
disk: '72% used',
|
ram: ram,
|
||||||
uptime: '52 days',
|
load: load.trim(),
|
||||||
containers: '62 running'
|
uptime: uptime
|
||||||
});
|
});
|
||||||
|
} catch (e: any) {
|
||||||
|
return NextResponse.json({ error: e.message }, { status: 500 });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BACKUP STATUS
|
// BACKUP STATUS
|
||||||
|
|||||||
Reference in New Issue
Block a user