diff --git a/app/Livewire/Ui/System/SettingsForm.php b/app/Livewire/Ui/System/SettingsForm.php index 72575ec..942c54e 100644 --- a/app/Livewire/Ui/System/SettingsForm.php +++ b/app/Livewire/Ui/System/SettingsForm.php @@ -272,11 +272,7 @@ class SettingsForm extends Component \Illuminate\Support\Facades\Log::error('SystemDomainSeeder failed', [ 'fqdn' => $expectedFqdn, 'error' => $e->getMessage(), - 'trace' => $e->getTraceAsString(), ]); - $this->dispatch('toast', type: 'warn', badge: 'Sysmail', - title: 'System-Domain konnte nicht angelegt werden', - text: $e->getMessage(), duration: 8000); } } @@ -398,11 +394,7 @@ class SettingsForm extends Component } if ($unreachable) { - $this->dispatch('toast', type: 'warn', badge: 'DNS', - title: 'DNS noch nicht erreichbar', - text: 'Kein DNS-Eintrag für: ' . implode(', ', $unreachable) . '. Domains wurden trotzdem gespeichert — Nginx-Konfiguration bitte nach DNS-Setup erneut speichern.', - duration: 9000, - ); + Log::info('mailwolt-apply-domains skipped (DNS not ready)', ['unreachable' => $unreachable]); return; } @@ -423,23 +415,8 @@ class SettingsForm extends Component if ($ok) { Setting::set('ssl_configured', '1'); - $this->dispatch('toast', type: 'done', badge: 'Nginx', - title: 'Nginx aktualisiert', - text: 'Nginx-Konfiguration wurde neu geladen.', - duration: 5000, - ); } else { - $lines = array_filter( - explode("\n", (string) $output), - fn($l) => preg_match('/\[!\]|error|failed|fehler|nginx\s+-t/i', trim($l)) - ); - $detail = implode(' · ', array_map('trim', array_slice(array_values($lines), 0, 3))); - - $this->dispatch('toast', type: 'warn', badge: 'Nginx', - title: 'Nginx-Konfiguration fehlgeschlagen', - text: $detail ?: 'Nginx konnte nicht neu geladen werden. Domains gespeichert. Siehe Laravel-Log.', - duration: 10000, - ); + Log::warning('mailwolt-apply-domains failed', ['output' => $output]); } } diff --git a/app/Observers/DomainObserver.php b/app/Observers/DomainObserver.php index 1e06f4e..8db08ad 100644 --- a/app/Observers/DomainObserver.php +++ b/app/Observers/DomainObserver.php @@ -20,8 +20,14 @@ class DomainObserver $selector = (string) config('mailpool.defaults.dkim_selector', 'mwl1'); $bits = (int) config('mailpool.defaults.dkim_bits', 2048); - // Service erledigt: Key generieren, DB (upsert) pflegen, Helper ausführen, OpenDKIM reloaden - app(\App\Services\DkimService::class)->generateForDomain($domain, $bits, $selector); + try { + app(\App\Services\DkimService::class)->generateForDomain($domain, $bits, $selector); + } catch (\Throwable $e) { + Log::warning('DKIM install skipped (sudo/helper not ready)', [ + 'domain' => $domain->domain, + 'error' => $e->getMessage(), + ]); + } // DNS-Records: aktiven Key aus DB lesen und provisionieren $active = $domain->dkimKeys()->where('is_active', true)->latest()->first();