@php $iconMappings = [ 'ubuntu' => 'ubuntu', 'debian' => 'debian', 'centos' => 'centos', 'alpine' => 'alpine', 'freebsd' => 'freebsd', 'openbsd' => 'openbsd', 'fedora' => 'fedora', 'arch' => 'archlinux', 'opensuse' => 'opensuse', 'suse' => 'opensuse', 'gentoo' => 'gentoo', 'oracle' => null, 'alma' => 'almalinux', 'rocky' => 'rocky-linux', 'clear' => null, 'rhel' => 'redhat', 'red hat' => 'redhat', 'open cloud' => null, 'nethserver' => null, 'alt linux' => null, 'amazon' => null, 'windows' => null, ]; $iconOverrides = [ 'proxmox' => asset('assets/os/proxmox.png'), 'amazon linux' => asset('assets/os/amazonlinux.png'), 'amazonlinux' => asset('assets/os/amazonlinux.png'), 'windows' => asset('assets/os/WIN.png'), 'oracle' => asset('assets/os/tux.svg'), 'clear' => asset('assets/os/tux.svg'), 'nethserver' => asset('assets/os/tux.svg'), 'open cloud' => asset('assets/os/tux.svg'), 'alt linux' => asset('assets/os/tux.svg'), ]; $badgeLabels = [ 'ubuntu 24.04 (recommended)' => 'Recommended', ]; $defaultIcon = asset('assets/os/tux.svg'); $categoryDefinitions = [ 'Ubuntu' => ['ubuntu'], 'Debian' => ['debian'], 'CentOS' => ['centos'], 'Enterprise / RHEL Family' => ['rhel', 'alma', 'rocky', 'oracle'], 'Community & Rolling' => ['fedora', 'arch', 'opensuse', 'gentoo', 'clear', 'alt linux'], 'Cloud & Appliances' => ['amazon', 'open cloud', 'nethserver'], 'Lightweight' => ['alpine'], 'BSD Family' => ['freebsd', 'netbsd', 'openbsd', 'dragonfly'], 'Proxmox Hypervisor' => ['proxmox'], 'Windows Server' => ['windows'], 'Other OS' => [], ]; $sortedOs = $osList->sortBy(fn ($os) => strtolower($os->name), SORT_NATURAL); $groupedOs = []; foreach ($categoryDefinitions as $label => $keywords) { $groupedOs[$label] = []; } foreach ($sortedOs as $template) { $normalized = \Illuminate\Support\Str::lower($template->name); $matchedLabel = 'Other OS'; foreach ($categoryDefinitions as $label => $keywords) { foreach ($keywords as $keyword) { if ($keyword && \Illuminate\Support\Str::contains($normalized, $keyword)) { $matchedLabel = $label; break 2; } } } $groupedOs[$matchedLabel][] = $template; } $groupedOs = collect($groupedOs)->filter(fn ($items) => count($items) > 0); @endphp
Choose a new operating system. The selected template will be installed from scratch.
No operating system templates are configured for this server type. Please contact support to have templates added.
This may take a few minutes. Please do not close this window.