feat: implement prerequisite validation and installation for server setup (#7297)

This commit is contained in:
Andras Bacsai
2025-11-24 10:28:10 +01:00
committed by GitHub
14 changed files with 539 additions and 36 deletions

View File

@@ -5,7 +5,7 @@
])>
@if ($activity)
@if (isset($header))
<div class="flex gap-2 pb-2 flex-shrink-0">
<div class="flex gap-2 pb-2 flex-shrink-0" @if ($isPollingActive) wire:poll.1000ms @endif>
<h3>{{ $header }}</h3>
@if ($isPollingActive)
<x-loading />

View File

@@ -546,6 +546,13 @@
</div>
</div>
@if ($prerequisiteInstallAttempts > 0)
<div class="p-6 bg-neutral-50 dark:bg-coolgray-200 rounded-lg border border-neutral-200 dark:border-coolgray-400">
<h3 class="font-bold text-black dark:text-white mb-4">Installing Prerequisites</h3>
<livewire:activity-monitor header="Prerequisites Installation Logs" :showWaiting="false" />
</div>
@endif
<x-slide-over closeWithX fullScreen>
<x-slot:title>Server Validation</x-slot:title>
<x-slot:content>

View File

@@ -52,6 +52,30 @@
@endif
@endif
@if ($uptime && $supported_os_type)
@if ($prerequisites_installed)
<div class="flex w-64 gap-2">Prerequisites are installed: <svg class="w-5 h-5 text-success"
viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
<g fill="currentColor">
<path
d="m237.66 85.26l-128.4 128.4a8 8 0 0 1-11.32 0l-71.6-72a8 8 0 0 1 0-11.31l24-24a8 8 0 0 1 11.32 0l36.68 35.32a8 8 0 0 0 11.32 0l92.68-91.32a8 8 0 0 1 11.32 0l24 23.6a8 8 0 0 1 0 11.31"
opacity=".2" />
<path
d="m243.28 68.24l-24-23.56a16 16 0 0 0-22.58 0L104 136l-.11-.11l-36.64-35.27a16 16 0 0 0-22.57.06l-24 24a16 16 0 0 0 0 22.61l71.62 72a16 16 0 0 0 22.63 0l128.4-128.38a16 16 0 0 0-.05-22.67M103.62 208L32 136l24-24l.11.11l36.64 35.27a16 16 0 0 0 22.52 0L208.06 56L232 79.6Z" />
</g>
</svg></div>
@else
@if ($error)
<div class="flex w-64 gap-2">Prerequisites are installed: <svg class="w-5 h-5 text-error"
viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor"
d="M208.49 191.51a12 12 0 0 1-17 17L128 145l-63.51 63.49a12 12 0 0 1-17-17L111 128L47.51 64.49a12 12 0 0 1 17-17L128 111l63.51-63.52a12 12 0 0 1 17 17L145 128Z" />
</svg></div>
@else
<div class="w-64"><x-loading text="Prerequisites are installed:" /></div>
@endif
@endif
@endif
@if ($uptime && $supported_os_type && $prerequisites_installed)
@if ($docker_installed)
<div class="flex w-64 gap-2">Docker is installed: <svg class="w-5 h-5 text-success"
viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
@@ -120,7 +144,7 @@
@endif
@endif
<livewire:activity-monitor header="Docker Installation Logs" :showWaiting="false" />
<livewire:activity-monitor header="{{ $installationStep }} Installation Logs" :showWaiting="false" />
@isset($error)
<pre class="font-bold whitespace-pre-line text-error">{!! $error !!}</pre>
<x-forms.button canGate="update" :canResource="$server" wire:click="retry" class="mt-4">