@php $field = 'h-9 w-full rounded-md border border-line bg-inset px-3 font-mono text-sm text-ink placeholder:text-ink-4 focus:border-accent/40 focus:outline-none'; $label = 'mb-1 block font-mono text-[11px] uppercase tracking-wider text-ink-3'; $err = 'mt-1 flex items-center gap-1.5 font-mono text-[11px] text-offline'; @endphp
{{-- Header --}}

System

Domain, TLS & Release-Kanal

Zugriffsadresse des Panels und Update-Quelle

$hasTls, 'border-warning/30 text-warning' => ! $hasTls, ])> {{ $hasTls ? 'HTTPS aktiv' : 'Klartext-HTTP' }}
{{-- Domain & TLS --}} {{-- Current TLS state --}} @if ($hasTls)

HTTPS via Let's Encrypt (Caddy)

Caddy stellt automatisch ein Zertifikat für {{ $domain }} aus und erneuert es.

@else

Bare-IP-Modus: Klartext-HTTP

Ohne Domain läuft das Panel inkl. 2FA und Audit über unverschlüsseltes HTTP. Für den Produktivbetrieb eine Domain setzen.

@endif
@error('domain')

{{ $message }}

@enderror

Leer lassen für Zugriff per IP über HTTP.

@error('email')

{{ $message }}

@enderror

Für Zertifikatshinweise von Let's Encrypt.

Speichern
{{-- Generated Caddy site config --}}

Erzeugte Caddy-Konfiguration

{{ $caddyConfig }}

Caddy läuft als eigener Container und muss neu laden, um die Konfiguration zu übernehmen.

Die Datei wurde nach storage/app/caddy/clusev.caddy geschrieben. Im Caddy-Container ausführen:

{{ $reloadHint }}
{{-- Release-Kanal --}}
{{-- Segmented control --}}
@foreach ($channels as $key => $desc) @endforeach
{{-- Per-channel description --}}

Kanal: {{ $channel }}

{{ $channels[$channel] ?? '' }}