From 457ad7234b6e3db4d580e7a1cfe22c6c8b4ce87e Mon Sep 17 00:00:00 2001 From: Neo Date: Thu, 19 Feb 2026 11:44:56 +0000 Subject: [PATCH] Real server stats via docker socket --- app/api/data/route.ts | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/app/api/data/route.ts b/app/api/data/route.ts index 4cd374a..1907c6d 100644 --- a/app/api/data/route.ts +++ b/app/api/data/route.ts @@ -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