{{ $order->domain_name }} - Ladill Server Manager @php $powerStatus = strtolower((string) ($panelState['power_status'] ?? 'unknown')); $instanceStatus = strtolower((string) ($panelState['instance_status'] ?? 'unknown')); $badgeClasses = [ 'on' => 'bg-emerald-50 text-emerald-700 border-emerald-200', 'off' => 'bg-gray-100 text-gray-600 border-gray-200', 'running' => 'bg-emerald-50 text-emerald-700 border-emerald-200', 'stopped' => 'bg-gray-100 text-gray-600 border-gray-200', 'provisioning' => 'bg-blue-50 text-blue-700 border-blue-200', 'unknown' => 'bg-amber-50 text-amber-700 border-amber-200', 'online' => 'bg-emerald-50 text-emerald-700 border-emerald-200', 'offline' => 'bg-gray-100 text-gray-600 border-gray-200', 'pending_registration' => 'bg-amber-50 text-amber-700 border-amber-200', 'queued' => 'bg-slate-100 text-slate-700 border-slate-200', 'dispatched' => 'bg-blue-50 text-blue-700 border-blue-200', 'completed' => 'bg-emerald-50 text-emerald-700 border-emerald-200', 'failed' => 'bg-rose-50 text-rose-700 border-rose-200', ]; $panelRuntime = $panelRuntime ?? []; $agentStatus = strtolower((string) ($serverAgent?->status ?? 'pending_registration')); $managedTasksEnabled = (bool) ($panelRuntime['managed_stack_candidate'] ?? false); $taskTypeLabels = [ 'domain.add' => 'Add Domain', 'site.delete' => 'Remove Site', 'ssl.request' => 'Request SSL', 'database.create' => 'Create Database', 'php.configure' => 'Configure PHP', 'cron.list' => 'List Cron Jobs', 'cron.upsert' => 'Save Cron Job', 'cron.remove' => 'Remove Cron Job', 'log.read' => 'Read Logs', 'file.list' => 'List Files', 'file.read' => 'Read File', 'file.write' => 'Write File', ]; $cronEntries = (array) data_get($order->meta, 'server_panel.managed_cron_entries', []); $logSnapshots = collect((array) data_get($order->meta, 'server_panel.log_snapshots', [])) ->sortByDesc('read_at') ->values(); @endphp
Back to server details

Ladill Server Manager

{{ $order->domain_name }} · {{ $order->product?->name ?? 'Server' }}

@csrf

Power

{{ strtoupper($powerStatus) }}

Instance Status

{{ strtoupper($instanceStatus) }}

IPv4 Address

{{ $order->server_ip ?: '-' }}

Last Sync

{{ data_get($panelState, 'last_synced_at') ? \Illuminate\Support\Carbon::parse(data_get($panelState, 'last_synced_at'))->format('M d, Y H:i') : 'Not synced yet' }}

@if ($panelRuntime !== [])

Panel Mode

{{ $panelRuntime['label'] ?? 'Server Manager' }}

{{ $panelRuntime['primary_message'] ?? '' }}

@if (!empty($panelRuntime['secondary_message']))

{{ $panelRuntime['secondary_message'] }}

@endif
@if (!empty($panelRuntime['future_capabilities']))
Managed features: {{ implode(', ', (array) $panelRuntime['future_capabilities']) }}
@endif
@endif

Server Controls

@csrf
@csrf
@csrf

Selected Configuration

@foreach ($selectionSummary as $item)

{{ $item['label'] ?? 'Option' }}

@if (!empty($item['description']))

{{ $item['description'] }}

@endif

{{ $item['value'] ?? '-' }}

@endforeach
@if ($managedTasksEnabled)

Managed Tasks

@csrf

Queue Domain Link

Create or update a site/vhost on the managed server stack.

@csrf

Queue Database Create

The server agent will provision the database on the managed stack.

@csrf

Queue SSL Request

Issue or renew a certificate for a managed server domain.

@csrf

Queue File Task

Use this for file listing, reads, or writes through the server agent.

@csrf

Queue PHP Version Change

Switch the nginx vhost for a known site to a different PHP-FPM version.

@csrf

Queue Site Removal

Remove the nginx site configuration for a managed domain. Website files are left on disk.

@csrf

Queue Cron Task

Manage the Ladill-owned cron file on this server. Use a standard 5-field cron expression.

@csrf

Queue Log Read

Tail domain-specific nginx logs or service journals directly from the managed server.

Recent Tasks

@forelse ($serverTasks as $task)

{{ $taskTypeLabels[$task->type] ?? $task->type }}

{{ json_encode($task->payload ?? [], JSON_UNESCAPED_SLASHES) }}

@if ($task->error_message)

{{ $task->error_message }}

@elseif (($task->result['message'] ?? null))

{{ $task->result['message'] }}

@endif
{{ strtoupper((string) $task->status) }}

{{ $task->updated_at?->format('M d, Y H:i') }}

@empty
No managed tasks queued yet.
@endforelse

Known Sites

@forelse ($serverSites as $site)

{{ $site->domain }}

{{ $site->document_root ?: 'Document root pending' }}

PHP {{ $site->php_version ?: 'default' }} · SSL {{ strtoupper((string) ($site->ssl_status ?: 'pending')) }}

{{ strtoupper((string) $site->status) }}

@empty
No managed sites recorded yet.
@endforelse

Known Databases

@forelse ($serverDatabases as $database)

{{ $database->name }}

{{ $database->username ?: 'Username pending' }} · {{ strtoupper((string) $database->status) }}

{{ strtoupper((string) $database->engine) }}

@empty
No managed databases recorded yet.
@endforelse

File Sync Records

@forelse ($serverFiles as $file)

{{ $file->path }}

{{ ucfirst($file->kind) }} · {{ $file->size_bytes !== null ? number_format($file->size_bytes) . ' bytes' : 'Size pending' }}

{{ $file->last_synced_at?->format('M d, Y H:i') ?: 'Not synced yet' }}

@empty
No managed file records yet.
@endforelse

Managed Cron Entries

@forelse ($cronEntries as $entry)

{{ $entry['name'] ?? 'cron-job' }}

{{ $entry['schedule'] ?? '-' }} · {{ $entry['user'] ?? 'web' }}

{{ $entry['command'] ?? '-' }}

@empty
No managed cron entries synced yet.
@endforelse

Recent Log Snapshots

@forelse ($logSnapshots as $snapshot)

{{ strtoupper(str_replace('_', ' ', (string) ($snapshot['target'] ?? 'log'))) }} @if (!empty($snapshot['domain'])) · {{ $snapshot['domain'] }} @endif

{{ $snapshot['read_at'] ? \Illuminate\Support\Carbon::parse($snapshot['read_at'])->format('M d, Y H:i') : 'Pending' }}

{{ $snapshot['content_preview'] ?? 'No preview available yet.' }}
@empty
No log snapshots captured yet.
@endforelse
@endif
@if ($managedTasksEnabled)

Agent Status

Status {{ strtoupper($agentStatus) }}
Hostname {{ $serverAgent?->hostname ?: 'Not registered yet' }}
Version {{ $serverAgent?->agent_version ?: '-' }}
Last Heartbeat {{ $serverAgent?->last_heartbeat_at ? $serverAgent->last_heartbeat_at->format('M d, Y H:i') : 'Waiting for registration' }}
@if (! empty($serverAgent?->capabilities))

Reported Capabilities

{{ implode(', ', (array) $serverAgent->capabilities) }}

@endif
The agent registration and heartbeat pipeline is now active. Task execution still depends on the server-side agent binary being installed on the machine.
@endif

Instance Details

Region {{ data_get($panelState, 'region', $order->meta['region'] ?? '-') }}
Datacenter {{ data_get($panelState, 'datacenter', '-') }}
Image {{ data_get($panelState, 'image', '-') }}
Username {{ $order->server_username ?: 'root' }}

Access

Use the server password you set at checkout to access the machine.

@if ($order->server_ip)
ssh {{ $order->server_username ?: 'root' }}@{{ $order->server_ip }}
@endif