Changelog¶
Alle Änderungen an enconf werden hier dokumentiert. Ein Eintrag pro Tag, mit der höchsten an diesem Tag veröffentlichten Version als Überschrift.
v1.7.45 — 2026-04-09
Installer - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert
- feat: neues Installer-Layout mit Spinner + Zeitmessung pro Schritt (keine apt-Ausgabe mehr)
- feat: Chromium wird im Hintergrund nach der Installation installiert (spart ~60s Installationszeit)
- feat: Unbound DNS-Resolver wird im Installer vorinstalliert (nicht mehr rollenabhängig)
- fix: dpkg-Lock-Wait (bis 5 Min) vor Paket-Installation im Rollen-Setup
- fix:
apt-get upgradeaus postinst entfernt (verkürzt Installation um ~30s)
Infrastruktur
- fix: Unbound immer auf Port 5353 — kein Konflikt mehr mit PowerDNS auf Port 53
- fix: PowerDNS bindet auf Public IP statt
0.0.0.0(Fallback überip route get) - fix:
fixUnboundPortConflict()ist jetzt unconditional — erzwingt 5353 + pdns-Restart nach jedem Rollen-Setup - fix: systemd-resolved Stub-Listener wird im Installer deaktiviert
Panel
- fix: Dienste-Übersicht zeigt nur aktive/enabled Services (keine installierten-aber-ungenutzten PHP-Versionen mehr)
- fix: Recovery-Wizard Steps mit
labelPlacement="vertical"(kein Zeilenumbruch auf Mobile) - fix: Inter-Font lokal eingebettet statt Google Fonts (Panel + Website, DSGVO-konform)
- design: einheitliche Primärfarbe
#1677ffim gesamten Panel - chore: redundante globale rspamd-Slider entfernt (nur noch Pro-Domain-UI)
v1.7.32 — 2026-04-08
Bugfixes
- fix: Sury PHP-Repository wird bei Agent-Start automatisch eingerichtet (behebt fehlende PHP-Versionen auf bestehenden Installationen)
- fix: PHP-Versions-Select immer sichtbar, auch wenn alle Versionen installiert sind
- fix: Backup-Dateibrowser öffnet sich jetzt vor dem Restore-Modal (z-index)
- fix: Domain-Erstellung provisioniert jetzt Nginx-Vhost automatisch (vorher nur DB + DNS-SOA)
- fix: Domain-Löschung entfernt Domain aus Nginx-Vhost und löscht DNS-Zone
- fix: Domain-Alias-Löschung rekonfiguriert Nginx (Alias wurde im server_name belassen)
- fix: Subdomain-Löschung rekonfiguriert Nginx (Admin + Customer)
- fix: Domain-Update mit SiteID-Änderung rekonfiguriert Nginx
- fix: DKIM-Keys werden bei Domain-Erstellung automatisch generiert
- fix: Abgelaufene Trial/Lizenz lässt Panel starten (vorher os.Exit → 502 Bad Gateway)
- fix: Erzwungenes Lizenz-Modal nach Login bei abgelaufener Lizenz (nicht schließbar)
Features
- feat: WHMCS Provisioning-Modul (Open Source, MIT-Lizenz, kein Support)
- feat: Spam-Einstellungen in Admin-Settings jetzt global statt pro Domain (Kunden haben Hoheit über eigene Domains)
Dokumentation
- docs: Webmail-Sektion aktualisiert (SSO-Erwähnung entfernt)
v1.7.26 — 2026-04-07
Features
- feat: Login-Screen mit animiertem Mesh-Gradient-Hintergrund
- feat: ForgotPassword + ResetPassword nutzen neues AuthLayout
- feat: Kunden können Domains hinzufügen (
perm_create_domainsGating gefixt) - feat: maximale Postfachgröße aus Paket in Postfach-Erstellen/Bearbeiten-Modal angezeigt
- feat: Dashboard: Changelog-Button neben „Update verfügbar" mit Modal
- feat: Forgot-Password-Seite i18n für alle 15 Panel-Sprachen
- feat: Galaxy/Particle-Network Hintergrund im Login (Maus-Interaktion)
- feat: passive FTP-Port-Range 49152–49999 + ProFTPD PassivePorts konfiguriert
Design
- design: neues Logo (N als Leiterbahn mit Lötstellen, Brand-Blau
#1677ff) - design: Panel zeigt quadratisches Icon, Marketing-Site die Wordmark-Variante
- design: Tabellen-Phantom-Scrollbar bei leeren Tabellen entfernt (globaler Fix)
Bugfixes
- fix: phpMyAdmin SSO „Ungültige Token-Daten" — signon token file 0644 für www-data
- fix: Panel-Backups routen explizit zu Server ID=1
- fix: bcrypt-Fehler verschluckt + systemctl-Glob matchte nie
- fix: nft-Kommentar-Quoting + Legacy-postinst-Regel-Cleanup
- fix: SeedDefaultRules per-rule Idempotenz + korrekte Startup-Reihenfolge
- fix: nftables-Regel-Duplikation bei apt upgrade
- fix: ausgehende Mail ohne Date/Message-ID/kodiertem Subject Header
- fix: Paket-Permission
perm_custom_backup_targetToggle wurde nicht gespeichert
Cleanup
- chore: Feedback-Funktion aus Panel entfernt (UI + Backend + Model + Route)
- chore: Impressum/Datenschutz/AGB von Auth-Seiten entfernt
- chore: Settings → System Updates: Update-Buttons entfernt (jetzt vom Dashboard)
v1.7.4 — 2026-04-06
Features
- customer isolation hardening + auto migration
- disaster recovery Phase B prompt for customer-data restore
- per-server node restore action in admin backup UI
- multi-server disaster recovery (node-state backups)
- disaster recovery — panel-state backup tier + setup wizard
- WordPress theme install + delete + plugin delete confirmation
- show backup target [LOCAL]/[S3]/[FTP] tag in restore schedule selector
- instant snapshot listing from DB instead of S3 query
- server-wide backup schedules (Plesk-style admin mode)
- custom S3 storage per backup schedule + encryption key display
Bugfixes
- hide panel + node backups from Restore tab schedule selector
- apply-roles fails on apache2 conffile conflict + drop phantom pdns-utils
- postinst sets PANEL_HOST=true in agent.env for panel-state backups
- triggerJob + doSnapshots refresh path now fall back to global S3 settings
- agent stays alive in DEGRADED mode on expired trial; PermissionGuard reload race
- backup browse/restore S3 credentials fall back to global settings
- encryption key button missing from mobile schedule cards
- 12 webserver/templates/wordpress bugs (6x P2, 4x P3, 2x P4)
- 12 backup system bugs (2x P1, 2x P2, 5x P3, 3x P4)
- 15 server-wide backup bugs after CustomerID *uint change
- 9 bugs — customer delete cleanup, SQL escape, CIDR whitelist
- customer delete now drops MariaDB databases on the agent
- impersonation Return token missing PasswordVersion → forced re-login
- hide custom S3 credential fields from admin, show only for customers
Sicherheit
- fix 9 bugs (2x P1, 6x P2, 1x P3)
Hardening
- validate config files before reload (postfix, dovecot, systemd)
Dokumentation
- changelog konsolidiert — v1.5.57, v1.5.58 (2x), v1.5.65 zu einem v1.5.65 Eintrag
v1.5.54 — 2026-04-05
Features
- 7 neue Sprachen — Panel unterstützt jetzt 15 Sprachen
- domain redirects fully implemented — Nginx vhost, SSL, CRUD
- Lizenz-Banner zeigt Restlaufzeit + Modal für Key-Eingabe
Bugfixes
- email domain dropdown shows only active domains, backup S3 timeout
- backup snapshot/browse timeout — use background context for S3
- remove "No data" box on mobile pagination tables (5 pages)
- SMTP Key-Mismatch — Notifier las smtp_from_email statt smtp_from
- SMTP From-Adresse als Pflichtfeld markiert (kein Fallback mehr)
- kein Fallback für Mail-Absender — muss in Panel-Einstellungen konfiguriert sein
- Mail-Absender nutzt Postfix FQDN statt kurzen Hostname
- Dovecot SNI crasht nicht mehr — Config-Validierung + nur Mail-Domains
Sicherheit
- fix 14 security vulnerabilities (2x P1, 12x P2)
v1.5.45 — 2026-04-04
Features
- aliases in Nginx server_name, DNS pre-check for SSL, alias domain records
- WAF (ModSecurity) — Vollständiges Management mit Log-Viewer und Regelausnahmen
- add Reseller section to EULA, fix German umlauts, setup TOS checkbox
- Terms of Use (EULA) — docs DE+EN, setup acceptance checkbox
Bugfixes
- 6 fehlende logs.json i18n + SSL-Docs SAN/Alias-Info aktualisiert
- SSL-Zertifikat enthält automatisch alle Domain-Aliase als SANs
- Update-Spinner erkennt Neustart über license-info statt /health
- RepairSites schickt Aliases + WAF + echte PHPWorkers/Handler mit
- SSL-Seite dedupliziert Domains/Aliase/Subdomains nach Name
- Nginx server_name Duplikate und www.www. bei Domain-Aliase
- SSL-Seite zeigt Subdomains + Domain-Aliase, Update-Spinner, License-Banner Farben
- WAF Frontend — API-Response-Format anpassen (entries/rule_ids)
- canWaf in PerformanceModal statt EditModal definieren
- unused canWaf variable in Sites main component removed
- changelog v1.5.36 konsolidiert
- RepairSites prüft und korrigiert WordPress siteurl/home bei falschem SSL-Schema
- changelog v1.5.35 konsolidiert
- WordPress siteurl/home automatisch auf https:// aktualisieren bei SSL-Aktivierung
- changelog v1.5.34 konsolidiert
- wp-cli als Site-User statt root ausführen (Datei-Ownership-Bug)
- changelog v1.5.33 konsolidiert
- fehlende externe Tools (wp-cli, composer) + 7 apt-Pakete bei jedem Start prüfen
- changelog v1.5.32 konsolidiert (doppelter Eintrag entfernt)
- Package Update handler — alle 47 Felder werden jetzt gespeichert
- EULA portal URL — license.netcell-it.com → control.netcell-it.com
- Webmail-Link öffnet Roundcube direkt statt SSO-Token-Flow
Dokumentation
- changelog v1.5.40 ergänzt
- Changelog-Pflege-Regeln in CLAUDE.md dokumentiert
- changelog konsolidiert — 7 Duplikate zu einem v1.5.40 Eintrag zusammengefasst
- changelog v1.5.37 — WAF feature
- changelog v1.5.35 — repair WP URL fix
- changelog v1.5.35
- changelog v1.5.34
- changelog v1.5.33
- changelog v1.5.32
v1.5.28 — 2026-04-03
Features
- cPanel/WHM Import via SSH
- WordPress Staging — create, push-to-live, delete
- phpMyAdmin SSO temp-user, CPU-Fix, Datenbank-Import
- changelog als tabelle mit pagination + docs aufklappbar + DE/EN getrennt
- changelog-konsolidierung + git-committer identity
- update-fortschrittsanzeige mit 10s-polling und elapsed-counter
- changelog-seite auf docs.netcell-it.com + release.sh reihenfolge fix
- changelog anzeige bei verfügbaren Updates
Bugfixes
- changelog v1.5.25-28 konsolidiert zu einem v1.5.28 Eintrag
- staging infinite recursion + wp-cli plugin update bool parsing
- changelog v1.5.23 korrekte einträge + konsolidierungs-regex für ???+
- konsolidierungs-bug (fehlende '- ' präfix bei neuen einträgen)
- changelog-einträge bereinigt (keine internen Details)
- changelog ohne Gitea-Token — öffentliche docs URL statt privates Repo
Wartung
- auto-cleanup old .deb packages in dist/ — keep last 3 versions
Sonstiges
- fix+feat: 4 bugs behoben
v1.5.14 — 2026-04-02
Features
- log browser, smtp_from sender config, settings navigation
- Catch-All, Webmail SSO, 2FA Policy, DNSSEC, Fail2ban Jail Config, ModSecurity WAF
Bugfixes
- remove unused FileTextOutlined import from Sidebar
- fail2ban jail config per-server via server_id param
- validate IP in fail2ban UnbanIP; check Delete errors in backup handler
- close orphaned preview tab on error; fix WebStats dead admin code path
- DNSSEC idempotency, web stats subscription isolation, preview popup, trial text
- clarify ACME DNS settings labels — PowerDNS source, not challenge mode
- ACME settings whitelist, wildcard nameserver warning, Sites TS fix
- allow ACME DNS settings to be saved via panel settings whitelist
v1.5.5 — 2026-04-01
Features
- wildcard SSL certificates via DNS-01 challenge with PowerDNS
- enterprise design system, unbound/rspamd DNS fix, web stats, auto role packages
- auto-inject panel/reseller branding into all email templates
- licensing, mail SNI, security audit, docs, arm64 support
Bugfixes
- enforce license limit on import — reject migration if max_sites would be exceeded
- count WordPress installations against max_sites license limit
- security hardening + phpMyAdmin SSO
Dokumentation
- update documentation — email branding, reseller white-label, notifications
- update documentation for v1.4.21 features (DE + EN)
Wartung
- docs update workflow, release script arm64, SSL renewal SNI
v1.4.20 — 2026-03-31
Features
- full notification system with webhooks, 8-language templates, worker checks
Bugfixes
- backup worker panic + all 15 notification triggers active
- dpkg repair, onboarding redirect, template editor removal, system repair
v1.4.17 — 2026-03-30
Features
- rspamd full config (EdgeGuard-style), RBL management, mail settings consolidation
Bugfixes
- server settings table — clean width, no horizontal scroll
v1.2.3 — 2026-03-29
Features
- WordPress quota in customer dashboard
- real online/offline status for servers in settings
- reconfigure returns warnings to client
- show active subscription in customer dashboard banner
- global subscription context for customers
- multi-subscription support in customer dashboard
- panel runs on port 3443 — no conflict with customer sites
- reseller assignment in subscription creation modal
- multi-subscription support — domain optional, subscription selector
- frontend — ServerSelector on Site creation, server info in site list
Bugfixes
- ensure all services start on boot after server reboot
- email addresses always stored lowercase
- WordPress DB provisioner sets subscription_id + server_id
- all dropdown selectors filtered by active subscription
- WP delete removes all auto-created databases (including suffixed)
- startup migration enables HTTPS redirect for all SSL-enabled sites
- 5 audit findings — bandwidth, document_root, app type, ionCube
- PHP install enables all modules + sets default version
- enable all PHP modules after installation + set PHP default version
- WordPress handler sends absolute document_root to agent
- add missing PHP extensions to web role packages
- quota-status endpoint filters by active subscription
- impersonation returns first_name/last_name for dashboard greeting
- server list 3s timeout instead of 30s when agent unreachable
- WordPress install site selector filtered by active subscription
- provisioner auto-enables HTTPS redirect after SSL cert obtained
- SSL enable auto-activates HTTPS redirect + reconfigures Nginx
- config validation before reload for PHP-FPM and Apache
- PHP-FPM pool crash when max_children < 3
- login returns first_name/last_name for customers and resellers
- subscription delete now cascades to all resources on agent
- webserver switch — stop old webserver before starting new one
- webserver change not triggering apply-roles on agent
- default php_handler changed from apache to fpm
- hide reseller dropdown when license lacks reseller feature
- dashboard horizontal scroll — overflow-x hidden on main layout
- subscription delete now cascades to all resources on agent
- prevent shared DB deletion when multiple WP installs share a site
- template audit — 3 bugs fixed across webserver configs
- site list server_id — join via sites.server_id, include in DTO
- double-response bug in updateSite when agent is unreachable
Sonstiges
- refactor: remove OpenLiteSpeed completely — only Nginx + Apache remain
- refactor: remove WireGuard — direct HTTP between servers
- refactor: remove subscription cards from customer dashboard
- refactor: remove deprecated ForSubscription/ForSubscriptionMail + fix feedback error handling
- refactor: complete Enhance-model migration — all remaining handlers
- refactor: Enhance-Modell — Site-basiertes Server-Routing