query($sql); if ($stmt) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $servers[] = [ 'id' => (int)$row['id'], 'name' => $row['name'], 'panel_url' => $row['panel_url'], 'provider' => $row['provider'] ?? '', 'ip' => $row['ip_address'] ?? '', 'ip_address' => $row['ip_address'] ?? '', 'username' => $row['username'] ?? '', 'api_enabled' => (int)$row['api_enabled'], 'api_status' => ((int)$row['api_enabled'] === 1) ? 'enabled' : 'disabled', 'environment' => $row['environment'] ?? 'production', 'notes' => $row['notes'] ?? '', 'status' => $row['last_status'] ?: 'warning', 'cpu' => 0, 'ram' => 0, 'disk' => 0, 'websites' => 0, 'databases' => 0, 'ssl_expiring' => 0, 'last_check' => $row['last_check'] ?: '-' ]; } } $packagesByServer = []; $stmtPackages = $db->query(" SELECT id, server_id, package_name, disk_space, bandwidth, email_accounts, ftp_accounts, databases_count, domains_count, last_sync FROM cyberpanel_packages ORDER BY package_name ASC "); if ($stmtPackages) { while ($package = $stmtPackages->fetch(PDO::FETCH_ASSOC)) { $serverId = (int)$package['server_id']; if (!isset($packagesByServer[$serverId])) { $packagesByServer[$serverId] = []; } $packagesByServer[$serverId][] = $package; } } $domains = [ [ 'domain' => 'yogasoul.it', 'server' => 'OVH VPS 1', 'php' => '8.2', 'ssl' => 'Valid', 'disk' => '4.8 GB', 'status' => 'Online', 'panel_url' => 'https://server1.claudiosironi.com:8090' ], [ 'domain' => 'claudiosironi.com', 'server' => 'OVH VPS 1', 'php' => '8.1', 'ssl' => 'Valid', 'disk' => '2.1 GB', 'status' => 'Online', 'panel_url' => 'https://server1.claudiosironi.com:8090' ], [ 'domain' => 'villadonatella.com', 'server' => 'Client VPS Keliweb', 'php' => '8.2', 'ssl' => 'Expiring', 'disk' => '8.7 GB', 'status' => 'Warning', 'panel_url' => 'https://panel-client.example.com:8090' ], [ 'domain' => 'test-app.local', 'server' => 'Test Server', 'php' => '8.3', 'ssl' => 'Missing', 'disk' => '1.2 GB', 'status' => 'Offline', 'panel_url' => 'https://test-server.example.com:8090' ] ]; $totalServers = count($servers); $onlineServers = count(array_filter($servers, fn($s) => $s['status'] === 'online')); $warningServers = count(array_filter($servers, fn($s) => $s['status'] === 'warning')); $offlineServers = count(array_filter($servers, fn($s) => $s['status'] === 'offline')); $totalWebsites = array_sum(array_column($servers, 'websites')); $totalDatabases = array_sum(array_column($servers, 'databases')); $totalSslExpiring = array_sum(array_column($servers, 'ssl_expiring')); ?>

CyberPanel Central Dashboard

Manage and monitor all your CyberPanel servers from one place.

Total Servers

Online Servers

Websites

SSL Expiring

Provider
IP
Env
CPU
%
RAM
%
Disk
%
Websites
Databases
API
Last check:
Open CyberPanel
Domains / Websites

Theoretical list of websites detected from all CyberPanel servers.

Domain Server PHP SSL Disk Status Actions
PHP
Verify Connection

Test API credentials and check if the CyberPanel instance is reachable.

List Websites

Retrieve all websites configured on the selected CyberPanel server.

List Databases

Retrieve databases and database users created in CyberPanel.

SSL Status

Check SSL status and detect domains with certificates close to expiration.

Create Website

Create a new website on the selected CyberPanel server.

Backup Website

Launch a backup operation for a selected website or database.

Email Accounts

Read or manage email accounts configured on a specific domain.

Raw API Call

Send a manual API command for debugging and advanced operations.

API Logs

Temporary theoretical log area. Later it will read from a database table or log files.

[2026-05-20 09:42:11] INFO Checking API connection: OVH VPS 1 [2026-05-20 09:42:12] OK verifyConn returned success [2026-05-20 09:42:14] INFO Loading websites from CyberPanel [2026-05-20 09:42:15] OK 8 websites detected [2026-05-20 09:42:20] WARN villadonatella.com SSL will expire soon [2026-05-20 09:43:02] ERROR Test Server API disabled or unreachable