@php $serverRouteParameters = ['server_uuid' => $server->uuid]; $serverMenuItems = [ [ 'label' => 'General', 'route' => 'server.show', 'active' => $activeMenu === 'general', 'icon' => 'settings', 'group' => 'Settings', ], [ 'label' => 'Advanced', 'route' => 'server.advanced', 'active' => $activeMenu === 'advanced', 'icon' => 'grid', 'group' => 'Settings', 'visible' => $server->isFunctional(), ], [ 'label' => 'Private Key', 'route' => 'server.private-key', 'active' => $activeMenu === 'private-key', 'icon' => 'keys', 'group' => 'Settings', ], [ 'label' => 'Cloud Token', 'route' => 'server.cloud-provider-token', 'active' => $activeMenu === 'cloud-provider-token', 'icon' => 'subscription', 'group' => 'Settings', 'visible' => (bool) ($server->hetzner_server_id || $server->vultr_instance_id), ], [ 'label' => 'CA Certificate', 'route' => 'server.ca-certificate', 'active' => $activeMenu === 'ca-certificate', 'icon' => 'file', 'group' => 'Settings', ], [ 'label' => 'Cloudflare Tunnel', 'route' => 'server.cloudflare-tunnel', 'active' => $activeMenu === 'cloudflare-tunnel', 'icon' => 'globe', 'group' => 'Networking', 'visible' => ! $server->isLocalhost(), ], [ 'label' => 'Destinations', 'route' => 'server.destinations', 'active' => $activeMenu === 'destinations', 'icon' => 'destinations', 'group' => 'Networking', 'visible' => $server->isFunctional(), ], [ 'label' => 'Swarm', 'route' => 'server.swarm', 'active' => $activeMenu === 'swarm', 'icon' => 'layers', 'group' => 'Networking', 'visible' => ! $server->isBuildServer() && ! $server->settings->is_cloudflare_tunnel, ], [ 'label' => 'Docker Cleanup', 'route' => 'server.docker-cleanup', 'active' => $activeMenu === 'docker-cleanup', 'icon' => 'storages', 'group' => 'Operations', 'visible' => $server->isFunctional(), ], [ 'label' => 'Log Drains', 'route' => 'server.log-drains', 'active' => $activeMenu === 'log-drains', 'icon' => 'notifications', 'group' => 'Operations', 'visible' => $server->isFunctional(), ], [ 'label' => 'Metrics', 'route' => 'server.metrics', 'active' => $activeMenu === 'metrics', 'icon' => 'graph', 'group' => 'Operations', 'visible' => $server->isFunctional(), ], [ 'label' => 'Danger', 'route' => 'server.delete', 'active' => $activeMenu === 'danger', 'icon' => 'shield-alert', 'group' => 'Danger zone', // Coolify host (id 0) cannot be deleted. Other servers may still use // host.docker.internal (e.g. Lima VMs) and must keep the Danger menu. 'visible' => ! $server->is_coolify_host, ], ]; $serverMenuItems = collect($serverMenuItems) ->filter(fn (array $item): bool => $item['visible'] ?? true) ->values(); $groupedServerMenuItems = $serverMenuItems->groupBy('group'); @endphp