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);
|
||||
}
|
||||
|
||||
// SERVER STATUS
|
||||
// SERVER STATUS - real data from docker
|
||||
if (type === 'server') {
|
||||
return NextResponse.json({
|
||||
cpu: 'Load: 2.4, 1.8, 1.2',
|
||||
ram: '42GB / 62GB used',
|
||||
disk: '72% used',
|
||||
uptime: '52 days',
|
||||
containers: '62 running'
|
||||
});
|
||||
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({
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user