&1'); echo json_encode(['success' => true, 'output' => $output]); break; case 'status': $services = [ 'apache2' => trim(shell_exec('systemctl is-active apache2 2>/dev/null')) === 'active', 'postgresql' => trim(shell_exec('systemctl is-active postgresql 2>/dev/null')) === 'active', 'n8n' => trim(shell_exec('systemctl is-active n8n 2>/dev/null')) === 'active', 'java' => trim(shell_exec('pgrep -f adxapp.jar > /dev/null && echo 1 || echo 0')) === '1' ]; $disk = (int)trim(shell_exec("df / | tail -1 | awk '{print \$5}' | sed 's/%//'")); $mem = shell_exec("free -m | grep Mem | awk '{print \$2,\$7}'"); list($total, $avail) = explode(' ', trim($mem)); $mem_percent = round(($avail / $total) * 100); $ports = []; foreach([5821, 5822, 5823, 5678, 5432] as $p) { $ports[$p] = trim(shell_exec("netstat -tlnp 2>/dev/null | grep -q ':$p ' && echo 1 || echo 0")) === '1'; } echo json_encode([ 'success' => true, 'services' => $services, 'disk_usage' => $disk, 'mem_free' => $mem_percent, 'ports' => $ports, 'timestamp' => date('Y-m-d H:i:s') ]); break; case 'restart': $service = $_POST['service'] ?? ''; if(in_array($service, ['apache2', 'postgresql', 'n8n'])) { shell_exec("systemctl restart $service 2>&1"); echo json_encode(['success' => true, 'message' => "$service restarted"]); } else { echo json_encode(['success' => false, 'error' => 'Invalid service']); } break; case 'logs': $logs = shell_exec('tail -50 /var/log/wevads/auto-repair.log 2>/dev/null'); echo json_encode(['success' => true, 'logs' => $logs]); break; default: echo json_encode(['success' => false, 'error' => 'Unknown action']); }