@php // Threshold tone for gauges/bars: >=90 offline, >=75 warning, else online. $tone = fn (int $v): string => $v >= 90 ? 'offline' : ($v >= 75 ? 'warning' : 'online'); $barColor = ['online' => 'bg-online', 'warning' => 'bg-warning', 'offline' => 'bg-offline']; $statusLabel = ['online' => 'Online', 'warning' => 'Warnung', 'offline' => 'Offline'][$server->status] ?? ucfirst($server->status); $specs = $server->specs ?? []; $cores = $specs['cores'] ?? null; $ramGb = $specs['ram_gb'] ?? null; $diskGb = $specs['disk_gb'] ?? null; $ramUsed = $ramGb !== null ? round((float) $ramGb * $server->mem / 100, 1) : null; $diskUsed = $diskGb !== null ? (int) round((float) $diskGb * $server->disk / 100) : null; $specRows = [ ['Architektur', $specs['arch'] ?? '—'], ['Kernel', $specs['kernel'] ?? '—'], ['Virtualisierung', $specs['virt'] ?? '—'], ['Kerne', $cores ?? '—'], ['RAM', $ramGb !== null ? $ramGb.' GB' : '—'], ['Disk', $diskGb !== null ? $diskGb.' GB' : '—'], ]; $vitals = [ ['label' => 'CPU', 'icon' => 'cpu', 'val' => (int) $server->cpu, 'sub' => ($loadAvg > 0 ? 'Last '.number_format($loadAvg, 2).' · ' : '').($cores ? $cores.' Kerne' : '—')], ['label' => 'RAM', 'icon' => 'activity', 'val' => (int) $server->mem, 'sub' => $ramUsed !== null ? $ramUsed.' / '.$ramGb.' GB' : '—'], ['label' => 'Disk', 'icon' => 'server', 'val' => (int) $server->disk, 'sub' => $diskUsed !== null ? $diskUsed.' / '.$diskGb.' GB' : '—'], ]; @endphp
{{ $server->hostname }} · {{ $server->ip }} · {{ $server->os }} · Uptime {{ $server->uptime ?: '—' }} · zuletzt {{ optional($server->last_seen_at)->diffForHumans() ?? '—' }}
Keine Live-Verbindung — gezeigt werden die zuletzt gespeicherten Werte. Zugang/Erreichbarkeit prüfen.
{{ $v['sub'] }}
{{ $check['label'] }}
{{ $check['detail'] }}
{{ $vol['mount'] }}
{{ $vol['fs'] }} · {{ $vol['size'] }}
Keine Volumes gelesen.
@endforelse| Name | IP | MAC | RX | TX |
|---|---|---|---|---|
| {{ $if['name'] }} | {{ $if['ip'] }} | {{ $if['mac'] }} | {{ $if['rx'] }} | {{ $if['tx'] }} |
{{ $key['comment'] }}
{{ $key['fingerprint'] }}
Keine autorisierten Schlüssel.
@endforelse