{{ data_get_str($server, 'name')->limit(24) }} | Server | Coolify
@if ($server->isLocalhost()) @include('livewire.server.partials.localhost-general') @else @php $provider = match (true) { filled($server->hetzner_server_id) => 'Hetzner', filled($server->digitalocean_droplet_id) => 'DigitalOcean', filled($server->vultr_instance_id) => 'Vultr', default => null, }; $providerStatus = match ($provider) { 'Hetzner' => $hetznerServerStatus, 'DigitalOcean' => $digitalOceanDropletStatus, 'Vultr' => $vultrInstanceStatus, default => null, }; $providerStatusType = match (true) { in_array($providerStatus, ['running', 'active']) => 'success', in_array($providerStatus, ['starting', 'initializing', 'pending', 'new']) => 'warning', in_array($providerStatus, ['off', 'stopped', 'suspended', 'archive', 'deleted']) => 'error', default => 'neutral', }; $hasLinkableCloudProviders = (!$server->hetzner_server_id && $availableHetznerTokens->isNotEmpty()) || (!$server->vultr_instance_id && $availableVultrTokens->isNotEmpty()) || (!$server->digitalocean_droplet_id && $availableDigitalOceanTokens->isNotEmpty()); $hetznerMatch = $matchedHetznerServer ? [ 'name' => $matchedHetznerServer['name'] ?? 'Hetzner server', 'id' => $matchedHetznerServer['id'] ?? null, 'status' => $matchedHetznerServer['status'] ?? null, ] : null; $digitalOceanMatch = $matchedDigitalOceanDroplet ? [ 'name' => $matchedDigitalOceanDroplet['name'] ?? 'DigitalOcean Droplet', 'id' => $matchedDigitalOceanDroplet['id'] ?? null, 'status' => $matchedDigitalOceanDroplet['status'] ?? null, ] : null; $vultrMatch = $matchedVultrInstance ? [ 'name' => $matchedVultrInstance['label'] ?? $matchedVultrInstance['hostname'] ?? 'Vultr instance', 'id' => $matchedVultrInstance['id'] ?? null, 'status' => $matchedVultrInstance['status'] ?? null, ] : null; @endphp
{{-- isBuildServer uses instantSave; keep dirty tracking on explicit-save fields. --}} @if ($provider) @if ($provider === 'Hetzner') @elseif ($provider === 'DigitalOcean') @elseif ($provider === 'Vultr') @endif @endif @if ($server->server_metadata) @endif @if ($server->isTransferredAway()) @else @endif

{{ $server->name }}

@if ($server->isTransferredAway()) This server was migrated away from this Coolify instance and cannot be managed here. @elseif ($server->isFunctional()) The server is reachable, validated, and ready to host resources. @else Validate the SSH connection before using this server. @endif

@if ($server->server_metadata) @include('livewire.server.partials.server-details', ['server' => $server]) @else
Fetch server details
@endif
@if ($hasLinkableCloudProviders)
@if (!$server->hetzner_server_id && $availableHetznerTokens->isNotEmpty()) @endif @if (!$server->digitalocean_droplet_id && $availableDigitalOceanTokens->isNotEmpty()) @endif @if (!$server->vultr_instance_id && $availableVultrTokens->isNotEmpty()) @endif
@endif Validate and configure {{ $server->isFunctional() ? 'Revalidate connection' : 'Validate connection' }}
@if ($server->isTransferredAway()) This server was migrated away from this Coolify instance. It cannot be revalidated or managed here. Use the target instance, or delete this server when you no longer need the archive. @endif @if ($this->limaStartCommand) {{ $this->limaStartCommand }} @endif @if ($server->isForceDisabled() && isCloud()) This server is disabled because the current plan server limit was exceeded. @endif
@if (!$isSwarmWorker && !$isBuildServer) @endif
@if (!$server->isLocalhost())
@if ($isBuildServerLocked) @else @endif
@endif
@if ($server->validation_logs)
{!! $server->validation_logs !!}
@endif @endif