Changelog¶
All changes to enconf are documented here. Click on a version to expand the details.
v1.7.45 — 2026-04-09
Installer - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert - Keine Änderungen dokumentiert
- New installer layout with animated spinner + elapsed time per step (no more apt output)
- Chromium installed in background after setup (saves ~60s install time)
- Unbound DNS resolver pre-installed by installer (no longer role-dependent)
- dpkg lock wait (up to 5 min) before package installation in role setup
- Removed
apt-get upgradefrom postinst (saves ~30s install time)
Infrastructure
- Unbound always on port 5353 — no more conflict with PowerDNS on port 53
- PowerDNS binds to public IP instead of
0.0.0.0(fallback viaip route get) fixUnboundPortConflict()is now unconditional — forces 5353 + pdns restart after every role setup- systemd-resolved stub listener disabled by installer
Panel
- Services overview shows only active/enabled services (no unused PHP versions)
- Recovery wizard steps with
labelPlacement="vertical"(no line-break on mobile) - Inter font self-hosted instead of Google Fonts (panel + website, GDPR compliant)
- Unified primary color
#1677ffacross entire panel - Removed redundant global rspamd sliders (per-domain UI only)
v1.7.32 — 2026-04-08
Bugfixes
- fix: Sury PHP repository auto-installed on agent start (fixes missing PHP versions on existing installations)
- fix: PHP version select always visible, even when all versions installed
- fix: Backup file browser opens in front of restore modal (z-index)
- fix: Domain creation now auto-provisions Nginx vhost (previously only DB + DNS SOA)
- fix: Domain deletion removes domain from Nginx vhost and deletes DNS zone
- fix: Domain alias deletion reconfigures Nginx (alias was left in server_name)
- fix: Subdomain deletion reconfigures Nginx (admin + customer)
- fix: Domain update with SiteID change reconfigures Nginx
- fix: DKIM keys are auto-generated on domain creation
- fix: Expired trial/license lets panel start (previously os.Exit → 502 Bad Gateway)
- fix: Forced license modal after login when license expired (not closable)
Features
- feat: WHMCS provisioning module (open source, MIT license, no support)
- feat: Spam settings in admin settings now global instead of per-domain (customers control their own domains)
Docs
- docs: Webmail section updated (SSO mention removed)
v1.7.26 — 2026-04-07
Features
- Login screen with animated mesh gradient background
- ForgotPassword + ResetPassword share new AuthLayout
- Customers can add domains (
perm_create_domainsgating fixed) - Max mailbox size from package shown in mailbox create/edit modals
- Dashboard: changelog button next to "update available" with modal
- Forgot-password page i18n for all 15 panel languages
- Galaxy/particle network background on login (mouse-reactive)
- Passive FTP port range 49152–49999 + ProFTPD PassivePorts configured
Design
- New logo (N as circuit trace with solder joints, brand blue
#1677ff) - Panel shows square icon tile, marketing site uses wordmark variant
- Phantom horizontal scrollbar on empty tables removed (global fix)
Bugfixes
- phpMyAdmin SSO "invalid token data" — signon token file 0644 for www-data
- Panel backups now route explicitly to server id=1
- bcrypt error swallowed + systemctl glob never matched
- nft comment quoting + legacy postinst rule cleanup
- SeedDefaultRules per-rule idempotency + correct startup order
- nftables rule duplication on apt upgrade
- Outgoing mail missing Date/Message-ID/encoded Subject headers
- Package permission
perm_custom_backup_targettoggle never persisted
Cleanup
- Removed in-panel feedback submission (UI + backend + model + route)
- Removed Impressum/Datenschutz/AGB from auth pages
- Settings → System Updates: update buttons removed (now driven from dashboard)
v1.5.68 — 2026-04-06
Backups - feat: instant snapshot listing from DB instead of S3 query - docs: changelog konsolidiert — v1.5.57, v1.5.58 (2x), v1.5.65 zu einem v1.5.65 Eintrag - feat: show backup target [LOCAL]/[S3]/[FTP] tag in restore schedule selector - fix: encryption key button missing from mobile schedule cards
- feat: Custom S3 storage per backup schedule with encryption key display
- feat: Server-wide backup schedules (Plesk-style admin mode)
- feat: 15 server-wide backup bugs fixed after CustomerID *uint change
- feat: 12 backup system bugs fixed (2x P1, 2x P2, 5x P3, 3x P4)
Internationalization
- feat: 7 new languages — panel now supports 15 languages
Webserver & Hardening
- feat: 12 webserver/templates/WordPress bugs fixed (6x P2, 4x P3, 2x P4)
- hardening: Config files validated before reload (postfix check, doveconf, systemd-analyze, nginx -t)
- hardening: Mail operations with snapshot + rollback on validation failure
- hardening: systemd units verified with systemd-analyze before activation
Security & Bugfixes
- security: 9 security bugs fixed (2x P1, 6x P2, 1x P3) — RunCommand sudo bypass, bash -c metacharacter bypass, FileManager root files, FTP/Mail race conditions
- fix: Impersonation Return token missing PasswordVersion → forced re-login
- fix: Custom S3 credential fields shown to customers only, hidden from admin
- fix: 9 additional bugs — customer delete cleanup (FTP, cron, DNS, MariaDB), SQL escape hardening, CIDR whitelist
- fix: Customer delete now drops MariaDB databases on the agent
v1.5.55 — 2026-04-05
- security: fix 14 security vulnerabilities (2x P1, 12x P2)
- feat: domain redirects fully implemented — Nginx vhost, SSL, CRUD
- fix: remove "No data" box on mobile pagination tables (5 pages)
- fix: email domain dropdown shows only active domains, backup S3 timeout
- fix: backup snapshot/browse timeout — use background context for S3
- feat: custom S3 storage per backup schedule + encryption key display
- feat: 7 neue Sprachen — Panel unterstützt jetzt 15 Sprachen
v1.5.50 — 2026-04-05
- feat: Lizenz-Banner zeigt Restlaufzeit + Modal für Key-Eingabe
- fix: Dovecot SNI crasht nicht mehr — Config-Validierung + nur Mail-Domains
- fix: Mail-Absender nutzt Postfix FQDN statt kurzen Hostname
- fix: kein Fallback für Mail-Absender — muss in Panel-Einstellungen konfiguriert sein
- fix: SMTP Key-Mismatch — Notifier las smtp_from_email statt smtp_from
- fix: SMTP From-Adresse als Pflichtfeld markiert (kein Fallback mehr)
v1.5.45 — 2026-04-04
WAF (ModSecurity) - docs: changelog v1.5.40 ergänzt - fix: SSL-Seite zeigt Subdomains + Domain-Aliase, Update-Spinner, License-Banner Farben - docs: Changelog-Pflege-Regeln in CLAUDE.md dokumentiert - docs: changelog konsolidiert — 7 Duplikate zu einem v1.5.40 Eintrag zusammengefasst - fix: Nginx server_name Duplikate und www.www. bei Domain-Aliase - fix: RepairSites schickt Aliases + WAF + echte PHPWorkers/Handler mit - fix: SSL-Seite dedupliziert Domains/Aliase/Subdomains nach Name - fix: SSL-Zertifikat enthält automatisch alle Domain-Aliase als SANs - fix: Update-Spinner erkennt Neustart über license-info statt /health - fix: 6 fehlende logs.json i18n + SSL-Docs SAN/Alias-Info aktualisiert
- feat: WAF (ModSecurity) per site toggle (admin + customers with
perm_waf) - feat: WAF logs with site and severity filters
- feat: Rule exclusions (whitelisting) configurable per site
- feat: ModSecurity support in proxy vhost (Apache backend)
SSL & Domain Aliases
- feat: Domain aliases and subdomains automatically added to Nginx
server_name - feat: DNS pre-check via external resolver (Cloudflare 1.1.1.1) before SSL activation
- feat: Alias creation automatically creates domain record (visible in SSL management)
- feat: Alias creation triggers Nginx reconfigure
Terms of Use (EULA)
- feat: Full Terms of Use (EULA) at docs.netcell-it.com DE+EN
- feat: Setup page: acceptance checkbox with link to Terms of Use
- feat: Reseller section in Terms of Use
Bug Fixes
- fix: Package settings lost on save (29 missing fields in update handler)
- fix: Agent checks for external tools on startup and auto-installs if missing
- fix: 7 missing apt packages added to rolePackages
- fix: WordPress installation failed when wp-cli was not installed
- fix: wp-cli now runs as site user instead of root
- fix: WordPress siteurl/home automatically updated to https:// when SSL is enabled
- fix: Repair function corrects WordPress URLs when SSL scheme doesn't match
- fix: Webmail link opens Roundcube directly instead of SSO token flow
- fix: EULA portal URL corrected
- fix: SSL page now shows subdomains and domain aliases with SSL status
- fix: Update progress spinner with timer on dashboard
- fix: License banner colors improved (readable on red background)
Documentation
- docs: WAF documentation DE+EN
- docs: SSL documentation updated (DNS check, alias SSL, wildcard)
- docs: Terms of Use DE+EN
v1.5.28 — 2026-04-03
- feat: cPanel/WHM Import via SSH — customers, sites, mailboxes, databases, DNS, FTP, cron jobs
- feat: cPanel card enabled in Import page (was "Coming soon")
- feat: WordPress Staging — create staging environment, Push to Live, delete staging
- feat: Staging nginx vhost (noindex, shares PHP-FPM pool with production)
- feat: Staging section in WP Toolkit (overview, modals, badges, i18n DE+EN)
- fix: staging — infinite recursion in effectiveDocRoot (stack overflow)
- fix: WP plugin list — wp-cli sometimes returns update as bool instead of string
- fix: effectiveDocRoot — all WP operations use staging path for staging installs
- docs: cPanel import documentation DE+EN
v1.5.26 — 2026-04-03
- feat: Log browser (system logs in panel)
- feat: smtp_from sender email configurable
- feat: Changelog display for available updates in the panel
- feat: Changelog page on docs.netcell-it.com
- feat: Changelog panel shows full version history with pagination
- feat: Update progress indicator with 10s polling and elapsed timer
- feat: Changelog consolidation for multiple releases on the same day
- feat: Discover and import databases from MariaDB (admin)
- feat: phpMyAdmin SSO via temp user (no stored password required)
- fix: WordPress databases now correctly displayed in customer database area
- fix: Webmail button always visible on mobile devices
- fix: Logo reset in panel settings saves immediately
- fix: Update spinner detects restart even without version change
- fix: phpMyAdmin SSO auth_type conflict resolved
- fix: CPU display on system page now shows actual load
- fix: Orphaned database check was incorrect in multi-server setups
- chore: auto-cleanup old .deb packages in dist/
v1.4.21 — 2026-03-01
- feat: licensing — NetCell license integration
- feat: mail SNI support
- feat: security audit
- feat: arm64 support
- fix: security hardening
- fix: phpMyAdmin SSO
- chore: docs update workflow, release script arm64, SSL renewal SNI