Commit Graph

416 Commits (v1.1.426)

Author SHA1 Message Date
boban 93699108eb Feat: Fail2ban-Banlist mit Grid-Layout für saubere Spaltenausrichtung 2026-04-27 05:28:55 +02:00
boban ff28b98555 Fix: Fail2ban Restzeit via Python3-Script statt sqlite3-CLI (nicht installiert) 2026-04-27 05:20:10 +02:00
boban 3e157f4e56 Fix: Update-Modal wartet auf [DONE]-Marker im Log bevor done-State angezeigt wird 2026-04-27 04:17:21 +02:00
boban d84537b343 Fix: Fail2ban Restzeit-Fallback bei abgelaufenem DB-Eintrag + Update-Modal 2s Verzögerung vor done-State 2026-04-27 04:10:02 +02:00
boban 21015e69a3 Fix: Fail2ban SQLite-Abfrage nicht von is_readable abhängig machen (www-data hat kein Lesezugriff) 2026-04-27 04:05:55 +02:00
boban fc0ede4840 Feat: Fail2ban-Banlist zeigt Restlaufzeit und lesbaren Dienst-Namen 2026-04-27 04:03:01 +02:00
boban aaeea2bb86 Fix: Fail2Ban-Dateien auf clubird umbenannt (clubird-fail2ban, clubird-jails.local) 2026-04-27 03:54:53 +02:00
boban f266228fcf Fix: Fail2Ban Sudoers + Jails automatisch via ensure_system einrichten 2026-04-27 03:53:29 +02:00
boban 41de455826 Add: Logs-Button in UpdateCard + logos.svg 2026-04-27 03:50:20 +02:00
boban 49463bf34d Fix: Tab-URL-Keys auf Englisch (general, domains, backup, notifications) 2026-04-27 03:41:34 +02:00
boban eb77ec3342 Feat: Einstellungs-Tabs auf Deutsch (sicherung/meldungen) + Sidebars für alle Tabs 2026-04-27 03:40:40 +02:00
boban ff6002ca0b Feat: Einstellungen mit URL-Tabs (Allgemein, Domains & SSL, Backup, Benachrichtigungen) 2026-04-27 03:35:59 +02:00
boban 1f013b6dcd Fix: 503-Seite vollständig wiederhergestellt (fehlender Body/Ende-Tag) 2026-04-27 03:31:41 +02:00
boban dcb4456ba6 Fix: Update-Modal auf v403-Basis zurückgesetzt (ohne Slider) 2026-04-27 03:27:36 +02:00
boban 2fb66df19e Fix: Update-Modal – nur Ping-Animation und Slider entfernt, Basis v406 2026-04-27 03:25:57 +02:00
boban f756789cc4 Fix: Update-Modal ohne Slider und Ping-Dots, Spinner im Header 2026-04-27 03:18:22 +02:00
boban 32cf27bcd2 Fix: Update-Modal ohne Alpine.js – verhindert leeres Modal bei laufendem Update 2026-04-27 03:17:47 +02:00
boban 74600185ba Redesign: Update-Modal mit CluBird-Icon, Progress-Bar und besserem Log-Bereich 2026-04-27 03:14:28 +02:00
boban 919c2013f9 Design: 503-Seite finalisiert — nur Spinner, kein Bar/Dots 2026-04-27 03:11:31 +02:00
boban e23d9058ee Fix: 503-Seite zeigt immer Update-Ansicht — PHP-FPM Neustart erzeugt keinen Maintenance-Context 2026-04-27 02:58:36 +02:00
boban b48c74b676 Fix: 503 Wartungsmodus-Erkennung via storage/framework/maintenance.php statt Exception-Klasse 2026-04-27 02:57:28 +02:00
boban e49b1f6c4c Fix: 503-Seite unterscheidet Wartungsmodus (Update) von echtem Serverfehler 2026-04-27 02:55:29 +02:00
boban f473ec66d4 Fix: 503-Seite auf altes Layout zurück + CluBird-Icon + 3s Auto-Refresh 2026-04-27 02:54:49 +02:00
boban 22b6a9e0f2 Redesign: 503-Seite mit CluBird-Icon, Progress-Bar und Schritt-Anzeige 2026-04-27 02:52:20 +02:00
boban 93bcb56605 Rename: WoltGuard → CluGuard in UI-Labels 2026-04-27 02:48:48 +02:00
boban b6475fea75 Fix: Pipe-Signaturen durch $aliases ersetzen — clubird:* Befehle waren nicht aufrufbar 2026-04-27 02:46:38 +02:00
boban 14901a40e3 Fix: displayLatest nur anzeigen wenn tatsächlich Update verfügbar (kein Stale-Cache-Anzeige) 2026-04-27 02:30:46 +02:00
boban 20c9100226 Fix: doppeltes "v" in Dashboard-Versions-Anzeige
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 02:22:14 +02:00
boban 5dc55a9d1c Fix: Update-Erkennung via Gitea-API + Fallback-Kette verbessert
- CheckUpdates: Gitea REST-API als neuen Fallback (funktioniert ohne Auth
  bei öffentlichem Repo), git ls-remote als weiterer Fallback
- $remoteFile vor dem Fallback-Block deklariert (undefined variable fix)
- UpdateCard + UpdatePage: latNorm aus Cache normalisieren → kein doppeltes "v"
- UpdateCard: openLogs()-Methode hinzugefügt (Logs-Button im Dashboard)
- Setup-Wizard: Zeitzone automatisch aus Browser-Intl erkannt (@script)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 02:21:42 +02:00
boban fc7e1ed0f9 Fix: mailwolt:* als Aliase für clubird:* – Sbin-Scripts müssen nicht geändert werden
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:57:31 +02:00
boban 5f71a8d5e9 Fix: Dovecot24-Migration ergänzt 10-master.conf, 10-ssl.conf + dovecot_storage_version
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:45:41 +02:00
boban ea7dc3b94d Fix: Dovecot24-Migration ergänzt mail_location → mail_driver + mail_path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:34:32 +02:00
boban 4671909e14 Fix: Artisan-Kommando für Dovecot 2.4 Config-Migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:30:30 +02:00
boban 653bf55415 Refactor: Config-Dateipfade generisch – mailwolt-* Prefix entfernt
- rspamd: mailwolt-actions.conf → actions.conf
- dovecot: 99-mailwolt-tls.conf → 99-tls.conf
- postfix: mailwolt-tls.cf → tls.cf
- fail2ban: mailwolt-whitelist.local / 00-mailwolt-defaults.local → generic
- neu: clubird:migrate-config-names Artisan-Kommando für Server-Migration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:13:56 +02:00
boban 978fad64f4 Fix: CheckUpdates nutzt version_raw als primäre Installationsversion + git fetch als Fallback
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:12:08 +02:00
boban 23d6d9cb46 Design: Update-Card mit CluBird Logo + mw-* Farbsystem
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:04:40 +02:00
boban d3012792bc Fix: Artisan-Aufrufe von mailwolt:* auf clubird:* umgestellt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:04:09 +02:00
boban bbc7cc6c34 refactor: config/mailwolt.php → config/clubird.php + Artisan Commands umbenennen
- config/mailwolt.php → config/clubird.php (Datei umbenannt)
- Alle config('mailwolt.*') → config('clubird.*') ersetzt (15 PHP + 3 Blade)
- Artisan-Signaturen: mailwolt:* → clubird:* (5 Commands)
- Artisan-Aufrufe in Jobs + Scheduler aktualisiert
- Config-Cache neu aufgebaut

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 01:00:46 +02:00
boban 8ea925e4ae Fix: Toast Mittelmaß – 320px, badge kleiner als titel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:55:06 +02:00
boban c276a17a98 Fix: Toast kompakter + kein Umbruch bei Titel
- max-width 350→300px, padding/gap reduziert
- Icon 34→28px, Close-Btn 30→22px
- Titel-Span fix: notification-title-text statt notification-title (kein verschachtelter Flex mehr)
- Font-sizes: title 11.5px, text 10.5px, badge 9px
- Akzentfarben für success/warning/error/info angepasst

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:49:52 +02:00
boban 597773123f feat: Rebranding Mailwolt → CluBird
- SVG-Dateien erstellt: icon, icon-sm, favicon, logo-dark, logo-sidebar
- Sidebar: CluBird-Vogellogo + Wordmark mit Indigo-Akzent
- Alle sichtbaren "Mailwolt"-Texte in Blade-Dateien auf CluBird geändert
- Favicon-Link in dvx.blade.php ergänzt
- CSS-Klassen (.mw-*), config/mailwolt.php und Sudo-Scripts bleiben unverändert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:44:42 +02:00
boban afad3c3471 Fix: Gap zwischen System-Domain und leerem Domains-State
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:35:57 +02:00
boban 8a546f4f3d Fix: DNS-Modal zeigt .. statt MTA-FQDN wenn env() gecacht ist
env('MTA_SUB') und env('BASE_DOMAIN') liefern null bei config:cache.
Jetzt: Setting::get('mail_domain') als primäre Quelle, config() als Fallback.
MTA_SUB in mailpool.php als config-Key ergänzt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:33:31 +02:00
boban 486166c05a feat: Toastra-Plugin eingebunden + DKIM-Regenerierung fix
- Toastra als Toast-System integriert (ersetzt GlassToastra)
- CSS auf var(--mw-*) Dark-Theme angepasst, keine Klassen entfernt
- Livewire-Adapter mappt done/warn/error/info auf Toastra-Typen
- DnsDkim: doppelter sudo-install-dkim entfernt (DkimService macht es bereits)
- dkimReady() prüft Storage-Pfad statt sudo-Test (kein Sudoers-Eintrag nötig)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:29:29 +02:00
boban f375ea0215 Fix: Ein Toast mit Fehlerzusammenfassung statt kein Feedback bei Fehlern
applyDomains + syncSysmailDomain geben Fehler zurück statt Toasts zu dispatchen.
saveDomains zeigt am Ende einen Toast: grün wenn alles ok, orange mit Details bei Problemen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:14:44 +02:00
boban fa8e9e7e88 Fix: DKIM-Fehler blockiert nicht mehr Domain-Erstellung + nur 1 Toast beim Speichern
- DomainObserver: DKIM-install-Fehler wird geloggt statt Domain-Create zu blockieren
- saveDomains: nur noch 1 Toast, alle Zwischen-Toasts (Nginx, DNS, Sysmail) entfernt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:02:12 +02:00
boban 742c39f91a Fix: BASE_DOMAIN wird beim Speichern der Domains aus mail_domain abgeleitet
War auf Live-Server noch 'example.com' weshalb sysmail nie angelegt wurde.
mx.pxo.at → BASE_DOMAIN=pxo.at, MTA_SUB=mx automatisch gesetzt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 23:53:05 +02:00
boban 2ec10a8a81 Fix: syncSysmailDomain mit Fallback für fehlende BASE_DOMAIN + Toast bei Fehler
Leitet BASE_DOMAIN aus config → env → mail_domain-Setting ab.
Gibt Toast-Meldung aus wenn Seeder fehlschlägt, statt still zu scheitern.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 23:51:16 +02:00
boban fb6573598d Feat: syncSysmailDomain bei saveDomains – anlegen, umbenennen oder überspringen
Beim Speichern der Domains wird geprüft ob sysmail.<BASE_DOMAIN> bereits stimmt.
Falls nicht vorhanden: anlegen. Falls Domain geändert: alte löschen + neu erstellen.
Falls bereits korrekt: nichts tun.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 23:46:17 +02:00
boban 6bb2d09621 Fix: system_notify_email Accessor statt nicht-existenter notifyEmail()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 23:41:37 +02:00