- Changed repository URLs in the CyberPanel upgrade script and related installation scripts to use HTTPS for improved security.
- Updated the `mailscannerinstaller.sh` and `spamassassin_tojunk_installer.sh` scripts to reflect the new secure URLs.
- Modified the `install.py` script to include an additional parameter in the `update_settings_file` method for better password management.
- Updated MariaDB repository URLs in cyberpanel_upgrade.sh and cyberpanel.sh to use the mirror site for improved reliability.
- Added logic in cyberpanel_upgrade.sh to determine the appropriate MariaDB repository based on the OS version.
- Introduced a new method in install.py to apply specific fixes for AlmaLinux 9, including the installation of compatibility packages.
- Removed the obsolete simple_install.py script to streamline the installation process.
- Changed MariaDB server version from 10.11 to 12.1 in cyberpanel_upgrade.sh, cyberpanel.sh, install.py, and venvsetup.sh to ensure compatibility with the latest features and security updates.
- Enhanced error handling for branch and commit verification in venvsetup.sh to improve installation reliability.
- Streamlined the requirements file download process with fallback options in venvsetup.sh to handle potential download failures.
- Updated cyberpanel_upgrade.sh to differentiate AlmaLinux 9 for dnf package management and specific package installations.
- Improved OS detection logic to handle AlmaLinux 9 separately, ensuring correct repository setup and package installations.
- Enhanced error handling and logging for better feedback during the installation process.
- Refined version validation in cyberpanel.sh to support stable versions, development versions, and commit hashes.
- Streamlined installation process in install.sh to accommodate specific branch, tag, or commit installations.
- Improved conflict resolution for MariaDB and MySQL packages in both cyberpanel.sh and cyberpanel_upgrade.sh.
- Added checks and symlink creation for mysql.h compatibility to ensure successful installation of MySQL development headers.
- Enhanced error handling during Python requirements installation with fallback options for mysqlclient and PyMySQL.
- Verified installation of MySQL development headers and modified requirements to avoid mysqlclient compilation issues.
- Added installation steps for MySQL/MariaDB development headers in both cyberpanel.sh and cyberpanel_upgrade.sh to support the mysqlclient Python package.
- Implemented checks for different operating systems (Ubuntu, Debian, CentOS, RHEL, etc.) to ensure the correct packages are installed.
- Enhanced error handling during Python requirements installation with fallback options for mysqlclient.
- Verified the installation of MySQL development headers using pkg-config.
- Adjusted PHP version priority in cyberpanel_upgrade.sh and install.py to include PHP 8.5 (beta) as the highest priority.
- Enhanced package installation logic in cyberpanel.sh and installCyberPanel.py to install PHP dependencies more robustly, including error handling for missing packages.
- Updated README.md to reflect the new recommended PHP versions and deprecated versions.
- Improved error handling and dependency management in phpUtilities.py and upgrade.py for better installation reliability.
- Implement directory integrity checks to detect missing CyberPanel components
- Add automatic recovery by cloning fresh repository when essential directories are lost
- Create database credential recovery with automatic password reset capability
- Update all service configurations (FTP, PowerDNS, Postfix, Dovecot) when password is reset
- Add service restart functionality to apply new configurations
- Preserve existing configuration files during recovery process
- Handle both Ubuntu (root password) and CentOS (separate password) database configurations
This ensures upgrades can complete successfully even when /usr/local/CyberCP is completely lost.
- Applied same fix from cyberpanel.sh to cyberpanel_upgrade.sh
- Detects AlmaLinux/Rocky Linux 9 (as CentOS 9) and uses dynamic Python path resolution
- Fixes TypeError: expected string or bytes-like object during virtualenv creation
- Uses 'which python3' to find correct Python executable path instead of hardcoded /usr/bin/python3
- Applied fix to all 4 locations where virtualenv is created in upgrade script