System Installer
{{-- ═══ Page Header ═══ --}}
Installer
{{-- Polling when running --}} @if($state === 'running' || $running)
@endif
{{-- ═══ Warning Banner ═══ --}}
Achtung: Diese Seite führt Systemänderungen durch. Installationen und Neukonfigurationen werden mit Root-Rechten ausgeführt und können laufende Dienste kurzzeitig unterbrechen.
{{-- ═══ Section 1: Komponentenstatus ═══ --}}
Komponentenstatus
@php $componentIcons = [ 'nginx' => '', 'postfix' => '', 'dovecot' => '', 'rspamd' => '', 'fail2ban' => '', 'certbot' => '', ]; @endphp @foreach($componentStatus as $key => $info)
{!! $componentIcons[$key] ?? '' !!}
{{ $info['label'] }}
@if($info['installed'] && $info['active']) Aktiv @elseif($info['installed']) Inaktiv @else Nicht installiert @endif
@endforeach @if(empty($componentStatus))
Status wird geladen …
@endif
{{-- ═══ Section 2: Status ═══ --}}
Installations-Status
@if($state === 'running')
Installation läuft … @if($component !== 'all') ({{ ucfirst($component) }}) @endif
Bitte nicht unterbrechen. Die Seite aktualisiert sich automatisch.
@elseif($rc !== null && $rc !== 0)
Installation fehlgeschlagen (rc={{ $rc }})
Bitte das Log unten prüfen.
@elseif($rc === 0)
Installation erfolgreich abgeschlossen.
@else
Keine Installation aktiv. Wähle eine Komponente oder starte die Komplett-Installation.
@endif {{-- Progress Bar --}} @if($state === 'running' || $progressPct > 0)
Fortschritt {{ $progressPct }}%
@endif
{{-- ═══ Section 3: Log Viewer ═══ --}}
Installer-Log
@if(count($logLines) === 0) Keine Log-Einträge vorhanden. @else @foreach($logLines as $line) @php $color = 'inherit'; if (str_contains($line, '[!]') || str_contains($line, 'error') || str_contains($line, 'Error') || str_contains($line, 'fehlgeschlagen')) { $color = '#f87171'; } elseif (str_contains($line, '[✓]') || str_contains($line, 'beendet') || str_contains($line, 'abgeschlossen')) { $color = 'rgba(34,197,94,.85)'; } elseif (str_contains($line, '[i]')) { $color = 'var(--mw-t3)'; } elseif (str_contains($line, '=====')) { $color = 'rgba(14,165,233,.8)'; } @endphp {{ $line }}
@endforeach @endif
{{ count($logLines) }} Zeilen · /var/log/mailwolt-install.log