Die Anfrage nach Rspamd gab es schon vor über 1,5 Jahren. (Rspamd-Unterstützung?)
Leider bisher ohne offizielle Rückmeldung.
Du erwartest ernsthaft dass auf Wünsche eingegangen wird? hahaha...
Die Anfrage nach Rspamd gab es schon vor über 1,5 Jahren. (Rspamd-Unterstützung?)
Leider bisher ohne offizielle Rückmeldung.
Du erwartest ernsthaft dass auf Wünsche eingegangen wird? hahaha...
kk könnten sie das bitte Korrigieren. Ich muss das jetzt mittlerweile mit nem Script regeln welches den / entfernt.
Hallo zusammen,
im DNS-Editor (siehe Screenshot – Auswahl der Record-Typen beim Anlegen eines neuen Eintrags) gibt es aktuell A, AAAA, CAA, CNAME, MX, NS, SSHFP, SRV, TLSA, TXT und PTR – aber keinen ALIAS-Typ.
Warum das fehlt und nützlich wäre: CNAME darf laut RFC nicht auf der Zonen-Root (@) gesetzt werden, wenn dort gleichzeitig andere Records (MX, TXT/SPF, NS etc.) existieren – was bei praktisch jeder "echten" Domain der Fall ist.
Genau dafür haben sich ALIAS-Records etabliert (von PowerDNS, Cloudflare, AWS Route53, DNSimple u.a. schon länger unterstützt): Der Nameserver löst das Ziel serverseitig bei jeder Anfrage auf und liefert direkt A/AAAA-Records aus – funktioniert dadurch auch auf der Root-Domain, ohne die CNAME-Einschränkung zu verletzen.
Mittlerweile praktisch der Standard-Ersatz für "CNAME auf der Root-Domain", daher der Filenamen-Scherz "ALIAS ist das neue CNAME".
Konkreter Anwendungsfall: Root-Domain (example.tld) soll auf einen extern gehosteten Dienst zeigen (z.B. eine CDN-Adresse, einen Load Balancer, GitHub Pages, o.ä.), der selbst hinter einem sich ändernden Hostnamen/IP-Set liegt – aktuell nur über feste A/AAAA-Records lösbar, die man manuell nachpflegen muss, sobald sich die Ziel-IP ändert.
Wunsch: Einen ALIAS-Typ im DNS-Editor (Liveconfig 2 UND 3) ergänzen, der intern periodisch aufgelöst und als A/AAAA-Records in die Zone geschrieben wird (klassische "ALIAS via serverseitiger Auflösung"-Umsetzung, wie es andere Anbieter machen).
Wäre das grundsätzlich denkbar? Falls es dafür schon einen Workaround oder ein bestehendes Ticket/Feature-Request gibt, gerne Bescheid geben – habe nichts dazu gefunden.
Nachtrag: vermutlich handelt es sich hier um einen mit KI erstellten Fehlerbericht. Der Neustart vom lcpolicyd dürfte das Problem vermutlich behoben haben (da legt lcpolicyd nämlich die neue Spalte automatisch an), das Hinzufügen von U_REJECTED_COUNT in die USERS-Tabelle von LiveConfig hat absolut keine Auswirkung (und sollte bitte wieder rückgängig gemacht werden).
Hallo Herr Keppler,
danke für den Nachtrag – die zusätzliche Spalte in der MySQL-USERS-Tabelle war tatsächlich unwirksam/falsch begründet, wie Sie schon vermutet hatten. Sie wurde bereits vor einiger Zeit wieder per ALTER TABLE ... DROP COLUMN entfernt, ist also nicht mehr vorhanden. Danke für die Klarstellung zur eigentlichen Ursache (lcpolicyd-eigene SQLite-Migration)!
Viele Grüße
Hallo kk,
mir ist nach dem Umstieg auf 3.2.4 etwas aufgefallen, das ich gerne einmal zur Einordnung teilen möchte – bin mir nicht sicher, ob das so gewollt ist oder ein Nebeneffekt, den ich einfach noch nicht richtig verstehe.
Setup: Ich habe eine Domain ([tt]ddns.example.tld[/tt]) im Panel als "Proxy" auf [tt]http://127.0.0.1:82/liveconfig/hosting/dnsupdate[/tt] angelegt, um sie als eigene DynDNS-Update-URL für Kundenrouter (FritzBox, Ubiquiti UDM oder aber Synology) zu nutzen.
Beobachtung: Egal was ich als Ziel eintrage (mit oder ohne trailing Slash), im generierten Apache-vHost landet immer ein Slash am Ende:
ProxyPass "/" "http://127.0.0.1:82/liveconfig/hosting/dnsupdate/" upgrade=websocket nocanon
ProxyPassReverse "/" "http://127.0.0.1:82/liveconfig/hosting/dnsupdate/"
Das scheint an dieser Stelle in apache.lua zu liegen (Zeilennummer kann je Version leicht abweichen):
if string.sub(dst, -2) == '/*' then dst = string.sub(dst, 1, string.len(dst)-1) end
if string.sub(dst, -1) ~= '/' then dst = dst .. '/' end
Warum das für mich relevant wurde: Die eigene [tt]/liveconfig/hosting/dnsupdate[/tt]-Route scheint auf eingehende Requests mit trailing Slash ([tt].../dnsupdate/?hostname=...[/tt]) mit 404 zu reagieren, während sie ohne Slash ([tt].../dnsupdate?hostname=...[/tt]) ganz normal mit 401 (fehlende Zugangsdaten) reagiert – also grundsätzlich erreichbar ist.
Dadurch laufen alle DynDNS-Update-Requests über den Proxy ins Leere, sobald die Domain als Proxy-Typ im Panel verwaltet wird.
Ich habe das lokal mit curl direkt gegen den internen Port reproduziert (mit und ohne Slash, jeweils identischer Query-String), das Verhalten war reproduzierbar unterschiedlich.
Frage: Ist das gewolltes Verhalten (und ich sollte die dnsupdate-Route anders/über einen anderen Weg ansprechen), oder ist das eine Lücke zwischen dem generierten Proxy-Ziel und der eigenen Routen-Matching-Logik?
Falls es tatsächlich ein Zusammenspiel ist, das so nicht beabsichtigt war, würde mich freuen, wenn das mal jemand mit tieferem Einblick in den Code gegenspiegeln könnte – nicht, dass ich da was übersehe.
Danke schon mal & viele Grüße
Danke für die Aufklärung! Bestätigt: Nach dem systemctl restart lcpolicyd hat die Datei /var/lib/liveconfig/lcpolicyd.db jetzt korrekt die Spalte:
CREATE TABLE USERS ( U_ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, U_USER VARCHAR(255) NOT NULL, U_LIMIT_1_INTERVAL INTEGER NOT NULL, U_LIMIT_1_LIMIT INTEGER NOT NULL, U_LIMIT_2_INTERVAL INTEGER NOT NULL, U_LIMIT_2_LIMIT INTEGER NOT NULL, U_LASTTS INTEGER, U_SEND_STATUS TINYINT DEFAULT 0 NOT NULL, U_REJECTED_COUNT INTEGER DEFAULT 0 NOT NULL);
(Meine ursprüngliche Annahme, dass es sich um eine fehlende Spalte in der MySQL-Haupt-DB handelt, war falsch — ich hatte dort eine Spalte ergänzt, die keinen Effekt hatte, und habe sie wieder entfernt.)
Zeitlicher Ablauf laut Journal:
14:23:17 — lcpolicyd startet zum ersten Mal nach dem Upgrade (kein Fehler im Journal zu diesem Zeitpunkt sichtbar)14:36:41 — erster [ERR] no such column: U_REJECTED_COUNT (offenbar der erste tatsächliche Login-Versuch nach dem Upgrade, ca. 13 Minuten nach dem Start)16:24 Uhr protokolliert)16:27:49 — manueller systemctl restart lcpolicyd → danach keine Fehler mehr, Spalte korrekt vorhandenDas deutet darauf hin, dass die Migration beim allerersten Start (ausgelöst durchs Paket-Postinst) nicht korrekt durchlief, ein manueller Neustart später aber problemlos funktionierte.
Angeforderter Ausschnitt aus /var/log/apt/term.log (kompletter Log-Block für den Upgrade-Vorgang):
Log started: 2026-08-19 14:23:06
Entfernen von liveconfig (2.19.1-release) ...
Vormals nicht ausgewähltes Paket liveconfig3 wird gewählt.
Vorbereitung zum Entpacken von .../liveconfig3_3.2.4-1.17979_amd64.deb ...
Entpacken von liveconfig3 (3.2.4-1.17979) ...
liveconfig3 (3.2.4-1.17979) wird eingerichtet ...
Created symlink '/etc/systemd/system/multi-user.target.wants/lcbackup.service' → '/usr/lib/systemd/system/lcbackup.service'.
Trigger für man-db (2.13.1-1) werden verarbeitet ...
Trigger für libc-bin (2.41-12+deb13u3) werden verarbeitet ...
Log ended: 2026-08-19 14:23:19
Auffällig: Im Log wird nur der lcbackup.service-Symlink explizit erwähnt, kein Hinweis auf einen lcpolicyd-Neustart durch das Postinst-Skript selbst (der laut journalctl aber trotzdem um 14:23:17 erfolgte — vermutlich durch einen separaten systemctl restart-Aufruf im Postinst, der in diesem Log-Ausschnitt nicht mitgeschrieben wird).
Danke nochmal, insgesamt also kein LiveConfig-weiter Bug, sondern ein einmaliger Migrations-Hänger beim ersten Start nach dem Upgrade, der sich per Neustart beheben ließ.
liveconfig3lcpolicyd als Autorisierungs-Policy-Dienst (authorized_submit_users via socketmap:unix:/var/run/lcpolicyd-lookup.sock:user)Nach dem Upgrade auf 3.2.4 schlägt jeder Login im LiveConfig-Panel (Web-UI, POST /liveconfig/app/login) mit folgendem Fehler fehl:
Beim erfolgreichen Login versucht LiveConfig, eine Sicherheits-Benachrichtigungsmail zu versenden (z. B. "Anmeldung mit neuem Gerät"). Dieser Versand ruft /usr/sbin/sendmail auf, welches über den lcpolicyd-Socket die Absenderberechtigung prüft. Diese Prüfung schlägt fehl:
sendmail: warning: socketmap:unix:/var/run/lcpolicyd-lookup.sock:user socketmap server permanent error: Lookup error. please try again later!
sendmail: fatal: authorized_submit_users: socketmap:unix:/var/run/lcpolicyd-lookup.sock:user: table lookup problem
Der resultierende Exit-Code 75 von sendmail führt zu einer unbehandelten Exception im LiveConfig-Server-Prozess, die den gesamten Login-Request abbricht:
[EMERG] Uncaught exception: /usr/sbin/sendmail returned with exit code 75
[EMERG] METHOD: POST; URL: /liveconfig/app/login
[EMERG] Got exception: std::runtime_error
Im lcpolicyd-Log (/var/log/liveconfig/lcpolicyd.log) findet sich die eigentliche Ursache:
Die Spalte U_REJECTED_COUNT in der Tabelle liveconfig.USERS fehlt nach dem Upgrade komplett — offenbar wurde der entsprechende Datenbank-Migrations-Patch beim Upgrade von 2.19.x auf 3.2.4 nicht (vollständig) ausgeführt, obwohl der Log beim Start mehrere Patches auflistete (Applying database patch 3.00.00 bis 3.03.01).
Anschließend systemctl restart lcpolicyd (der Dienst hatte die fehlschlagende Query offenbar zwischengespeichert/vorbereitet und musste neu starten, um die neue Spalte zu erkennen).
Nach diesem Fix funktionieren Login und Sicherheits-Benachrichtigungsmails wieder einwandfrei.
Bitte den Datenbank-Migrationspfad für Upgrades von 2.19.x auf 3.x prüfen — der Patch, der U_REJECTED_COUNT (vermutlich Teil einer neuen Brute-Force-/Rate-Limiting-Funktion für Logins) anlegt, scheint bei bestehenden Installationen mit Upgrade-Historie nicht zuverlässig zu greifen.
Kleiner Crashbericht für Liveconfig v2:
Absturzbericht: liveconfig.service beendet sich beim Shutdown mit SIGABRT (Signal 6)
======================================================================================
Umgebung: Debian GNU/Linux 13 (trixie), LiveConfig 2.19.1-release.
Auslöser: regulärer System-Reboot (systemctl reboot), kein Crash im Normalbetrieb.
Zusammenfassung
---------------
Beim Reboot am 2026-08-14 ca. 22:16-22:17 Uhr hat sich liveconfig.service nicht
sauber beendet, sondern nach ca. 60s mit Backtrace und SIGABRT terminiert. Der
Versuch, den Crash-Report an update.liveconfig.com zu senden, schlug fehl, weil
das Netzwerk beim Shutdown bereits abgebaut war.
Ablauf (aus /var/log/liveconfig/liveconfig.log, PID 11366=Haupt-, 11367=Serverkind)
------------------------------------------------------------------------------------
1. 22:15:11 - Serverkind (11367) verliert MySQL-Verbindung, weil MariaDB im
selben Reboot ebenfalls gestoppt wird. Reconnect-Loop mit Backoff startet:
1s -> 2s -> 4s -> 8s -> 16s -> 32s.
2. 22:16:14 - systemd sendet SIGTERM an den Hauptprozess, um den Dienst zu
stoppen. Das Serverkind steckt gerade im 32s-Sleep des Reconnect-Loops und
reagiert nicht.
3. 22:17:14 (60s später) - systemd eskaliert, sendet SIGTERM erneut, diesmal
direkt von PID 1. Das Serverkind terminiert daraufhin mit nicht abgefangenem
Signal 6 (Aborted).
4. Der Hauptprozess loggt einen Backtrace und versucht erfolglos, den Crash
automatisch zu melden (HTTPClient: connection error, state=7), da das
Netzwerk zu dem Zeitpunkt schon gestoppt war. 22:17:18 - "LiveConfig
terminated."
Ursache
-------
Der MySQL-Reconnect-Loop im Serverkind reagiert offenbar nicht auf SIGTERM,
während er in seinem Backoff-Sleep blockiert. Erst nach Ablauf von
TimeoutStopSec (65s) und einem zweiten SIGTERM direkt von PID 1 terminiert der
Prozess - dann aber per uncaught SIGABRT statt sauber.
Ausgelöst wurde es dadurch, dass MariaDB im selben Shutdown praktisch
gleichzeitig mit LiveConfig gestoppt wurde: liveconfig.service hat keine
explizite Abhängigkeit zu mariadb.service, daher lief der Reconnect-Loop noch,
als das Stop-Signal kam.
Häufigkeit: einmaliges Auftreten. Weder das vorherige Log (bis 2026-08-01) noch
die Journal-Historie (zurück bis 2026-07-05) zeigen einen zweiten Fall - alle
anderen Stops liefen sauber in unter 1s durch.
Relevanter Ausschnitt aus liveconfig.service (vor dem Fix)
-------------------------------------------------------------
[Unit]
After=network-online.target
[Service]
Type=forking
ExecStop=/usr/sbin/liveconfig -k stop
TimeoutStopSec=65
KillMode=process
-> Keine Abhängigkeit zu mariadb.service vorhanden.
Log-Auszug (Rohdaten, Zeitstempel/PID-Präfix "[2026/08/14 HH:MM:SS.ffffff] [PID|TID]" gekürzt)
--------------------------------------------------------------------------------------------------
ZitatAlles anzeigen22:15:11.863 [11367|6860] Lost connection to MySQL server (mysql_stmt_execute), trying to reconnect...
22:15:11.868 [11367|6860] ...trying again in 1 second(s). Error 2002: Can't connect to server on '127.0.0.1' (115)
22:15:12.868 [11367|6860] ...trying again in 2 second(s)...
22:15:13.554 [11367|11376] ERROR: Releasing db connection, but still have running transaction (-> forcing ROLLBACK)
22:15:31.571 [11367|7514] Lost connection to MySQL server (mysql_stmt_execute), trying to reconnect...
22:16:14.869 [11366|11366] Received SIGTERM (from uid=0, pid=8218), immediately terminating child processes
22:16:14.872 [11367|11367] Lost connection to MySQL server (mysql_prepare), trying to reconnect...
22:16:15.873 [11367|11367] ...trying again in 2 second(s)...
22:16:17.874 [11367|11367] ...trying again in 4 second(s)...
22:16:21.874 [11367|11367] ...trying again in 8 second(s)...
22:16:29.875 [11367|11367] ...trying again in 16 second(s)...
22:16:45.875 [11367|11367] ...trying again in 32 second(s)...
22:17:14.879 [11366|11366] Received SIGTERM (from uid=0, pid=1), immediately terminating child processes
22:17:14.885 [11366|11366] Server child process 11367 terminated; uncaught signal: 6 (Aborted)
22:17:14.886 [11366|11366] Backtrace: (liveconfig/server 2.19.1-release)
[0] 000017e734 [1] 0000121b15
[2] 000003fdf0 libc.so.6 [3] 000009495c libc.so.6
[4] 000003fcc2 libc.so.6 [5] 00000284ac libc.so.6
[6] 00000a1a3d libstdc++.so.6 [7] 00000b344a libstdc++.so.6
[8] 00000a14e3 libstdc++.so.6 [9] 00000b2cb0 libstdc++.so.6
[10] 0000022699 libgcc_s.so.1 [11] 0x7f0c68b8d14d
[12] 00000abc0c [13] 000015920a [14] 0000175964
[15] 00001596a7 [16] 0000175c18 [17] 00000fb716
[18] 00000fb7d9 [19] 0000122a63 [20] 00001211ad
[21] 00000bf03a
[22] 0000029ca8 libc.so.6 [23] 0000029d65 libc.so.6
[24] 00000bf5fa
Data[0]: 'STATS'
22:17:14.887 Sending crash report to https://update.liveconfig.com/
22:17:18.079 HTTPClient: connection error (state=7)
22:17:18.080 LiveConfig terminated.
Getestete, funktionierende Lösung
------------------------------------
systemd-Override für liveconfig.service, ergänzt "After=mariadb.service":
nano /etc/systemd/system/liveconfig.service.d/override.conf
systemd stoppt Dienste in umgekehrter Start-Reihenfolge, LiveConfig wird damit
beim Shutdown zuverlässig VOR MariaDB gestoppt - der Reconnect-Loop läuft dann
gar nicht erst in die Race Condition. Verifiziert per:
systemctl show liveconfig.service -p After
-> ...mariadb.service... (enthalten)
Vorschlag an den Support: "After=mariadb.service" (bzw. die jeweils passende
DB-Unit, z.B. mysql.service) direkt ins offizielle liveconfig.service-Template
aufnehmen, damit alle Installationen mit lokaler DB automatisch profitieren -
zusätzlich wäre wünschenswert, wenn der Reconnect-Loop selbst auf SIGTERM auch
während eines laufenden Backoff-Sleeps reagieren würde.
Für andere Admins: passendes Fix-Script als separater Anhang
(fix-liveconfig-shutdown-order.sh, hier als .txt hochgeladen - vor Ausführung
zu .sh umbenennen). Erkennt den DB-Service automatisch, legt den Override an,
kein Neustart von LiveConfig nötig.
mv fix-liveconfig-shutdown-order.sh.txt fix-liveconfig-shutdown-order.sh
chmod +x fix-liveconfig-shutdown-order.sh
sudo ./fix-liveconfig-shutdown-order.sh
Das Script erkennt automatisch euren laufenden Datenbank-Service (mariadb.service/mysql.service/mysqld.service), legt einen systemd-Override für liveconfig.service an und lädt systemd neu. Kein Neustart von LiveConfig nötig, keine Downtime, gefahrlos mehrfach ausführbar.
Es werden ja gem. Changelog ja viele Fehler ausgemerzt.
Meine Frage ist: Ist liveconfig 3 mittlerweile nutzbar so wie Liveconfig 2 oder sollte man noch die Finger von lassen.
Freue mich auf die Umfrageergebnisse
Endlich mal vernünftige Leute hier!
Nicht nur das: Laravel, GIT Integration, PHP Composer, und ne WAF (Web aplication Firewall) wäre geil.
Antrag unterstützt!
@marinal was haste gelöscht und warum?
In der zeit hättest du nen Testkunden anlegen können um das zu Testen.
Hab bereits Roundcube 1.7 im einsatz.
→ H a f t u n g s a u s s c h l u s s ←
Diese Anleitung wurde nach bestem Wissen erstellt und nur auf meinem Eigenen Server getestet und Umgesetzt.
Es gibt jedoch keine Garantie auf Funktion, Sicherheit oder Vollständigkeit.
Die Umsetzung erfolgt auf eigene Gefahr und Verantwortung.
Der Autor übernimmt keine Haftung für Schäden, Datenverluste, Sicherheitsrisiken oder sonstige negative Folgen.
Die Anleitung richtet sich ausschließlich an erfahrene Administratoren.
Wenn du Upgraden möchtest hier meine Config files (im Anhang meines Posts):
Webmail Domain einstellungen:
Vielleicht hilft das jemanden.
Ladet euch die neuste Version von Roundcube runter, und ersetzt den Ordner "config" und die "composer.json" im Rootverzeichnis von Roundcube durch meine im ZIP Gepackten Dateien.
Ich selber habe Roundcube WebMail nicht als APP in der Installation, ich hab das damals in meinem Webspace verlagert für meine Kunden.
Daher beruht diese "Anleitung" auf eine eigenständige Installation.
Bitte beachtet dass die Verzeichnisrechte danach erneut gesetzt werden müssen, je nach Inhaber, in meinem fall ist das Gruppe/Nutzer: hchristo:hchristo
Ebenfalls müssen für die Datei config.inc.php in dem Ordner config die Datenbankparameter angepasst werden.
Um das in betrieb zu nehmen muss der Composer runtergeladen werden:
Mag sein dass das Team von Liveconfig klein ist. Aber dann sollte auch mal offen gesprochen werden!
Themen zu Ignorieren seitens Liveconfig ist nicht die Lösung des Problems.
Es kann ja gesagt werden: "Die und die Funktion wird nicht umgesetzt!"
Dann kann man sich wenigstens darauf einstellen dass da nichts kommt. Ich bin auch bereit 20 oder 30€ Mon für Liveconfig zu bezahlen, wenn die gewünschten Funktionen von den es in dem Liveconfig Forum massenhaft gibt, auch umgesetzt werden.
Dieses Thema beispielweise: Github, in 2018 angefragt, in 2019 noch mal kurz darauf eingegangen, dann nichts mehr...
Viele Funktionen die andere Systeme schon Ewigkeiten haben, fallen hier aus der reihe.
2046 sollte evtl. frühestens damit zu rechnen sein
Wenn <das Böse Wort> nicht so unfassbar Teuer wäre, hätte ich schon laaange von LC zu PLSK gewechselt.
Mir ist nach dem Upgrade von Debian 12 auf Debian 13 aufgefallen, dass keine TLS-Verbindung mehr möglich war. Ursache war ein fehlendes TLS-Modul.
Falls jemand das gleiche Problem hat, hier die Lösung.
Fehlermeldung (z. B. in WinSCP)
Das TLS-Modul mod_tls war nach dem Upgrade nicht mehr installiert bzw. geladen.
Zuerst das fehlende Modul nachinstallieren:
Danach in der Datei:
die Raute (#) vor folgender Zeile entfernen:
Anschließend die Konfiguration neu laden (z. B. über LiveConfig) – danach funktionieren TLS-Verbindungen wieder.
Wer TLS verpflichtend nutzen möchte, kann zusätzlich in folgender Datei:
die Raute (#) vor dieser Zeile entfernen:
Danach ebenfalls die Konfiguration neu schreiben oder den Dienst neu starten:
(alternativ: service proftpd restart)
+ 1 Antrag unterstützt
der ist es doch noch besser abzuwarten?
Fohes neues Jahr!
Wie geschrieben, ich werde weiterhin warten mit LC3, ich beobachte die LC3 Beiträge & Changelogs.
Wenn ich für mich das gefühl bekomme dass LC "Stable" ist, dann upgrade ich und berichte natürlich auch wieder.