Complete modernization: PHP 8.0-8.4 support, React 18, and security hardening#2322
Complete modernization: PHP 8.0-8.4 support, React 18, and security hardening#2322Dennis-SEG wants to merge 2654 commits into
Conversation
…gration React integration ready for v1.0.0 release.
Vesta-ioncube is missing
…terface Integrated new api interface.
Updated react UI and UX part.
refactor: drop TLSv1.1 support in rhel 7
Update v-update-sys-rrd-mem
Increment backend port also when commented
…-patch cmstew amazon linux clamd patch
Fix ftp restore path
Fix reset password from CLI / roundcube
…nd-api Feature/react UI and api
All modern installers now copy templates from install directory: - ubuntu-modern: copies from install/ubuntu/$release/templates - debian-modern: copies from install/debian/$release/templates - rhel-modern: copies from install/rhel/$release_major/templates This fixes 'default web template does not exist' error.
Changes to all modern installers: - Admin user now created with /home/admin home directory - Admin home directories created (conf/web, conf/mail, conf/dns, web, mail, tmp) - System directories created (/var/log/apache2/domains, /etc/apache2/conf.d) - System IP automatically detected and added via v-add-sys-ip - Templates copied during installation This fixes 'default web template does not exist' and domain creation errors.
All resource limits for admin user now set to unlimited: - WEB_DOMAINS, WEB_ALIASES - DNS_DOMAINS, DNS_RECORDS - MAIL_DOMAINS, MAIL_ACCOUNTS - DATABASES, BACKUPS This allows the admin user to create domains immediately after install.
…ndling All modern installers: - Add nginx 'bytes' log format for Vesta traffic tracking - Fix admin user creation when stale group exists - Fix mail-wrapper.php shebang to use /usr/bin/php These fixes ensure domain creation and nginx restart work properly.
All modern installers now create /usr/local/vesta/conf/mysql.conf with proper format including SUSPENDED='no' flag. This fixes 'host cannot be empty' error when creating databases.
Ubuntu and Debian modern installers: - Install roundcube-mysql and roundcube-plugins - Install phpmyadmin - Create symlinks in $VESTA/web/webmail and $VESTA/web/phpmyadmin - Configure roundcube default host This fixes the non-working webmail and phpmyadmin links.
Ubuntu and Debian installers now: - Create roundcube database if not exists - Recreate roundcube user with correct password from debian-db.php - Grant proper permissions - Initialize database tables This fixes 'Access denied for user roundcube' error.
Add nginx location blocks to handle phpMyAdmin and Roundcube requests through the Vesta panel on port 8083. This fixes the 502 Bad Gateway errors when accessing /phpmyadmin and /webmail. Changes: - Ubuntu: Added inline location blocks in vesta.conf - Debian: Added post-installation modification of vesta-nginx config - RHEL: Added symlinks and nginx config modification The location blocks properly handle: - PHP files via FastCGI to PHP-FPM socket - Security: deny access to sensitive directories - Proper alias paths for each application
The official Vesta packages may not support modern distributions (Ubuntu 24.04, Debian 12, RHEL 9). Changed all modern installers to clone the Vesta repository from GitHub and install from source. Changes: - Ubuntu: Clone from GitHub if not running from local repo - Debian: Same approach, removed apt-get install vesta - RHEL: Same approach, removed dnf install vesta The installer now: 1. Checks if running from a cloned repository 2. If not, clones from GitHub to /tmp/vesta-repo 3. Copies binaries, web files, functions, and templates 4. Ensures git is installed as a dependency
The previous check for bin directory would incorrectly match /bin when running the script from /tmp/install.sh (via curl), causing the installer to skip git clone and copy system binaries instead of Vesta binaries. Changed the check to look for a Vesta-specific file (bin/v-add-user) instead of just checking if a bin directory exists.
- Updated Mails.jsx to use relative URL for webmail link - Added MAIL_URL and DB_PMA_URL to Ubuntu installer vesta.conf - Rebuilt React app with the webmail link fix This ensures the links work correctly when accessing the panel on port 8083 instead of redirecting to port 80.
Changed webmail link to use relative URL instead of absolute URL with hostname. This ensures webmail links work correctly through the Vesta proxy on port 8083.
The $users variable was being set with user data in the session check, but then immediately reset to null by the initialization code that came after. Moved initialization before the session check so user data is preserved and returned correctly in the API response.
Tested on Ubuntu 22.04 and 24.04 (ARM64 VMs). Ubuntu 20.04 and Debian not tested due to ARM64 environment limitations: - ondrej PPA lacks PHP 8.3 ARM64 packages for Ubuntu 20.04 - Multipass does not support Debian images These should work on x86_64 production servers where full PHP 8.3 support is available from the ondrej PPA.
- Add all required user.conf fields (statistics, contact, language, etc.) - Use SHA-512 password hashing for Vesta compatibility (yescrypt not supported) - Copy index.html to static/index.html to fix React app loading Fixes applied to Ubuntu, Debian, and RHEL installers.
Tested components: - Panel accessible (HTTP 200) - Admin login works - Statistics display correctly - Webmail/phpMyAdmin URLs are relative - All services accessible No manual intervention required - installer works out-of-the-box.
|
No Devuan support, no Lont term support for debian LTS like debian 10 sill supported |
This will be solved in the near future. Now only tested on Ubuntu versions. With automated workflows. This is a major update with a lot of changes. It will take some time to build the install files for all linux distros. But it's on my plate. More then 1000 files have changes so it's not something what can be tested on all distros in a week. |
|
@mckaygerhard: @Dennis-SEG has already done a good job since 2025-11-07, it is important to have a real full continuity of the initial project. I am sure that he will improve more. There are the support of:
In the past, I have done ticket about it, and about RHEL / CentOS / Fedora / Rocky Linux / Alma Linux. |
|
Ok makes sense i will be close tho help on.. when i can deploy it in some way.. |
|
Just providing an update. The main item pending on this PR is a change on how the install scripts pull the relevant packages from a predefined domain/URL. We've been busy with the Rust based version of Vesta, but will have time to work on this branch from April onwards. |
|
@Dennis-SEG: Are you here? Since 2026-02-14, no sign from you... :/ Thanks in advance. |
2 similar comments
|
@Dennis-SEG: Are you here? Since 2026-02-14, no sign from you... :/ Thanks in advance. |
|
@Dennis-SEG: Are you here? Since 2026-02-14, no sign from you... :/ Thanks in advance. |
Overview
This PR modernizes Vesta Control Panel to be fully compatible with modern PHP versions (8.0-8.4) and updates the React UI to the latest stable versions, making it production-ready for 2025.
Test Results (Ubuntu 22.04) ✅
Installation tested and verified working out-of-the-box:
No manual intervention required - installer works out-of-the-box.
Changes Summary
PHP Compatibility (327 files)
error_reporting(NULL)witherror_reporting(0)create_function(),each(),mysql_*, etc.React UI Modernization
Recent Fixes
Installers Updated
vst-install-ubuntu-modern.sh- Ubuntu 20.04, 22.04, 24.04vst-install-debian-modern.sh- Debian 10, 11, 12vst-install-rhel-modern.sh- RHEL/Rocky 8, 9Testing Notes