{{-- ═══ Logo ═══ --}}
MAILWOLT
Ersteinrichtung
{{-- ═══ Schritt-Indikator ═══ --}} @if($step < 5)
@foreach([1 => 'System', 2 => 'Domains', 3 => 'Admin', 4 => 'Fertig'] as $n => $label)
@if($step > $n) @else {{ $n }} @endif
{{ $label }}
@if($n < 4)
@endif @endforeach
@endif {{-- ═══ Karte ═══ --}}
{{-- ── Schritt 1: System ── --}} @if($step === 1)
System-Einstellungen
Grundkonfiguration für deine Mailwolt-Instanz
@error('instance_name')
{{ $message }}
@enderror
{{-- ── Schritt 2: Domains ── --}} @elseif($step === 2)
Domains
Domains müssen bereits auf diesen Server zeigen
DNS-Einträge zuerst setzen, dann hier eintragen. Kein http:// am Anfang.
@error('ui_domain')
{{ $message }}
@enderror
@error('mail_domain')
{{ $message }}
@enderror
@error('webmail_domain')
{{ $message }}
@enderror
{{-- ── Schritt 3: Admin ── --}} @elseif($step === 3)
Admin-Account
Dieser Account hat vollen Zugriff auf das Control Panel
@error('admin_name')
{{ $message }}
@enderror
@error('admin_email')
{{ $message }}
@enderror
@error('admin_password')
{{ $message }}
@enderror
{{-- ── Schritt 4: Zusammenfassung ── --}} @elseif($step === 4)
Alles bereit
Überprüfe die Einstellungen und schließe die Einrichtung ab
@foreach([ ['label' => 'Instanz', 'value' => $instance_name], ['label' => 'Zeitzone', 'value' => $timezone], ['label' => 'UI Domain', 'value' => $ui_domain], ['label' => 'Mail Domain', 'value' => $mail_domain], ['label' => 'Webmail Domain', 'value' => $webmail_domain], ['label' => 'Admin E-Mail', 'value' => $admin_email], ] as $row)
{{ $row['label'] }} {{ $row['value'] ?: '—' }}
@endforeach
@if($skipSsl)
Nginx wird ohne SSL konfiguriert. Im Dashboard erscheint ein Hinweis bis SSL eingerichtet ist.
@endif
{{-- ── Schritt 5: Domain-Setup ── --}} @elseif($step === 5)
@php $anyFailed = collect($domainStatus)->contains(fn($s) => in_array($s, ['error','nodns','noipv6'])); $allDone = $setupDone; @endphp
Domains werden eingerichtet
SSL-Zertifikate werden beantragt und Nginx wird konfiguriert
@php $labels = ['ui' => $ui_domain, 'mail' => $mail_domain, 'webmail' => $webmail_domain]; $statusConfig = [ 'pending' => [ 'icon' => '…', 'color' => 'var(--mw-t5)', 'bg' => 'var(--mw-bg3)', 'label' => 'Warte …', 'hint' => null, ], 'running' => [ 'icon' => '↻', 'color' => '#7dd3fc', 'bg' => 'rgba(14,165,233,.08)', 'label' => 'Wird registriert …', 'spin' => true, 'hint' => null, ], 'done' => [ 'icon' => '✓', 'color' => 'rgba(34,197,94,.9)', 'bg' => 'rgba(34,197,94,.07)', 'label' => 'SSL-Zertifikat ausgestellt', 'hint' => null, ], 'nodns' => [ 'icon' => '!', 'color' => '#fbbf24', 'bg' => 'rgba(251,191,36,.07)', 'label' => 'Kein DNS-Eintrag gefunden', 'hint' => 'Der A-Record dieser Domain zeigt nicht auf diesen Server oder ist noch nicht propagiert. DNS-Einstellungen prüfen und danach Retry klicken.', 'hints_extra' => ['DNS A-Record auf Server-IP setzen', 'DNS-Propagierung abwarten (bis zu 24h)', 'Mit dig +short A domain.com prüfen'], ], 'noipv6' => [ 'icon' => '!', 'color' => '#fbbf24', 'bg' => 'rgba(251,191,36,.07)', 'label' => 'IPv6 nicht konfiguriert', 'hint' => 'Die Domain hat einen AAAA-Record, aber dieser Server hat kein aktives IPv6. Let\'s Encrypt prüft alle DNS-Records.', 'hints_extra' => ['IPv6 am Server aktivieren', 'ODER: AAAA-Record aus dem DNS entfernen'], ], 'error' => [ 'icon' => '✗', 'color' => '#f87171', 'bg' => 'rgba(239,68,68,.07)', 'label' => 'SSL-Zertifikat fehlgeschlagen', 'hint' => 'Let\'s Encrypt konnte die Domain nicht verifizieren. Self-signed Zertifikat wird verwendet.', 'hints_extra' => ['Port 80 muss von außen erreichbar sein', 'Firewall-Regeln prüfen (ufw allow 80)', 'AAAA-Record ohne IPv6 am Server entfernen', 'http://domain/.well-known/acme-challenge/ im Browser testen'], ], 'skip' => [ 'icon' => '–', 'color' => 'var(--mw-t4)', 'bg' => 'var(--mw-bg3)', 'label' => 'SSL übersprungen', 'hint' => null, ], ]; @endphp
@foreach(['ui' => 'UI Domain', 'mail' => 'Mail Domain', 'webmail' => 'Webmail Domain'] as $key => $typeLabel) @php $st = $domainStatus[$key] ?? 'pending'; $cfg = $statusConfig[$st] ?? $statusConfig['pending']; @endphp
{{ $cfg['icon'] }}
{{ $typeLabel }}
{{ $labels[$key] }}
{{ $cfg['label'] }}
@if(!empty($cfg['hint']))
{{ $cfg['hint'] }}
@if(!empty($cfg['hints_extra']))
    @foreach($cfg['hints_extra'] as $hint)
  • {{ $hint }}
  • @endforeach
@endif
@endif
@endforeach
@if($allDone && $anyFailed)
Einige Domains konnten nicht vollständig eingerichtet werden. Du kannst es erneut versuchen oder mit Self-signed Zertifikat fortfahren.
@endif @endif
{{-- ═══ Navigation ═══ --}} @if($step < 5)
@if($step > 1) @endif @if($step < 4) @else @endif
@elseif($step === 5 && $setupDone)
@endif