Add full API endpoint suite, lib managers, webmail (Roundcube :8883), and NovaCPX icon/branding assets

- 14 API endpoints: accounts, packages, domains, dns, email, databases, ftp, ssl, cron, php, files, stats, webmail, server_setup
- 8 lib managers: AccountManager, VhostManager, DNSManager, EmailManager, DatabaseManager, PHPManager, FTPManager, SSLManager
- Roundcube webmail on dedicated port 8883 (sequenced after 8880/8881/8882)
- Custom NovaCPX SVG icon sprite (30+ unique icons), logo, mark, favicon
- PORT_WEBMAIL=8883 wired into Core.php, install.sh, UFW, Fail2Ban, credentials file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 05:50:50 +00:00
parent 716d292e77
commit e3b166803a
28 changed files with 2576 additions and 1 deletions
+3 -1
View File
@@ -22,6 +22,7 @@ define('PANEL_VER', $_cfg['panel']['version'] ?? NOVACPX_VERSION);
define('PORT_USER', (int)($_cfg['panel']['port_user'] ?? 8880));
define('PORT_RESELLER', (int)($_cfg['panel']['port_reseller'] ?? 8881));
define('PORT_ADMIN', (int)($_cfg['panel']['port_admin'] ?? 8882));
define('PORT_WEBMAIL', (int)($_cfg['panel']['port_webmail'] ?? 8883));
define('WEB_SERVER', $_cfg['web']['server'] ?? 'apache');
define('PHP_DEFAULT', $_cfg['web']['php_default'] ?? '8.3');
@@ -29,7 +30,8 @@ define('PHP_DEFAULT', $_cfg['web']['php_default'] ?? '8.3');
$requestPort = (int)($_SERVER['SERVER_PORT'] ?? 0);
define('CURRENT_PORTAL',
$requestPort === PORT_ADMIN ? 'admin' :
($requestPort === PORT_RESELLER ? 'reseller' : 'user')
($requestPort === PORT_RESELLER ? 'reseller' :
($requestPort === PORT_WEBMAIL ? 'webmail' : 'user'))
);
function novacpx_log(string $level, string $msg, array $ctx = []): void {