KeyHelp Changelog Viewer

KeyHelp PHP Interpreter Applications Changelog (One-Click Installer) Operating System Scripts Expand records
25.3 09 December 2025

New Features / Added Content

  • Added an option to update all internal database access passwords for services and KeyHelp via the `keyhelp-toolbox`

Improvements / Changes

  • Fail2Ban
    • Improved overall page load performance of the Fail2Ban overview page
    • Added speed mode to keep the overview page responsive even with very large record counts (up to several hundred thousand records)
    • Improved number formatting in the active jails and banned IPs overview
  • Checkboxes / Radio Buttons visuals
    • Checkboxes and radio buttons are now styled according to the active theme mode
    • Standardized visual appearance across browsers
    • Enhanced Dark Mode appearance [Pro feature]
    • Improved horizontal alignment of checkbox elements and labels
  • Debian 13 | Improved Postfix configuration and removed duplicate directives from /etc/postfix/main.cf
  • Debian 13 | Switched Rspamd sources from default Debian repositories to the newly available, up-to-date Rspamd repositories
  • Introduced a display limit of 5,000 entries in the file explorer to prevent possible memory overflow
  • Ensured correct permissions for /etc/cron.d/keyhelp-* files
  • Enhanced system security by applying stricter file permissions to .bash_logout, .bashrc, and .profile in users' home directories
  • Rspamd email protection
    • Rspamd WebUI now switches to Dark Mode when Dark Mode is enabled in KeyHelp (requires Rspamd 3.14+ and KeyHelp Pro)
    • Updated Rspamd multimap configuration
    • Improved multimap configuration template formatting
    • Improved blacklist/whitelist email address detection accuracy for more reliable matching
    • Added auto-learning capabilities
      • Added automatic learning of spam messages
      • Added automatic learning of ham messages
      • Added options to enable/disable learning and adjust thresholds in the Email Spam & Virus Protection configuration page
      • Added descriptions and commands for manual learning to clarify when spam classification is performed based on previously learned messages
  • Moved checkboxes of all overview tables to the left side, reducing required mouse movement and improving usability, especially on smaller screens
  • Added new and improved checkbox-related template components
  • Updated the Keyweb root CA used for the default self-signed certificate
  • Moved the email spam & virus protection settings to a dedicated configuration page
  • Improved the UI on the domain security tab
  • Improved visuals of the data table on the delete page when deleting resources
  • Added options to show/hide the disk space column on the user management page via viewing options
  • Domain overview page
    • Saved horizontal space by shrinking the visuals of the security features column
    • Added options to show/hide the PHP version and security column on the domain page via viewing options
    • Added an alternative view option to the domain default page, grouping all domains below their respective owners and saving significant horizontal space
  • Updated breakpoints on settings configuration pages to improve usability on smaller screens
  • Updated template components to allow more screen-space-saving combinations of checkbox and input elements
  • Replaced apt-get with apt in various contexts
  • Improved formatting of table footer lines in overview tables
  • Improved information presentation and visuals on the patch manager page
  • Added a link to the login page of the corresponding KeyHelp panel to all notification emails
  • Improved handling of custom logos in notification emails
  • Tmpfs / Ram drive
    • Improved stability of KeyHelp installation, KeyHelp updates, PHP interpreter updates and package updates by redesigning tmpfs handling during operations
    • Implemented unified tmpfs management across all update operations
    • Improved related error messages and CLI status reports
    • Debian 13 | Removed any existing unnecessary fstab records by KeyHelp for tmpfs management, since Debian 13 they are managed via systemd
    • Debian 13 | Respected new Debian 13 default RAM drive settings and applied them accordingly during installation during the installation
    • On older systems, RAM drive remains disabled even if previously enabled (can be changed later in configuration)
    • Improved description texts on the corresponding configuration page
  • Backup
    • Added snapshot deletion functionality
    • Displayed detailed mysqldump error messages in the KeyHelp UI when database prepare operations fail, instead of only showing a generic 'database could not be prepared' message
    • Ensured correct file permissions (0600) for database dump files even when mysqldump returns a non-zero exit code, as long as the dump file was created
    • Deprecated Backup Management | Moved download action for locally stored backups into the action column
  • Unified view options labels for user management and domain overview pages
  • Improved item distribution for the BatchColumn template filter when handling lists with only a few items
  • Installation
    • Introduced handling for dpkg lock situations
    • Switched internal command from 'lsof' to 'fuser' for improved compatibility
    • Implemented a waiting counter when dpkg/apt is locked during the installation process
  • Reviewed and updated the list of libraries required in the restricted SSH environment [Pro feature]
  • Antivirus Scanner
    • Added note that regex can also be used in exclude paths
    • Removed ambiguity from instruction texts.
    • Updated existing regex in exclude paths to simplified versions during the update process
  • General text & translations improvements
    • Reduced the number of translations required due to sentence streamlining
    • Fixed incorrect placeholder usage in community translations
    • Replaced quotes around labels used for highlighting in text with more visually appealing styles
    • Fixed quotation mark usage according to German typographic standards in German translation
    • Increased translation quality in general by updating terminology
    • Improved overall translation quality by updating terminology

API Changes

  • Added endpoint [GET] /backup/operations to provide information about running or past backup operations
  • Fixed errors in online documentation for the endpoints [GET] /clients/name/{name}/resources, /clients/name/{name}/stats, /clients/name/{name}/traffic
  • Updated online documentation to reflect the changes in KeyHelp 25.3
  • Updated openapi.json / openapi.yml files to support external definition parsers
  • Updated API version to 2.13

Tool Updates

  • Rclone 1.72.0
  • Restic 0.18.1
  • Adminer 5.4.1
  • PhpMyAdmin 5.2.3
    • BooDark theme 1.2.0

Vendor Library Updates

  • Font Awesome 7.1.0
  • Chart.js 4.5.1
  • phpmailer/phpmailer 7.0.1
  • symfony/polyfill-mbstring 1.33.0
  • symfony/polyfill-php80 1.33.0
  • symfony/polyfill-php81 1.33.0
  • symfony/polyfill-ctype 1.33.0
  • phpseclib/phpseclib 2.0.49

Translations

  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Chinese (traditional) (100%) | Thanks to Wu Ru Kang
  • Updated Dutch (100%) | Thanks to Bas Heijermans
  • Updated English (100%)
  • Updated French (100%) | Thanks to Chris Mehl
  • Updated German (100%)
  • Updated Hungarian (100%) | Thanks to Madarász László
  • Updated Italian (100%) | Thanks to Alessandro Daniele
  • Updated Polish (100%) | Thanks to VirtualIT
  • Updated Turkish (100%) | Thanks to Serkan Türkkan

Fixes / Imperfections

  • Fixed double-escaping issue in the success message when deleting API keys with names containing HTML special characters
  • Fixed an issue during backup creation where database dump creation used '--defaults-file' instead of '--defaults-extra-file', which could cause MySQL collation errors
  • Fixed PHP-FPM behavior by performing a service restart instead of a reload after updating an additional PHP interpreter, addressing issues some users experienced after the last interpreter update
  • Debian 13 | Fixed Additional PHP Interpreter installation failure caused by the loss of temporary files when the system switches between tmpfs and non-tmpfs configuration for the /tmp directory
  • Debian 13 | Fixed a PHP ValueError occurring with PHP 8.4 when processing empty or excessively long domain names
  • Fixed an issue where network monitoring charts remained empty on systems using legacy network interface naming schemes [Pro feature]
  • Fixed missing table header sorting icons due to the last Font Awesome update
  • Fixed PHP warnings and logic errors during installation/license checks on non-Keyweb servers
  • Fixed incorrect styling of the divider theme element in Dark Mode [Pro feature]
  • Fixed sorting by 'Message' column in the backup latest events overview not working as expected
  • Fixed Apache Server Status parsing where stray \r characters could break HTML parsing
  • Fixed Apache Server Status parsing when mod_qos outputs malformed HTML tags by making the XML parser more tolerant
  • Restricted SSH Environment [Pro feature]
    • Debian 13 | Fixed after SSH login not starting automatically in the user's ~/www/ directory
    • Debian 13 + Ubuntu 24 | Fixed 'Error opening terminal: xterm-256color' when opening applications like nano

Miscellaneous

  • Added new capabilities to the FileAccess class for handling placeholder replacements in template files
  • Added new preset options to the PasswordGenerator class
  • Added new dynamic features to the CLI class
  • Enhanced highlighting capabilities of the CLI class
  • Removed unnecessary console log output on the white-label page when resetting a language
  • Standardized arrow symbol usage across the interface
  • Replaced global configuration access with centralized, registry-based handling
  • Consolidated HTML generation utilities into a unified utility class
  • Streamlined HTML escaping by shifting encoding responsibilities into the utility class
  • Refactored database connection handling
    • Removed global configuration dependencies for improved stability
    • Introduced a unified connection management to simplify establishing database connections
    • Added support for SQLite connections
    • Fixed various inconsistencies
  • Refactoring (performance improvement, implementation of new features, use of modern language features, streamlining, etc.)
    • Refactored KeyHelpInfo (Registry) class
    • Refactored LetsEncryptChallengeHttp class
    • Refactored LetsEncryptManager class
    • Refactored Rclone class
    • Refactored BackupStorageTypes class
    • Refactored BackupStorageConfigFactory class
    • Refactored BackupStorageConfig class
    • Refactored BackupStorageConfigCustom class
    • Refactored BackupStorageConfigDropbox class
    • Refactored BackupStorageConfigFtp class
    • Refactored BackupStorageConfigLocal class
    • Refactored BackupStorageConfigSftp class
    • Refactored BackupStorageConfigWebdav class
    • Refactored Apache class
    • Refactored FirewallConfig class
    • Refactored FirewallRule class
    • Refactored Iptables class
    • Refactored BackupTask class
    • Refactored BackupRemoteSettings class
    • Refactored RemoteConnectionFactory class
    • Refactored RemoteConnectionInterface class
    • Refactored FtpClient class
    • Refactored SftpClient class
    • Refactored Settings class
25.2 14 August 2025

New Features / Added Content

  • Added support for Debian 13

Improvements / Changes

  • Added compatibility with PHP 8.4
  • Updated header_checks to be less restrictive, now warning instead of discarding in certain cases (if header_checks file has been modified, this update is skipped)
  • Improved panel update process to terminate the antivirus scanner if it blocks panel updates (change will only take effect with upcoming updates)
  • Updated patch display to mark patches as installed if they are already resolved by a higher KeyHelp build number and not therefor are not relevant for the server
  • Updated handling of SMTP smuggling for dist-upgraded Ubuntu 24 systems (coming from Ubuntu 22 → 24), where the upgraded settings did not align with settings from a clean installation
  • Improved intro hint box to better highlight notes, simplified wording and emphasized important parts
  • Updated notification email subjects and texts to be more precise
  • Improved notes on using KeyHelp PHP interpreters in CLI, added hints about php-fpm
  • Updated session default settings to be more CPU-friendly and matching the new PHP 8.4 defaults
  • Optimized Rspamd history settings, reducing potential memory usage spikes on some servers
  • Updated EOL and extended support dates for Debian systems
  • Improved dashboard to update various values in real time without the need to reload the page
    • Uptime, Process count, Emails in queue, CPU load, Swap usage, Memory usage, Disk usage
    • Removed initial calculation from dashboard load as values are now updated asynchronously, resulting in faster page load speed
  • Added loading spinner feature to the card template component
  • Moved loading spinner into card header for 'Service/port monitoring' on admin dashboard instead of table header
  • Improved handling of the periodical database backup feature to prevent incorrect names if mysqldump returns unexpected results
  • Updated IonCube Loader to version 14.4.1
  • Improved IPv4 redirection from HTTP to HTTPS, reducing Apache configuration complexity and preserving potential URL path elements
  • Added proper HTTP return codes for certain error/message pages in KeyHelp (e.g. domain_not_found → 404, domain_disabled → 403, maintenance_mode → 503, update_in_progress → 503)
  • Added new button to backup repository management to trigger data synchronization / reload snapshots
    • Renamed 'Integrity Check / Update statistics' to 'Integrity Check / Data synchronization'
    • Adjusted icon to match the one in repository management

API Changes

  • Updates [GET] /server endpoint: The 'panel_build' field under the 'meta' component is now returned as an integer instead of a string
  • Updated the documentation to reflect the changes in KeyHelp 25.2
  • Updated openapi.json / openapi.yml files to support external definition parsers
  • Bumped API version to 2.12

Tool Updates

  • Rclone 1.70.3
  • Replaced the WYSIWYG editor used for the 'Custom UI Notifications' and 'Email All Users' feature
    • Removed TinyMCE
    • Added Trumbowyg

Vendor Library Updates

  • Font Awesome 7.0.0

Translations

  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Chinese (traditional) (100%) | Thanks to Wu Ru Kang
  • Updated Dutch (100%) | Thanks to Bas Heijermans
  • Updated English (100%)
  • Updated French (100%) | Thanks to Chris Mehl
  • Updated German (100%)
  • Updated Hungarian (100%) | Thanks to Madarász László
  • Updated Italian (100%) | Thanks to Alessandro Daniele
  • Updated Polish (100%) | Thanks to BBA OFFICE SYSTEM
  • Updated Russian (100%) | Thanks to Vladimir Alferov
  • Updated Swedish (100%) | Thanks to Marwin Gripenfrost
  • Updated Turkish (100%) | Thanks to Serkan Türkkan

Fixes / Imperfections

  • Fixed an issue in the translation extractor removing common.po from Russian language files, preventing full translation
  • Fixed a JavaScript error on 'Add Domain' / 'Edit Domain' pages in client area that prevented certain functionality from working properly
  • Fixed an issue where delivery status emails (e.g. mailbox quota exceeded) were not sent back to the sender due to overly restrictive header checks
  • Fixed a PHP deprecated warning when using the API ([POST/PUT] /hosting-plans) with null values for some PHP-FPM settings: Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/keyhelp/www/keyhelp/core/Api/ApiController/ApiControllerHostingPlans.php on line 298

Miscellaneous

  • Refactoring (performance improvement, implementation of new features, use of modern language features, streamlining, etc.)
    • Refactored Application class
    • Refactored ApplicationVersion class
    • Refactored ApacheServerStatus class
    • Refactored ApplicationManager class
    • Refactored PasswordResetRequest class
    • Refactored BasicStorage class
    • Refactored SelfStoringObject class
    • Refactored ObjectStatus class
    • Refactored ApiController class
    • Refactored ApiControllerAdmins class
    • Refactored ApiControllerCertificates class
    • Refactored ApiControllerClients class
    • Refactored ApiControllerDatabase class
    • Refactored ApiControllerDirectoryProtections class
    • Refactored ApiControllerDns class
    • Refactored ApiControllerDomains class
    • Refactored ApiControllerEmails class
    • Refactored ApiControllerFtpUsers class
    • Refactored ApiControllerHostingPlans class
    • Refactored ApiControllerLogin class
    • Refactored ApiControllerScheduledTasks class
    • Refactored ApiControllerServer class
    • Refactored FileManager class
    • Refactored SystemInfo class
    • Refactored PasswordValidator class
    • Refactored Validation class
    • Refactored Bind class
    • Refactored BruteForceThrottler class
    • Refactored TlsProtocols class
    • Refactored Panel update process
  • Updated how reflections are handled within KeyHelp
  • Introduced composition model for SelfStoringObject and related classes
  • Replaced some leftover 'magic strings' in code base with proper constants
25.1 19 June 2025

New Features / Added Content

  • Added Patch Manager for installing of minor patches between regular KeyHelp updates
  • Added account group feature - clients can now easily switch between all their accounts [Pro feature]

Improvements / Changes

  • Demo login information is no longer shown on the two-factor authentication login page when demo mode is enabled
  • Improved virus detection notification: The 'Infections' section is now hidden if only unofficial infections were found
  • Updated SourceGuardian Loader to version 16.0.2
  • Updated IonCube Loader to version 14.4.0
  • Code input fields
    • Added search functionality (since Ctrl + F does not work reliably in those enhanced text areas)
    • Added replace functionality
    • Improved scrollbars - to allow proper highlighting of search results
    • Added new features to the list of available keyboard shortcuts
    • Reordered keyboard shortcuts for better logic and consistency
    • Updated visual appearance and spacing
  • System Status → Active Sessions
    • Added option to terminate dovecot sessions
    • Added option to terminate system sessions
    • Added option to terminate FTP sessions
    • The IP column under 'System sessions' now shows full IPv6 addresses instead of truncated ones
  • System Status → Monitoring
    • Added data collection and graph for network traffic per second
    • Added data collection and graph for web server requests per second
    • Refined internal logic to ensure consistent collection of monitoring metrics (especially regarding CPU usage data)
    • Moved RRD database from /home/keyhelp/www/keyhelp.monitoring to /home/keyhelp/keyhelp.monitoring
    • Info: Monitoring will be automatically reset during this update to enable the new features
  • Log files
    • Cleaned up remaining logs in /home/users/*/logs/(access|error).log* from the legacy log system
    • Logrotate now also automatically rotates PHP-FPM logs of additionally installed PHP interpreters provided by KeyHelp
    • Streamlined Logrotate settings - Apache logs for the KeyHelp panel are now kept for only 4 weeks (matching client domain logs)
    • Added option to quickly view log files in raw format (up to 10 MB) via Domains → Domain logs
  • Dark mode
    • Color improvements for muted texts
    • Color improvements for icons
    • True/false indicators updated to reduce confusion with checkboxes
    • Overall, dark mode should now appear more visually harmonious
  • Added lifecycle dates for PHP 8.4
  • Added collapsible permissions section on the client dashboard, saving space and improving layout
  • Ensured the database configuration file is always updated when submitting the database server settings (previously only updated if the 'Allow remote access' checkbox changed)
  • Code tags within the KeyHelp UI now default to no line breaks, improving readability
  • Backup
    • All database dumps (including regular backups and periodic disaster protection dumps in /home/keyhelp/keyhelp.backup/dumps) now include the CREATE DATABASE IF NOT EXISTS directive to simplify restore operations
    • Added the ability to restore databases as .sql files to any location in the file system
    • Added an email notification in case a repository prune operation fails
    • Made important notes on backup restore page more visible
  • Application installer
    • Improved internal subcommand escaping - passwords containing backticks are now handled correctly
    • Improved handling of application admin passwords
      • Passwords are now initially set by KeyHelp to work around application password requirements and avoid issues with insufficient passwords provided by users
      • Improved installer resilience for special characters in passwords
      • Initial password is now displayed in the improved success message after application installation (Reveal button)
      • Improved user experience by reducing required interactions and simplifying access to the initial password later
    • Added 3 new applications to the application installer: Grav, FreeScout, and BookStack
    • Improved translation coverage due to a new translation system used when building application packages
  • Added indicator for custom web server directives on the domain overview page
  • Improved formatting of event messages
  • Improved text formatting on the 'License Manager' page
  • Added search functionality to 'Client area → FTP users'
  • Streamlined appearance of disk usage overview – removed separate total row, summary now shown in the table footer for consistency
  • Streamlined 'Configuration → White-Label' by adding a bulk actions dropdown, consistent with other tables
  • Updated hints in email server settings to better reflect behavior on modern systems (Rspamd)
  • Linked the KeyHelp video tutorials under the 'Help' navigation category
  • The username column in 'System Status → Process Manager' now shows full usernames instead of truncated ones
  • Improved text area auto-resize: Input fields now expand up to 30 lines before switching to scroll mode (more user-friendly for large inputs)
  • Replaced plain text areas with code input boxes (better editing, indentation, etc.):
    • Domains → Edit → Apache settings
    • Configuration → Web Server → Global directives
  • Apache server status
    • Improved overall layout with better visual grouping (collapsible sections, icons)
    • Reordered information to make the layout more logical
    • Improved scoreboard visualization
    • Added 'Threads graceful' column to 'MPM event status' section
    • Switched to dynamic column parsing for MPM event status table (no longer hardcoded)
    • Made legend under 'Active processes' more compact
    • Improved presentation of 'SSL/TLS session cache status' section
    • Improved presentation of general server status information
    • Adjusted paddings and margins for cleaner and better-aligned appearance
    • Reload button now provides visual feedback during refresh
  • Notifications
    • Notifications are now grouped by category for easier navigation
    • Implemented various visual improvements to the notifications configuration page
    • Notification subjects and IDs have been updated to make them more distinguishable and clearer
    • Added new record for 'A repository prune operation has failed'
  • Improved behavior of 'System Status → Email log' page by adding a loading animation and hiding empty table content during initial load
  • Added support to configure custom services for the 'Server Service Management' page [Pro feature]
  • Disabled all notification emails to suspended customer accounts, except for suspend/unsuspend status updates
  • Improved KeyHelp compatibility with OS images provided by certain hosting companies
  • Improved clarity in the descriptions of the message of the day configuration file
  • Removed spam headers in emails when sending mail on Rspamd-based systems
  • Streamlined footer layout in repository overview of the old backup system – total size info is now shown below the correct column, consistent with other tables
  • Moved 'Service/Port Monitoring (Dashboard)' setting on the 'Configuration' page from 'Appearance' to 'Feature Settings' and adjusted label for clarity
  • Added links and updated help texts for the 'Custom Services' configuration on the 'Server Service Management' page
  • Aligned visual appearance and responsive design of 'Service/Port Monitoring' with the style of the new 'Custom Services' section on the 'Server Service Management' page
  • Improved phrasing, consistency, and context-awareness of various texts and formatting across the KeyHelp interface, including field labels, help messages, page titles, and system terminology for a clearer and more user-friendly experience
  • Extended settings import/export functionality
    • The domain default page can now be imported and exported
    • Enhanced user experience with an option for quick bulk actions
  • File Manager
    • Added option to overwrite existing files when uploading
    • Added option to overwrite existing files when creating archives
    • Improved alignment of upload input fields for better layout and visibility of longer file names
    • File Manager can now open .ini files with content recognized as MIME type application/x-wine-extension-ini
    • Normalized line breaks when editing file content to prevent MIME type recognition issues
  • System stability
    • KeyHelp now applies system-level service adjustments in a way that preserves compatibility with OS updates and avoids unintended overwrites of service configurations
    • Removed obsolete configurations for the Apache service
    • Removed obsolete configurations for the ClamAV service - ClamAV now listens on socket as per upstream default
    • Removed obsolete configurations for the Logrotate service
    • Restored the default configurations for the services above
  • Maintenance intervals
    • Adjusted update behavior to reduce peak load on update servers
    • Disallowed minute-based intervals for 'Update control panel' and 'Update PHP interpreters'
    • Existing minute-based intervals will be converted to daily intervals during the update
    • Control panel and PHP interpreter updates now use human-readable timestamps in logs and corrected typos in related messages
  • Performed a comprehensive rework of the template engine and all associated UI templates, focusing on structure, maintainability, and visual consistency
    • Introduced a centralized and extensible system for KeyHelp's Twig extensions to improve maintainability and flexibility
    • Moved various PHP logic elements into Twig filters to better separate logic and presentation
    • Enhanced and unified byte formatting via a new Twig filter, now used across various modules
    • Standardized table footer styling for consistent UI appearance
    • Restructured and renamed all template directories for clearer and more logical component organization
    • Expanded macro and component library to improve reusability
    • Removed redundant template code and fixed inconsistencies
    • Introduced global template variables to improve macro capabilities and support future enhancements
    • Streamlined UI elements like forms, layouts, modals, buttons, etc. for a more consistent user experience throughout KeyHelp

API Changes

  • Updated /server endpoint: The 'port' field under the 'ports' component is now returned as an integer instead of a string
  • Updated the documentation to reflect the changes in KeyHelp 25.1
  • Updated openapi.json / openapi.yml files to support external definition parsers
  • Bumped API version to 2.11

Tool Updates

  • Roundcube 1.6.11
  • Adminer 5.3.0
  • Restic 0.18.0
  • Rclone 1.70.0
  • Adminer / Adminer alternatives
    • Removed the 'EOL' state from Adminer, ensuring KeyHelp compatibility with recent major version changes of Adminer
    • Removed AdminerEvo from the database administration tools
    • Systems previously using AdminerEvo are automatically switched to Adminer during the update process

Vendor Library Updates

  • Chart.js 4.5.0
  • phpmailer/phpmailer 6.10.0
  • symfony/polyfill-mbstring 1.32.0
  • symfony/polyfill-php80 1.32.0
  • symfony/polyfill-php81 1.32.0
  • symfony/polyfill-ctype 1.32.0

Translations

  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Catalan (100%) | Thanks to Otmar Schuster
  • Updated Chinese (traditional) (100%) | Thanks to Wu Ru Kang
  • Updated Dutch (100%) | Thanks to Bas Heijermans
  • Updated English (100%)
  • Updated French (100%) | Thanks to Chris Mehl
  • Updated German (100%)
  • Updated Hungarian (100%) | Thanks to Madarász László
  • Updated Italian (100%) | Thanks to Alessandro Daniele
  • Updated Polish (100%) | Thanks to BBA OFFICE SYSTEM
  • Updated Russian (82%) | Thanks to Vladimir Alferov
  • Updated Spanish (100%) | Thanks to Otmar Schuster
  • Updated Swedish (100%) | Thanks to Marwin Gripenfrost
  • Updated Turkish (100%) | Thanks to Serkan Türkkan

Fixes / Imperfections

  • Fixed missing sudo permissions for /bin/systemctl in sudoers.d/keyhelp
  • Fixed custom favicon not displaying correctly on the admin dashboard in certain situations
  • Fixed Whois tool showing no data due to a change in the arin.net response format
  • Fixed ability to stop restricted services (e.g., Apache, MariaDB) via crafted URL on the 'Server service Management' page
  • Fixed gaps in 'System Status → Monitoring → Service monitoring → CPU usage' charts
  • Fixed database error handling in KeyHelp Toolbox – avoids bloated error output when the database password is invalid
  • Fixed misaligned 'MPM event status' table on the 'Apache Server Status' page due to a new column introduced since Apache 2.4.58
  • Fixed HTTP 500 error when sending password reset email with misconfigured SMTP settings
  • Fixed issues with the custom chunk_split Twig filter – now correctly handles ending character
  • Fixed ClamAV service not running after system updates overwrote the corresponding service file
  • Fixed inconsistent 'Is main administrator' indicator for non-main admin accounts between account overview and deletion page
  • Fixed country names shown in English instead of Norwegian in dropdowns when using the Norwegian language
  • Fixed missing total item count in the 'Backup → Latest events' list
  • Rspamd
    • Fixed extra slash in path in the Rspamd learn spam cronjob configuration
    • Fixed the Rspamd error 'Cannot set static IDs from dynamic settings, please read the docs.' caused by issues in the account_settings.conf file
    • Fixed missing rspamd.conf.override file on dist-upgraded Debian 12 / Ubuntu 24 systems
    • Fixed email subject not updated with ***VIRUS*** or ***UNCHECKED*** when a message was flagged as both spam and virus-infected
  • Active sessions
    • Fixed HTTP 500 error when sorting 'System user sessions' by session type
    • Fixed HTTP 500 error when sorting 'Email server sessions' by IP address
  • Backup
    • Fixed inability to delete backups stored on remote targets when using the old backup system
    • Fixed sorting issue in the 'Backup → Latest events' Table - clicking the 'Messages' column header triggered sorting by a different column
    • Backup Restore UI
      • Fixed duplicate 'Invalid input in field alternative path' error during backup restore in client area under certain conditions
      • Fixed incorrect error messages shown during input validation for certain combinations of user input
      • Fixed missing required indicators on some mandatory input fields
      • Fixed an issue where form submission could be blocked due to incorrect required state on hidden fields in certain cases
  • Message of the Day
    • Fixed an extra blank line when using the 'show_powered_by_keyhelp' variable in /etc/update-motd.d/80-keyhelp
    • Fixed usernames containing hyphens and numbers not being recognized as unprivileged users - MotD incorrectly displayed privileged-only information
  • Fixed various PHP errors
    • When using the Skel feature on domain creation/editing: Deprecated: Automatic conversion of false to array is deprecated in /home/keyhelp/www/keyhelp/pages/domains.php on line 1402
    • When using the Skel feature on account creation: Deprecated: Automatic conversion of false to array is deprecated in /home/keyhelp/www/keyhelp/pages/admin_accounts_client.php on line 1461
    • When using the Backup restore feature with unusual settings: PHP Warning: Undefined variable $users in /home/keyhelp/www/keyhelp/core-old/Backup/BackupPreparer.php on line 434
    • When using the Backup restore feature with unusual settings: PHP Warning: foreach() argument must be of type array|object, null given in /home/keyhelp/www/keyhelp/core-old/Backup/BackupPreparer.php on line 434

Miscellaneous

  • Adjusted font sizes in various UI sections
  • Extended developer/debug capabilities
  • Updated default account template settings for specialized server setups
  • Removed unused deletion code from the old backup repository controller
  • Removed leftover console.log statements from JavaScript files
  • Improved the developer server setup routine
  • Removed unused settings from the KeyHelp settings table
  • Cleaned up remnants of an unused sorting feature on the 'Disk Usage' page
  • Refactoring (performance improvement, implementation of new features, use of modern language features, streamlining, etc.)
    • Refactored DirectoryList class
    • Refactored License class
    • Refactored ApacheServerStatus class
    • Refactored PhpFpmPoolConfig class
    • Refactored Monitoring class
    • Refactored NotificationEventTypes class
    • Refactored Server/Port Monitoring components
    • Added new management features to ProcessManager class
    • Added special case handling capabilities to ServiceManager class
    • Added new features to Sorting class
  • Removed Ubuntu 20 support
    • Prevented installation on Ubuntu 20 systems
    • Removed Ubuntu 20 specific code
    • Removed compatibility workarounds for Ubuntu 20's default system services
    • Bumped minimum required PHP Version to run KeyHelp to 7.4.33
25.0 31 January 2025

New Features / Added Content

  • Enhanced client area
    • Added disk usage information below resources
    • Added 'Whois IP Lookup' below tools
      • Added the 'Whois IP Lookup' to the IP column in domain logs
  • Added a database status analyzer to the admin area [Pro feature]
  • Added installable PHP interpreter for ARM64 systems
  • Debian 12, Ubuntu 24 | Added individual spam settings per email account for systems running Rspamd
    • Added options to configure spam tag score and spam reject score thresholds
    • Added an option to enable/disable subject line rewriting
    • Added an option to enable/disable virus checking
    • Added an option to bypass spam/virus checks entirely
  • Added an option to restrict the number of email forwardings for client accounts
    • Added current/max email forwarding information to all overviews (admin dashboard, client dashboard, email overview, etc.)
    • Added an option to configure the maximum number of forwardings via the account templates feature

Improvements / Changes

  • Enhanced Let's Encrypt certificate retrieval process
  • Internal code improvements in translation management: Centralized handling of active, managed, and deprecated translations
  • Added support for editing .eml (message/rfc822) files to the file manager
  • Enhanced screen reader support
    • Added aria-label attributes to icons
    • Improved navigation for file manager action menus
  • Added a maintenance task to clean up possible backup folder remnants
  • Removed ix.dnsbl.manitu.net from the example DNS blacklist email settings due to service discontinuation
  • Added various CSRF security improvements
  • Domains created by client accounts without having the 'can have email accounts' permissions now have the 'Domain can be used for emails' flag disabled by default
  • Enhanced white-label features
    • Improved user interface for image uploads with separate dark and light mode previews
    • Added option to upload a custom email notification logo via the white-label feature
    • Removed the word 'KeyHelp' from the alt attribute of the logo in the email notification template to make it more white-labeled out of the box
  • Improved virus scanner reports to distinguish between confirmed infections and unofficial detections
  • Updated SourceGuardian Loader to version 15.0.0 / 15.0.2
  • Updated IonCube Loader to version 14.0.0
  • Added OpenDKIM records to mail logs for systems without Rspamd
  • Updated byte value formatting to use non-breaking spaces, preventing line breaks
  • Added additional details about what will and won’t be deleted during domain removal to the delete domain page
  • Enhanced database management
    • Added a direct login link to the database administration software in 'System Status'
    • Simplified wording for database management tools (e.g., generic labels instead of tool-specific names like 'Adminer' within the navigation / tooltips)
    • Added two dark themes to phpMyAdmin, switchable via the phpMyAdmin dashboard
  • Enhanced CLI tools
    • Added option to change the hostname via the keyhelp-toolbox command
    • Improved character alignment in KeyHelp CLI tools for languages with non-ASCII characters
  • Improved date format for cronjob logs, changed from DD-MMM-YYYY to YYYY-MM-DD
  • Added additional DNS hardening measurements to reduce potential misuse in DDoS attacks
  • Added opcache_get_status() to the default list of disabled PHP functions (updated 'Unlimited' account template as well)
  • Ensured consistent capitalization for 'Restricted SSH Environment'
  • Improved handling of AJAX errors
  • Updated KeyHelp pre-installer script to handle accidental re-runs
  • Updated styles for SSL certificate buttons for consistency
  • Added threshold configuration for the email queue warning notifications
  • Added direct login functionality by clicking a username on the traffic statistics page
  • Improved KeyHelp Dev server setup routine
  • Updated default firewall rules for server hosted by Keyweb
  • Enhanced Rspamd features
    • Removed the outdated PolicySPF service and now use Rspamd's own functionality
    • Added an option to enable or disable email rejection for failed SPF checks
    • Email headers are now always enhanced with additional header fields (x-spamd-result, x-spamd-bar, x-spam-level, etc.)
    • Improved configuration to ensure emails with attached viruses can no longer bypass the spam filter
  • Implemented a clearer separation between Rspamd and the old Amavis/SpamAssassin/... stack configuration settings
  • Updated the welcome message on the admin dashboard
  • Updated the message indicating the operating system has reached end-of-life on the admin dashboard
  • Updated the order of settings when editing an email account settings to better align with the email overview
  • Improved the instructions how to reset a license in the error message shown when a KeyHelp Pro license could not be applied
  • Improved notification messages and the condition when messages are displayed on the email queue page
  • Removed the 'Delete selection' button from all overview pages and replaced it with a 'Bulk actions' option
  • Updated the button line template component and unified various visuals / margins on overview pages
  • Enhanced scheduled tasks features
    • For the task type 'Call URL', return codes >= 200 and < 300 are now treated as a successful execution
    • Added a bulk action to enable or disable scheduled tasks on the scheduled tasks overview page
  • Added a search feature to the database overview page
  • Debian 11, Ubuntu 20/22| Improved spam-fighting capabilities on systems using Amavis/SpamAssassin
  • Added an option to configure the preferred main email server domain name
    • Added an option to prefer the associated domain name of an email address
    • Added an option to use any suitable domain name
    • Added an option to either show only the preferred main email server name or all available names
    • The corresponding changes will be reflected in the email client autoconfiguration and connection data window within the KeyHelp UI
  • Updated the content of the DKIM DNS record window to simplify the process of selecting the correct value for the use case
  • The settings exporter/importer feature now also exports/imports webhook URL settings
  • Enhanced the readability of the 'is enabled' status on various overview pages
    • Removed the 'is enabled' status from the 'S' (status) column and added a new column with clearer indicators for the enabled/disabled status
    • Updated the overview pages for scheduled tasks, maintenance intervals, and scheduled backups accordingly
  • Updated the default status column and added a more visually appealing default icon
  • General wording updates
    • Unified terminology on the process manager and database status pages
    • Improved wording of various event messages
    • Standardized column headings terminology throughout the panel
    • Fixed various punctuation and formatting issues
  • Updated the footer when using a community translation
  • Added a link to the footer on abandoned translations to potentially recruit new translators
  • Enhanced description for the timezone settings
  • Updating the timezone in KeyHelp now also ensures database settings are reloaded (ensuring MySQL 'now()' reports the correct time)
  • Fail2Ban updates (Only for new installations and dist-upgrades)
    • Introduced two operating modes for the 'kh-bad-bots' filter
      • Normal (default): Focused on common bad bots
      • Aggressive: Includes additional crawlers, such as 'facebookexternalhit'
    • Configurable in /etc/fail2ban/jail/keyhelp.conf with 'filter = keyhelp-bad-bots[mode=normal]' or 'filter = keyhelp-bad-bots[mode=aggressive]'

API Changes

  • Updates to endpoint /clients
    • The endpoints '/clients/{id}' and '/clients/name/{name}' now also return the field 'resource_limits' and 'permissions'
    • The number of currently used email forwardings and the maximum allowed email forwardings are now returned in the respective endpoints
  • Updates to endpoint /emails
    • Only Rspamd systems | Added fields for customizable spam control (below 'protection' field): spam_tag_score, spam_reject_score, spam_rewrite_subject
    • The fields (below 'protection' field') now can also be used on Rspamd systems: check_spam, check_virus
    • Fixed an issue where account limits for alias addresses were not enforced when 'Ignore resource limits of user accounts' was disabled in API settings
  • Updates to endpoint /hosting-plans
    • Added the field 'email_forwardings' to configure the number of available email forwardings
    • Clarified error messages during plausibility checks for email accounts and email aliases when using POST / PUT
  • Updates to endpoint /server
    • The number of currently used email forwardings is now returned (below 'resources')
  • Updates to XML responses
    • Fixed an issue where returning an array could fail (e.g., with GET endpoints returning multiple resources)
    • Fixed a PHP warning during resource deletion: Warning: foreach() argument must be of type array|object, string given in /home/keyhelp/www/keyhelp/core/Api/ApiResponse.php on line 223
  • API documentation
    • Updated the documentation according to the changes within KeyHelp 25.0
    • Updated openapi.json / openapi.yml files which can be used by external definition parsers
    • Fixed incorrect route to the endpoint /login/name/{name} (Not correct: /login/{name})
  • Fixed the type of the 'id' field in JSON responses for PUT operations (affected endpoints: /admins, /clients, /hosting-plans)
  • Improved API routing and routes management code
  • Increased API version to 2.10

Tool Updates

  • Roundcube 1.6.9
  • SnappyMail 2.38.2
  • PhpMyAdmin 5.2.2
  • Restic 0.17.3
  • Rclone 1.69.0

Vendor Library Updates

  • Chart.js 4.4.7
  • CodeMirror 5.65.18
  • Font Awesome 6.7.2
  • Perfect Scrollbar 1.5.6
  • TinyMCE 7.5.1
  • html2text/html2text 4.3.2
  • monolog/monolog 2.10.0
  • phpmailer/phpmailer 6.9.3
  • phpseclib/phpseclib 2.0.48
  • symfony/deprecation-contracts 2.5.4
  • symfony/polyfill-mbstring 1.31.0
  • symfony/polyfill-php80 1.31.0
  • symfony/polyfill-php81 1.31.0
  • symfony/polyfill-ctype 1.31.0
  • symfony/yaml 5.4.45
  • twig/twig 3.11.3

Translations

  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Catalan (100%) | Thanks to Otmar Schuster
  • Updated Chinese (traditional) (100%) | Thanks to Wu Ru Kang
  • Updated Dutch (100%) | Thanks to Bas Heijermans
  • Updated English (100%)
  • Updated French (100%) | Thanks to Chris Mehl
  • Updated German (100%)
  • Updated Hungarian (100%) | Thanks to Madarász László
  • Updated Italian (100%) | Thanks to Alessandro Daniele
  • Updated Norwegian (100%) | Thanks to Eirik Sikveland
  • Updated Russian (82%) | Thanks to Vladimir Alferov
  • Updated Spanish (100%) | Thanks to Otmar Schuster
  • Updated Swedish (100%) | Thanks to Marwin Gripenfrost
  • Updated Turkish (100%) | Thanks to Serkan Türkkan
  • Polish translation is now marked as abandoned and looking for a new translator
  • Arabic translation is now marked as abandoned and looking for a new translator
  • Fixed issues within base .pot / .mot files

Fixes / Imperfections

  • Fixed mislabeled tuning.cnf for systems with > 2GB RAM (applies to new installations only)
  • Fixed issue where backups snapshots within a repository with differing description texts were not deleted during pruning
    • With the next prune run on the repository, all additional snapshots will now be cleaned up
  • Fixed duplicate execution of freshclam during virus scans, which likely also caused notification emails with the message 'UPDATE VIRUS DATABASE: Status failed'
  • Only Rspamd Systems | Fixed case-sensitivity issues in Rspamd email address filters for blacklists and whitelists
  • Fixed error thrown when adding a subdomain with the parent domain dropdown left at '--- Please select ---'
  • Fixed error thrown when adding a custom notification with event dropdown left at '--- Please select ---'
  • Fixed an issue where TMPDIR was not set in crontab, now ensures that user cron jobs write temporary data to user directories instead of the global /tmp
    • During the update, all cron jobs are rewritten to apply this fix
  • Fixed composer installation routine to handle cases where HOME or COMPOSER_HOME environment variables were unset during installation
  • Fixed missing navigation highlighting and incorrect breadcrumbs on the 'Port Monitoring / Socket Statistics' page
  • Fixed traffic calculations on the first run for servers with time zones set to > UTC+01:00 offset (failed due to invalid timestamps)
  • Fixed disk information retrieval where excessively large values caused type errors
  • Fixed incorrect logo display in popup windows ('Server Service Management' -> Details column, IP Whois result window, ...) when using a custom white-label image for the internal area
  • Fixed placeholder replacements in (email) notifications where zero was replaced with an empty string
  • Fixed contact column on the 'User Administration' page where zero was replaced with an empty string
  • Ubuntu 24 | Fixed column misalignment in the active sessions table for due to bugs in the system 'w' command
    • Ubuntu 24 | Known issues: Due to still existing bugs in the system command ‘w’ the columns ‘Idle time’ and ‘Current process’ are not correct
  • Fixed user sessions were not terminated via AJAX calls, leaving sessions active until a regular page reload
  • Fixed browser cache issues that caused old logos/favicon (set via the white-label feature) to persist even after updating the logos/favicon
  • Fixed various PHP errors
    • Fixed a PHP deprecation notice when creating a Backup: Deprecated: Creation of dynamic property BackupConfig::$errors is deprecated in /home/keyhelp/www/keyhelp/core-old/Backup/BackupConfig.php on line 373
    • Fixed a PHP deprecation notice when using the [POST] /directory-protection API endpoint: Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/keyhelp/www/keyhelp/core-old/Model/DirectoryProtection.php on line 132
    • Ubuntu 24 | Fixed a PHP deprecation notice on 'Active sessions' page: Deprecated: strtoupper(): Passing null to parameter #1 ($string) of type string is deprecated in /home/keyhelp/www/keyhelp/pages/admin_active_sessions.php on line 302
    • Ubuntu 24 | Fixed a PHP deprecation notice on 'Active sessions' page: Deprecated: Implicit conversion from float to int loses precision in /home/keyhelp/www/keyhelp/functions/functions.main.php on line 1245
    • Ubuntu 24 | Fixed a PHP warning on 'Active sessions' page: Warning: unserialize(): Extra data starting at offset 4 of 116 bytes in /home/keyhelp/www/keyhelp/core/UI/Session/Session.php on line 379
  • Fixed an issue where clicking on an IP in the 'Event Logs' page within the client area failed to show the Whois IP results
  • Fixed issue where the appropriate option was not selected in the dropdown on the 'Configuration -> Time Zone' page when the server time zone was set to Etc/UTC
  • Fixed an issue where the 'forget password' -> 'reset password' function did not notify the user if the password could not be checked against haveibeenpwned.com when it was unreachable

Miscellaneous

  • Minor updates to crontab templates (comment adjustments)
  • Structural changes in core folders and namespaces for better organization, better grouping of related classes, etc.
  • Renamed main KeyHelp Fail2Ban configuration file 'keyhelp.local' -> 'keyhelp.conf'
  • Added Keyweb advertising to the footer in internal areas (not for KeyHelp Pro, optional in the free version)
  • Fixed spelling errors in code, variable names, functions, etc.
  • Removed duplicate code in the installation routine for 'timesyncd'
  • Removed outdated hosting plans for installation on Keyweb shared servers
  • Improved internal handling of HTTP operations
  • Implemented minor improvements to the WebAuthn authentication system
  • Refactored common event message functions: Eliminated duplicate code and improved universality
  • Terminology Standardization: Replaced 'user' with 'client' in various places for consistency
  • Updated and improved debug helper functionality
  • Implemented more robust system architecture checks during installation (e.g., regarding ARM64 support)
  • Introduced new Twig filters for improved template design flexibility
  • Unified handling of request parameters: Made processing more robust, reducing control structure overhead
  • Streamlined template design / removed duplicate code by moving more html code into Twig macros
  • Replaced all instances of the 'service' command with the 'systemctl' command
  • Unified various template variable names
  • Refactoring (performance improvement, implementation of new features, use of modern language features, streamlining, etc.)
    • Refactored IpAddress class
    • Refactored SshKey class
    • Refactored Breadcrumbs class
    • Refactored EventLogs class
    • Refactored LoggerFactory class
    • Refactored CronLogger class
    • Refactored CronTab class
    • Refactored SystemWhoSession class
    • Refactored SystemWho class
    • Refactored Paginator class
    • Refactored PaginatorResult class
    • Refactored CustomMonologDatabaseHandler class
    • Refactored IntlDatePatternGeneratorPolyfill class
    • Refactored VersionNumber class
    • Refactored ToolsManager class
    • Refactored DnsLookup class
    • Refactored CliStyle class
    • Refactored OperatingSystem class
    • Refactored DovecotWho class
    • Refactored DovecotWhoSession class
    • Refactored Session class
    • Refactored SessionHandlerDatabase class
    • Refactored Navigation class
    • Refactored TableSorting class
    • Refactored MailserverSni class
    • Refactored ServiceManager class
    • Refactored Curl class
    • Refactored ApiRouter class
    • Refactored ApiRequest class
    • Refactored ApiResponse class
    • Refactored Ajax class
    • Refactored DiskUsage class
    • Refactored Quota class
    • Refactored VirusScanner class
    • Refactored FtpWhoSession class
    • Refactored ExportTables class
    • Refactored SettingsExporter class
    • Refactored SettingsImporter class
    • Refactored I18n class
    • Refactored Mailer class
    • Refactored PwnedChecker class
    • Refactored the search functionality on overview pages
24.2 06 August 2024

New Features / Added Content

  • Added support for Ubuntu 24.04
  • Added the ability to take notes on the client dashboard
  • Added a list of all installed software packages to 'System Status'
  • Added custom user interface notifications [Pro feature]
  • New installation | Installed the PHP package manager Composer
    • Added Composer to clients' 'Restricted SSH environment'
    • Ensured Composer is kept up-to-date through KeyHelp's 'Update server services' maintenance interval

Improvements / Changes

  • Added a link from the admin dashboard application version box to the new 'Installed Software Packages' page
  • Added description field to backup jobs and scheduled backup jobs
  • Added link to KeyHelp's migration platform under 'Help / Links' on KeyHelp Pro systems
  • Updated the ionCube Loader to version 13.3.0
  • Updated backup system to overcome the error 'file changed as we read it' when backing up email accounts
  • Updated the order of month names in the dropdown field on the 'Traffic Statistic' page
  • Updated PHP version EOL dates
  • Updated menu item labels to be more uniform on English 'Statistics' page
  • Updated blacklist/whitelist email address feature to also accept *<DOMAIN> and <NAME>*
  • Updated IP anonymization feature to also anonymize Apache access log records with 'remote' instead of 'client' next to the IP
  • Updated chart legend content on client dashboard
  • Updated the visuals of 'Account information' and 'Contact data' boxes on client dashboard to look more uniform
  • Ensured that long mount point paths no longer clutter the admin dashboard
  • Fail2Ban (Only on new installations and dist-upgrades)
    • Added Fail2Ban filter for bad bots and aggressive AI crawler (kh-bad-bots) (disabled by default)
    • Updated KeyHelp's Fail2Ban jail configuration file
    • Ensured that performant backend settings are set for jails that read Apache log files
  • Scheduled tasks
    • Updated and refactored the 'Call URL' script - the command will now not produce any output besides error messages (and if the returned HTTP code is not 200)
    • Updated the order of the notification options
    • Updated description texts to better explain when to use which notification option
    • Pre-selected the 'Always' option
    • Pre-filled the notification email address with the address of the currently logged-in user
  • Removed outdated RainLoop Webmailer
    • Switched to SnappyMail if RainLoop was previously used
    • RainLoop database and file backups have been saved to /home/keyhelp/keyhelp.backup/panel_updates/rainloop_*.tar.gz if RainLoop was previously used
  • File manager
    • Added feature to create symlinks
    • Added feature for symlinks to open the corresponding directory when clicking on it
  • Security
    • New installation | Increased password length of default admin account
    • New installation | Increased password length of KeyHelp's database logins
    • New installation / Updates | Increased password length for Roundcube, phpMyAdmin and SnappyMail

API Changes

  • Updated API documentation
  • Updated openapi.json / openapi.yml files
  • Increased length of auto-generated passwords to 18 characters

Tool Updates

  • Roundcube 1.6.8
  • SnappyMail 2.36.4
  • Restic 0.16.5
  • Rclone 1.67.0

Vendor Library Updates

  • CodeMirror 5.65.17
  • TinyMCE 7.2.1
  • Font Awesome 6.6.0
  • symfony/polyfill-ctype 1.30.0
  • symfony/polyfill-mbstring 1.30.0
  • symfony/polyfill-php80 1.30.0
  • symfony/yaml 5.4.40

Translations

  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Catalan (100%) | Thanks to Otmar Schuster
  • Updated Chinese (traditional) (100%) | Thanks to Wu Ru Kang
  • Updated Dutch (100%) | Thanks to Bas Heijermans & RikkerdNL
  • Updated English (100%)
  • Updated French (100%) | Thanks to Chris Mehl
  • Updated German (100%)
  • Updated Hungarian (100%) | Thanks to Madarász László
  • Updated Italian (100%) | Thanks to Alessandro Daniele
  • Updated Spanish (100%) | Thanks to Otmar Schuster
  • Updated Turkish (100%) | Thanks to Serkan Türkkan

Fixes / Imperfections

  • Fixed 'command not found' issue when calling keyhelp-toolbox on updated instances
  • Fixed PostSRS being displayed as disabled in the user interface for new installations even though it was enabled on the system
  • Fixed the timezone not updating correctly on Debian 12 systems
  • Fixed CPU and memory usage of Amavis and OpenDKIM not being tracked within the monitoring feature on systems without Rspamd
  • Fixed a custom quota file system path not being respected everywhere in KeyHelp
  • Fixed deleting a symbolic link within the file manager not working properly
  • Fixed a domain target path containing '<DOCROOT>/www' being replaced with an empty string on the domain overview page
  • Fixed the theme mode (default/dark mode) not being respected when switching to a client account while logged in with the support user account
  • Fixed the 'More news' link on the admin dashboard being broken when the account language was set to German
  • Fixed PostSRS in some cases adding a DKIM key to the email header twice
  • Fixed a security notification being sent after an admin login and the disk space status not being displayed on the admin dashboard on some systems (same cause)

Miscellaneous

  • Improved assignment of translations to corresponding translation files
  • Renamed 'Help' to 'Help / Links' in the main navigation
  • Removed Debian 10 from the list of supported systems
    • Prevented installation on Debian 10 systems
    • Removed deprecated Debian 10-specific code
    • Removed workarounds and code responsible for compatibility with Debian 10's default system service versions
    • Removed workarounds and code responsible for compatibility with PHP 7.3
    • Utilized various features of newer PHP versions that could not be used until now
  • Disabled backup select page if the old backup system is not used
  • Refactoring (performance improvement, implementation of new features, use of modern language features, streamlining, etc.)
    • Refactored SshChrootEnvironment class
    • Refactored ProcessList class
    • Refactored ProcessManager class
    • Refactored ProcessListItem class
    • Refactored FileItem class
    • Refactored IpAnonymizer class
    • Refactored PasswordGenerator class
    • Refactored WebAuthnAuthenticator class
    • Refactored page building order/logic within the main script
24.1 07 June 2024
24.0 07 February 2024
23.2.1 30 October 2023
23.2 28 September 2023
23.1.1 09 May 2023
23.1 04 May 2023
23.0 19 January 2023
22.2 07 September 2022
22.1.1 18 July 2022
22.1 13 July 2022
22.0.1 03 June 2022
22.0 24 March 2022
21.3 14 December 2021
21.2 14 September 2021
21.1 12 July 2021
21.0 16 March 2021
20.3.2 01 February 2021
20.3.1 03 November 2020
20.3 28 October 2020
20.2 30 July 2020
20.1 19 May 2020
20.0 18 February 2020
19.3.1 05 November 2019
19.3 29 October 2019
19.2.1 24 July 2019
19.2 16 July 2019
19.1 06 May 2019
19.0.1 03 April 2019
19.0 04 March 2019
18.2.1 20 December 2018
18.2 05 December 2018
18.1.1 11 June 2018
18.1 16 May 2018
18.0 12 March 2018
17.2.1 21 November 2017
17.2 14 November 2017
17.1.2 03 August 2017
17.1.1 02 August 2018
17.1 24 July 2017
17.0.0 03 April 2017
14.7.2 29 November 2016
14.7.1 12 October 2016
14.7.0 23 August 2016
14.6.4 29 June 2016
14.6.3 25 May 2016
14.6.2 29 April 2016
14.6.1 21 March 2016
14.6.0 29 February 2016
14.5.3 25 January 2016
14.5.2 07 December 2015
14.5.1 14 October 2015
14.5.0 15 September 2015
14.4.1 26 May 2015
14.4.0 06 May 2015
14.3.1 20 January 2015
14.3.0 02 December 2014
14.2.1 27 August 2014
14.2.0 26 August 2014
14.1.0 08 July 2014
14.0.0 28 May 2014