KeyHelp Changelog Viewer

KeyHelp PHP Interpreter Applications Changelog (One-Click Installer) Operating System Scripts Expand records
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

New Features / Added Content

  • Added 'Sender Rewriting Scheme' (SRS) to rewrite email envelopes from forwarded emails
    • Added PostSRSd to Postfix configuration
    • Added PostSRSd to 'Monitoring' [Pro feature]
    • Added PostSRSd log records to mail log
    • Added PostSRSd to 'Server Service Management' log records to mail log
    • Added an intelligent system to only rewrite necessary email envelopes
    • Added an option to enable/disable SRS via email server settings
  • Added new 'keyhelp-php-domain' CLI tool which can be used like 'php' or 'keyhelp-php<VERSION>' but it automatically picks the correct PHP interpreter, depending on the directory the PHP script is located [Pro feature]
  • Added AdminerEvo as a more up-to-date alternative to database administration tool Adminer

Improvements / Changes

  • Added an option to show email sending/receiving status to domains overview page (Customize view)
  • Added DMARC record to the KeyHelp panel domain DNS configuration
  • Added DKIM keys and corresponding DKIM record to the KeyHelp panel domain DNS configuration
  • Admin dashboard
    • Added display of consumed disk space categorized by mail, web and database
    • Added display of mounted file systems and their utilization
    • Added display of traffic by month categorized by HTTP, FTP, POP3/IMAP, SMTP
    • Added the DKIM record values of the KeyHelp panel domain to 'Server information' box
  • Added an option in the 'keyhelp-toolbox' to update the IPs of the KeyHelp configuration files (similar to 'Configuration' -> 'IP Addresses')
  • Added HTTPS DNS record type option to DNS editor
  • Added option to allow prefixed FTP username
  • Streamlined FTP and database settings regarding name scheme selection
  • Added new client permission 'Delete main domains'
  • Removed the coherence between client resources setting domains = '0' and the ability to delete domains (use 'Delete main domains' instead)
  • Improved processing speed when deleting domains
  • Updated SourceGuardian to version 15.0.0 / 15.0.1 (now supporting PHP 8.3)
  • Debian 12 | Added the PHP extension 'php-redis'
  • Debian 12 | Improved the visuals around the checkbox on 'Configuration' -> 'Email server' -> 'Blacklist | Email addresses'
  • Debian 12 | Updated logrotate systemd configuration files (in rare cases they might not have been updated accordingly during the OS upgrade)
  • Debian 12 | Improved the Rspamd WebUI auto-login feature to handle cases where the page takes longer to load
  • Security
    • Check domain setting 'Enforce secure connection' by default when a certificate is selected
    • Increased the length of the generated password within the UI to 18 characters
    • New installation | Increased password minimum length to 12 characters
    • Blocked common search engines and crawlers from accessing KeyHelp
    • Increased HSTS default setting to 180 days
    • Block ICMP timestamp requests in firewall rules (only on new installations and when applying new rules)
  • Fail2Ban
    • New installation | Enable kh-recidive rule by default
    • New installation | Enable postfix-sasl rule by default
    • New installation | Reduced max amount of failed attempts for KeyHelp's default rules
    • New installation | Added maxretry value of the default SSH rule to keyhelp.local for easier overwriting
    • New installation | Updated filters 'apache-common' and 'postfix' as they are broken in Fail2Ban versions < 1.1.0
    • Improved visuals for active Fail2Ban jails and the amount of banned IPs
  • Updated the parameter for the mastercronjob, instead of --force-<NAME> use --force '<NAME>' or --force='<NAME>'
  • Separated the content of the 'Resources & permissions' tab on the user administration page into two tabs
  • Separated the content of the 'General' tab on the account templates page into a 'General / Resources' and a 'Permissions' tab
  • Improved PHP-FPM configuration file generation and improved readability of the resulting configuration files
  • Improved Apache configuration file generation and improved readability of the resulting configuration files
  • Removed unnecessary content from Apache configuration files
  • Improved the tooltips of all chart graphics (no duplicate content anymore)
  • Streamlined the date format within the profile settings of SSH keys and WebAuthn records
  • Streamlined the order of the custom logo settings for the KeyHelp white label and Roundcube settings
  • Improved the account template overview page and no longer display the 'Show' button on PHP settings if the corresponding settings have no value stored
  • Improved log records when Apache configuration files are created to make them easier to read
  • Improved stability in case the main quota disk could not be loaded correctly
  • Backup
    • Crashed backup operations are now monitored and set to the status 'canceled' if a crash is detected (applies to backup operations started after the update to 24.1)
    • A notification email is sent when a crashed backup operation is detected
    • Added an option to delete canceled operations to the backup troubleshooting page
    • Added log records and utilizing the 'Messages' column on the backup overview page if databases or email accounts could not be prepared for a backup job
  • PHP settings
    • Improved the order of PHP settings fields within the UI to represent their importance
    • Added new fields for storing overwritable (= php_value) and non-overwritable (= php_admin_value) PHP directives to client PHP settings and account templates page
    • Removed the field 'Additional PHP settings' from the client PHP settings and account templates page
    • Added a feature to allow the predefined settings (e.g. memory_limit, max_execution_time, etc.) to be overwritten by client applications by defining them in the overwritable directives input field
    • Updated the way how sendmail/sendmail_from configuration directives are handled
    • Improved the default disable_functions to make them more compatible with various web applications
      • Removed the following functions from the Unlimited account template: highlight_file, show_source, error_log, disk_free_space, disk_total_space, diskfreespace, curl_multi_exec
      • Removed the following functions from the default account template: highlight_file, show_source, error_log, disk_free_space, disk_total_space, diskfreespace
      • Sorted the function list alphabetically
  • PHP interpreter
    • Improved the visuals on command line usage descriptions to make them easier to find
    • Added note for keyhelp-php-domain usage
    • Improved the user interface and optimized the placement of control elements
  • Added the client permission 'Update contact data' to the list of displayed permissions on the client dashboard and the info box on the user administration page
  • Deleted the old website statistic directories from the KeyHelp < 23.0 era, where the statistics were generated summarized for all domains of a client - depending on the age and the client count on the server, this may free up multiple GB in storage space (Feature canceled - delete /home/keyhelp/www/keyhelp.webstats/*/deprecated/ by yourself, if you don't need the old Awstats statistics)
  • Added the display of mounted remote file systems to the disk overview page
  • Implemented a certificate chain validation warning when the CA certificate does not match the certificate
  • Improved the readability of the content of the additional PHP directives pop-up
  • Various smaller improvements of the KeyHelp user interface
  • Various text and wording improvements throughout the user interface

API Changes

  • Added new [GET], [PUT], [DELETE] methods to the following endpoints, to allow access of resources by name (e.g., [GET] /clients/name/<USERNAME>)
    • /admins
    • /certificates
    • /clients
    • /databases
    • /dns
    • /domains
    • /emails
    • /ftp-users
    • /hosting-plans
    • /login
  • Updates to the endpoint /hosting-plans
    • Added new sub-fields to the 'php' field as a replacement for the old 'additional_settings' field
      • Added 'extra_directives_immutable' field for additional immutable PHP directives (= 'php_admin_value')
      • Added 'extra_directives_mutable' field for additional mutable PHP directives (= 'php_value')
      • Marked 'additional_settings' field as deprecated
    • Added new sub-field to the 'permissions' field as a replacement for the old 'change_personal_data' field
      • Added 'update_contact_data' field
      • Marked 'change_personal_data' field as deprecated
    • Added new sub-field to the 'permissions' field: 'delete_main_domain'
  • Updates to the endpoint /domains
    • Added new sub-field to the 'security' field as a replacement for the old 'force_https' field
      • Added 'is_prefer_https' field
      • Marked 'force_https' field as deprecated
  • API documentation
    • Updated OpenAPI documentation format to 3.1.0
    • Properly marked deprecated fields, so all deprecated fields are now highlighted appropriately in the documentation at https://api.keyhelp.de
    • Updated the documentation accordingly to the changes within KeyHelp 24.1
    • Updated openapi.json / openapi.yml files which can be used by external definition parsers
    • Improved various other aspects of the documentation, such as improved spelling, added notes, updated description texts, improved YAML formatting, fixed issues, and so on
  • Increased API version to 2.9

Tool Updates

  • Roundcube 1.6.7
  • SnappyMail 2.36.3
  • Restic 0.16.4
  • Rclone 1.66.0

Vendor Library Updates

  • Chart.js 4.4.3
  • Font Awesome 6.5.2
  • monolog/monolog 2.9.3
  • phpseclib 2.0.47
  • Twig 3.10.3
  • symfony/deprecation-contracts 2.5.3
  • symfony/polyfill-ctype 1.29.0
  • symfony/polyfill-mbstring 1.29.0
  • symfony/polyfill-php80 1.29.0
  • symfony/yaml 5.4.39

Translations

  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Catalan (100%) | Thanks to Otmar Schuster
  • 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 Portuguese (100%) | Thanks to ID Digital
  • Updated Spanish (100%) | Thanks to Otmar Schuster
  • Updated Turkish (100%) | Thanks to Serkan Türkkan

Fixes / Imperfections

  • Fixed that when adding an existing backup repository but entering a wrong password, at the second try (after the repo has already been created), it will crash because of a wrong function call
  • Fixed that logs from deleted domains were not deleted as well
  • Fixed that when the disk space of the '/' partition could not be loaded, an Error 500 was shown and one was not able to log in to KeyHelp
  • Fixed that on the account template overview, 'open_basedir' was incorrectly labeled as 'upload_open_basedir'
  • Fixed that the modal pop-up for the 'Delete email account contents' feature was not properly localized and only showed the text in German
  • Fixed a bug in the error handling routine of the application installer where it tried to access a missing function
  • Fixed the error 'ERROR | Unknown task. / No operation defined.' that possibly occurred after changing the server hostname
  • Fixed an issue that on servers with the logrotate timer set to 00:00:00 (which can happen through logrotate software updates, likely Debian), the traffic and Awstats statistics were empty on Saturdays
  • Fixed that the settings of identities created within SnappyMail were not transferred to the new version during a SnappyMail update within the KeyHelp panel update routine
  • Fixed improper parameter usage during CSR generation
  • Fixed that the event messages on the DNS editor page did not correctly indicate that it will take some time to update the configurations

Miscellaneous

  • Added a new template marco feature (textarea + checkbox) for generating textarea input elements, allowing more possibilities to design upcoming features
  • Removed multiple occurrences of duplicate code belonging to the 'DKIM DNS record' modal window
  • Removed the date when the old backup system will be removed from KeyHelp
  • Replaced content of 'Xmailer' email header of notification emails sent by KeyHelp with 'KeyHelp Control Panel'
  • Improved the way how stacked icons are generated, allowing more possibilities to design upcoming icons/features
  • Improved installation routines of components responsible for setting up special-purpose servers
  • Improved the logic responsible for showing the domain security features on the domain overview page
  • Updated the tool names and system links to KeyHelp tools within the /bin directory
  • Updated the handling of string post variables when using the UI and make sure they now always have their line break characters normalized
  • Marked Russian translation as abandoned
  • Database updates
    • Added database relations to the following tables: 'domains_dkim', 'domains_redirect_codes', 'domains_custom_vhost', 'domains_custom_dns'
    • Updated the column order in the 'php_settings' table to be more in line with the code
    • Removed outdated settings from the 'settings' table
    • Renamed the table 'domains_cgi_path' to 'domains_cgi'
    • Renamed the field 'change_personal_data' to 'update_contact_data' in the 'users' and 'account_templates' tables
    • Renamed the field 'force_https' to 'prefer_https' in the 'domains' table
    • Renamed the field 'status' to 'state' in the 'background_tasks' table
  • Refactorings (performance improvement, implementation of new features, use of modern language features, streamlining, etc.)
    • Refactored PostfixConfig class
    • Refactored SingleSignOn class
    • Refactored ApiKey class
    • Refactored BackgroundTasks class
    • Refactored CliMenu class
    • Refactored SelfStoringObject class
    • Refactored Disk class
    • Refactored Domain class
    • Refactored OperationSystem class
    • Refactored EmailAccount class
    • Refactored maintenance task 'Update server services'
    • Refactored disk space and graph calculations on the admin and client dashboards
24.0 07 February 2024

New Features / Added Content

  • Added domain owner transfer feature
  • Added notification webhook feature (each time a notification event occurs, event-relevant data is sent to a webhook URL, where it can be processed further)
  • Added traffic statistics for domains

Improvements / Changes

  • Improved the domain creation process by suggesting directories for the domain home directory
  • Added a new URL for accessing the database administration tool 'https://<DOMAIN>/db'
  • Enhanced the 'keyhelp_login_data' on new installations by adding access URL and IP to the database section, similar to the KeyHelp section
  • Updated the Apache error log parser (e.g. on web server protocols) to work with servers that use “remote” instead of “client” in the Apache error log
  • Improved the 'Login as this user' feature as it now preserves the administrator's theme mode regardless of what theme mode the client is using
  • Improved the user experience when switching to dark/normal mode - it now stays on the same page where it was triggered and no longer jumps back to the last main page
  • Revamped the Message of the Day (MotD) feature
    • Made MotD consistent for Debian and Ubuntu systems
    • Improved the way the MotD is generated
    • Enabled the display of IPv6 addresses
    • Made MotD script configurable (white-label, link a custom login file, decide which login URLs / IPs to display)
    • Implemented two different views, one for root SSH access and one for client SSH access (hide login file on client access)
  • Updated the ionCube Loader to version 13.0.2
  • Updated the SourceGuardian to version 14.0.2 / 14.0.3
  • Cleaned up and improved the database structure of the KeyHelp database
    • Changed charset from utf8mb3 to utf8mb4
    • Changed collation from utf8mb3_general_ci to utf8mb4_unicode_ci
    • Added relations / improved cascade design for various tables
    • Adjusted the lengths of database fields for various tables
    • As a side effect, you will now be able to use emojis in inputs fields 😉👍
  • Extended the start of anonymization for event log records from 48 hours to 14 days
  • Hardened calls to system commands (e.g. exec) to handle incorrectly set locales that could lead to non-English system responses and potential command output parser errors
  • Updated the HTTP headers KeyHelp is sending to no longer reveal the web server it is using (only for KeyHelp Web UI)
  • Improved screen space usage for screen widths between 769 - 1408px on various pages
  • Improved the wording on various pages to avoid vertical scrolling
  • Increased the width of all input pages and therefore improved visual appearances on wider screen resolutions
  • Moved the default language option out of the language configuration page table, saving horizontal space and making it easier to find
  • Added the 'Login as this user' feature to the TLS/SSL certificates page
  • Added a link from the AWStats configuration page to the data privacy page
  • Added an option to let AWStats determine visitor origin countries and hostnames instead of IPs
  • The option 'Configuration -> FTP-Server -> Allow only SSL/TLS protected connections' is now set to true by default on new installations
  • Added a note to the 'Server reboot' page when backup operations are still running
  • Added UI elements to the web server configuration page to reset web server ports settings to default
  • Updated the Apache log format section on the web server configuration page
  • Added UI elements to the web server configuration page to reset Apache log format settings to default
  • Ensured AWStats can now work with a custom Apache log format
  • Ensured the web server protocols page can now work with a custom Apache log format
  • Removed the ability to use email aliases with a different domain name than the email account address; During the update, existing aliases with a different domain became detached email forwarding accounts to the address of the email account
  • Backup system
    • Added progress status to restore operations
    • Improved CLI backup status reports
    • Improved the process handling of backup processes to be more flexible and easier to use, also fixed some minor issues
    • Improved the visibility of the provided example configurations for custom backup storages
    • When still using the old/outdated backup system, its email notifications are not issuing the status 'Warning' even on successful operations; Note, the old/outdated backup management is marked as deprecated
    • When still using the old/outdated backup system a warning notification is displayed on the KeyHelp dashboard; Note, the old/outdated backup management is marked as deprecated
    • Improved the description texts on the backup management selection page
    • Added an email notification when backup operations pile up (indicating a possible issue with the backup system)
  • Enabled logging of failed authentication attempts in SnappyMail to syslog
  • Fail2Ban
    • Implemented a jail for SnappyMail failed authentication attempts in /etc/fail2ban/jail.d/keyhelp.local (only for new installations or dist-upgrades - see /install/templates/fail2ban/jail.d/keyhelp.local for a template to update your server accordingly)
    • Implemented a jail for MariaDB (if remote access is enabled) failed authentication attempts in /etc/fail2ban/jail.d/keyhelp.local (only for new installations or dist-upgrades - see /install/templates/fail2ban/jail.d/keyhelp.local for a template to update your server accordingly; Debian 10 and Ubuntu 20 may need to update /etc/mysql/maria.conf.d/50-server.cnf and comment out the log_error = line to make this work)
    • Shortened the name all KeyHelp implemented Fail2Ban jails (e.g. keyhelp-apache -> kh-apache)
    • Renamed the jail kh-proftpd to kh-ftp
    • Ensured that the required libraries 'python3-pyinotify' and 'python3-systemd' for Fail2Ban are installed
    • Added an alternative path to the fail2ban-client binary to the KeyHelp's sudoers configuration file
  • Debian 12 / Rspamd
    • Ensured the spam learn cronjob is enabled/disabled according to the settings made within the KeyHelp UI (when dist-upgrade was performed between 1st and 7th November, it may not be enabled)
    • Cleaned up the system for outdated / no longer needed content in /var/spool/spamassassin/
    • Cleaned up the /etc/postfix/master.cf for outdated / no longer needed Amavis configuration directives
    • Rebuilt the directory structure within /var/lib/rspamd/ for future Rspamd extensions
    • Fixed Rspamd's case-sensitive DKIM lookups
    • Reworked the method of securing the Rspamd web interface
      • The interface is now password protected but also allows autologin when being logged into KeyHelp
      • You have to set an initial password in order to use the web interface
      • Allows a much quicker access to the web interface
      • The Rspamd service no longer needs to reboot
      • The new method is much more secure (especially in shared IP environments)
      • Removed code complexity and maintenance
      • The Rspamd web interface can now be accessed without the need to log into KeyHelp first
      • Added a note and link to the Rspamd external web interface
    • Re-enabled email address black-/whitelist for Rspamd; On dist-upgraded systems: Your old black-/whitelist settings from before the dist-upgrade are reactivated automatically in the course of the update
    • Added an option to decide whether blacklisted email addresses should be tagged as spam or rejected
  • Improved the user interface on the email server configuration page
  • Updated the way CPU information are collected
  • Hides the CPU clock speed, if it could not be correctly determined
  • Added a fallback for processors whose processor label could not be correctly determined
  • Stopped loading vendor image if CPU vendor could not be correctly determined, resulting in a cleaner look of the dashboard
  • Added convenient functions to access the processor and core labels
  • Updated headlines and descriptions for maintenance intervals to make them more uniform and easier to understand
  • Ensured 'file' is installed for new installations (used for file manager)
  • Improved the parsing of the mail queue
    • Improved speed of the mail queue parsing by a factor of up to 200
    • If an email in the queue has more than one recipient, you can now see the addresses of other recipients, not just one
    • You can see the total number of recipients an email has
    • Improved the help section of the mail queue page
    • Improved formatting of large mail queue count numbers
    • The warning threshold for numerous emails in the queue has been reduced to 200 (previously 500)
    • The warning message is now more visible and more consistent to the rest of the KeyHelp UI
    • Added an email notification that triggers when the amount of emails in the queue reaches the warning threshold
  • Improved the user experience when using the password input fields while having caps lock enabled
  • Moved the login notification checkbox from dashboard to profile settings
  • Enabled login notifications feature also for administrators
  • Added the option to specify logos for Roundcube when it runs in dark mode (Configuration -> Webmail)
  • Installed PHP extension gmp
  • Updated the white label feature
    • Added the option to specify logos for the KeyHelp user interface when KeyHelp runs in dark mode
    • Removed the custom 'Product name' option and replaced with 'Replaces occurrences of KeyHelp with the neutral Control Panel' option
    • Updated the general white label user interface
    • Updated the current 'Hidden contents' section to 'User interface settings' section
    • Updated internal names, storage locations, etc. of the elements stored within the white label settings
  • Updated the CLI badges for error/important messages to be no longer localized (by default), as this results in an inconsistent message output
  • Added option to clear a mailbox, if it is a forwarding account and consumes above 1 MB disk space
  • The disk space consumption of a forwarding mailbox is now already displayed when the mailbox consumes more than 1 MB
  • Updates the visuals on the mailbox consumption for a forwarding mailbox to save horizontal space
  • Improved the texts for DNS blacklist/whitelist labels to minimize confusion
  • Updated the notes on the user privileges settings
  • Updated the redirect target when submitting the 'Email notification -> General settings' form to be more logical
  • Improved warning message in the extended installation log
  • Improved various user interface texts and wordings in the English and German base language to be more consistent, easier to read and to comprehend
  • Improved consistency of multiple email notification texts and subject lines
  • Updated the KeyHelp cronjobs to use /bin/bash instead of /bin/sh for keyhelp, keyhelp-firewall, keyhelp-monitoring, keyhelp-rspamd-learn, and keyhelp-sa-learn
  • Updated various string structures for event log records
  • Protected the postfix email server (MTA) against email smuggling
    • Debian 10: Uses the short-term workarounds suggested by postfix
    • Debian 11: Uses the long-term fix suggested by postfix
    • Debian 12: Uses the long-term fix suggested by postfix
    • Ubuntu 20: Uses the short-term workarounds suggested by postfix
    • Ubuntu 22: Uses the short-term workarounds suggested by postfix
  • Improved database stability when performing long-running tasks (like Backups) on Systems >= Ubuntu 22 & Debian 12
  • Improved error handling on database startup errors on Systems >= Ubuntu 22 & Debian 12
  • Used 'System (root)' consistently for all occurrences where resources do not belong to a certain user, but instead belong to the system / the administrators (e.g. SSL/TLS certificates, Bulk operations, Scheduled tasks)
  • Reduced the number of translations required due to word streamlining and reassignment of strings within the .po files
  • Reduced possible confusion about which maintenance interval task belongs to which configuration page by adding additional help texts

API Changes

  • Updated the endpoints '[GET] /domains' and '[GET] /clients/{id}/resources' to now return the traffic accumulated in the current month for the corresponding domain
  • Fixed the misspelled 'aliases' and 'aliases_utf8' fields on the endpoint '/emails' - the old misspelled fields 'aliasses' and 'aliasses_utf8' are marked as deprecated and should no longer be used
  • Fixed some spelling mistakes in API documentation
  • Prevented adding email aliases with a different domain than the domain of the email account
  • Provided the API definition file now also in JSON format under /api/openapi.json
  • Increased API version to 2.8

Tool Updates

  • Roundcube 1.6.6
  • SnappyMail 2.33.0
  • Restic 0.16.3
  • Rclone 1.65.2

Vendor Library Updates

  • Font Awesome 6.5.1
  • Chart.js 4.4.1
  • Twig 3.8.0
  • CodeMirror 5.65.16
  • PHPMailer 6.9.1
  • phpseclib 2.0.46
  • TinyMCE 6.8.2
  • symfony/yaml 5.4.35
  • symfony/polyfill-php80 1.28.0
  • monolog/monolog 2.9.2

Translations

  • Updated Arabic (100%) | Thanks to Mohammed Al Shamlan
  • Updated Brazilian Portuguese (100%) | Thanks to Rogério Borba
  • Updated Catalan (100%) | Thanks to Otmar Schuster
  • 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 Polish (96%) | Thanks to Grafidea
  • Updated Russian (73%) | 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 an issue where the client's theme was updated instead of the admin's when an admin logged in as a client and changed the theme mode
  • Fixed an issue where the date format of the KeyHelp database and data backup during a KeyHelp update used an incorrect date format
  • Fixed an issue when using the 'Bulk Operations -> Updating the PHP version of domains and scheduled tasks' where the default PHP version may not get listed in the 'Current PHP version' dropdown
  • Fixed an email error notification during the spam learning cronjob when no email account exists on the server
  • Fixed an issue where determining the size of the email queue on the admin dashboard could be too slow when having a large mail queue and preventing the login into KeyHelp
  • Fixed an issue where the server clock displayed visitors local time instead of the server time
  • Fixed an error on certificate management page with certificates having a duplicate CommonName property
  • Fixed some incorrect redirect targets within the KeyHelp UI where the user may have been redirected to the wrong page in case of some edge-case errors
  • Fixed issues on systems with incorrectly set locale settings and the parsing of various system commands (e.g. swap may not be correctly determined, monitoring may not work properly)
  • Fixed a PHP notice that may occur during file upload: Trying to access array offset on value of type null” in /home/keyhelp/www/keyhelp/pages/client_file_manager.php on line 450
  • Fixed a PHP deprecation warning: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/keyhelp/www/keyhelp/core/pending/File.php on line 244
  • Fixed a PHP deprecated warning when creating a Dropbox backup repository: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/keyhelp/www/keyhelp/core/Backup/Storage/BackupStorageConfig/BackupStorageConfigDropbox.php on line 110
  • Debian 12 / PHP 8.2 | Fixed a PHP deprecation warning: Creation of dynamic property QRencode::$cmyk is deprecated in /home/keyhelp/www/keyhelp/vendor/phpqrcode/phpqrcode.php on line 3266
  • Debian 12 / PHP 8.2 | Fixed a PHP deprecation warning: Creation of dynamic property PwnedChecker::$numberOfDataBreaches is deprecated in /home/keyhelp/www/keyhelp/core/Security/PwnedChecker.php on line 90
  • Debian 12 | Fixed that OpenDKIM was installed (OpenDKIM is not needed on Debian 12)
  • Fixed an issue where the labels of the unban button did not match the modal window texts on the Fail2ban management page
  • Fixed some issues regarding backups being stopped during execution without an error message

Miscellaneous

  • Unified PHP package list installed from the pre-installer and the main install routine
  • Removed unnecessary duplicate Dovecot configuration checks
  • Adjusted the character input limits in the input field for FTP username
  • Adjusted the character input length in the input fields for database name & database username
  • Updated Easter eggs
  • Updated code structure by updating the association of functions to their corresponding files
  • Enhanced debug capabilities when KeyHelp is installed/running with debug mode
  • Updated Debian 12 to be capable of running in full debug mode (dev-server only)
  • Updated debug panel appearance
  • Changed the CLI badge label for an important message from 'Important' to 'Attention'
  • Added more features to help designing KeyHelp's configuration pages
  • Updated method on how Roundcube custom logo will be configured
  • Updated the way the Apache default log format is handled
  • Renamed various internal components to make them universal/independent of the software installed on the server
  • Updated database tables 'mail_users' and 'mail_aliases'
    • Renamed table to 'mail_aliases' to 'mail_routing'
    • Removed unnecessary fields from 'mail_routing' ('id_user', 'id_domain') and updated code accordingly
    • Updated column structure and order within the 'mail_users' table
  • Refactorings (performance improvement, implementation of new features, use of modern language features, streamlining, increased flexibility etc.)
    • Refactored Backup restore & process handling
    • Refactored Events class
    • Refactored BasicEnum class
    • Refactored BasicStorage & its derived classes
    • Refactored FileAccess class
    • Refactored FileTypeCategory class
    • Refactored ServerEmailAliases class
    • Refactored Curl class
    • Refactored Cloudflare class
23.2.1 30 October 2023

Improvements / Changes

  • Added ability to open files with mime type 'application/javascript' via file manager
  • The email notification 'A client has updated its contact details' is now also sent when clients have updated their email address
  • Debian 12 | Added spam-learning for Rspamd and corresponding option field for 'Configuration -> Email Server'

Tool Updates

  • Roundcube 1.6.4

Vendor Library Updates

  • phpseclib 2.0.45

Translations

  • Updated Dutch | Thanks to Bas Heijermans
  • Updated English
  • Updated French | Thanks to Chris Mehl
  • Updated German

Fixes / Imperfections

  • Debian 12 | Fixed an issue where the wrong template was used for the Apache configuration file keyhelp.conf, which caused the Rspamd web interface to stop working after a rewrite of keyhelp.conf was triggered (already fixed since KeyHelp build 23.2.0.3097, mentioned here only for completeness)
  • Debian 12 | Fixing a 'PHP deprecated notice' when performing Ajax requests on systems upgraded from Debian 11 to 12
  • Debian 12 | Fixed the error that occurred when using the Rspamd web interface and the 'Scan/Learn' feature
  • Fixed that the checkbox under 'Configuration -> Support Access' was incorrectly displayed as enabled, although support access was not enabled
  • Fixed that with certain browser window sizes, the input fields under 'Configuration -> Service/Port Monitoring on Dashboard' were displayed too small

Miscellaneous

  • Updated KeyDisc Pro Logo
  • Hidden 3 more Easter eggs
  • Implemented new method to allow more variation in the display of Easter eggs
  • Updated component names displayed during the installation routine
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