initial commit
@@ -0,0 +1,65 @@
|
|||||||
|
# WHMCS VPS Management Module - ArkHost VPSAG
|
||||||
|
|
||||||
|
A WHMCS server module for VPS management with multi-language support.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- VPS control (start/stop/restart)
|
||||||
|
- Backup management
|
||||||
|
- Firewall configuration
|
||||||
|
- OS reinstallation with advanced options
|
||||||
|
- Resource monitoring
|
||||||
|
- VNC console access
|
||||||
|
- 8 language support
|
||||||
|
- Responsive design
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- WHMCS 8.9+
|
||||||
|
- PHP 7.4+
|
||||||
|
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
### Version 1.4
|
||||||
|
- Fixed firewall rule duplication bug when adding new rules
|
||||||
|
- Added validation warning for ANY protocol with specific port numbers
|
||||||
|
- Redesigned firewall interface with modern card-based layout
|
||||||
|
- Created standalone Firewall tab for better organization
|
||||||
|
- Completely redesigned VPS Overview section with:
|
||||||
|
- Server Status Card (hostname, IPs, OS, status, uptime, server type)
|
||||||
|
- Resource Allocation Card (CPU cores, Memory, Storage, Traffic)
|
||||||
|
- Resource Usage Card (RAM, Bandwidth, CPU)
|
||||||
|
- Quick Actions Card (Start/Stop, Restart, VNC Console)
|
||||||
|
- Fixed Quick Actions button functionality
|
||||||
|
- Completed all language translations (8 languages: English, Dutch, French, German, Italian, Portuguese, Russian, Spanish)
|
||||||
|
- Enhanced UI styling with gradient backgrounds and smooth animations
|
||||||
|
- Improved responsive design and layout consistency
|
||||||
|
- Removed duplicate VPS Information section
|
||||||
|
- Optimized resource display (removed redundant disk space usage)
|
||||||
|
|
||||||
|
### Version 1.3
|
||||||
|
- Enhanced API integration
|
||||||
|
- Performance improvements
|
||||||
|
- Bug fixes
|
||||||
|
|
||||||
|
### Version 1.2
|
||||||
|
- Custom notifications replace browser popups
|
||||||
|
- Confirmation dialogs for critical actions
|
||||||
|
- Multi-language support for all notifications
|
||||||
|
- Smart post-installation script examples based on OS
|
||||||
|
- Fixed firewall rules not displaying after creation
|
||||||
|
- Improved UI styling and animations
|
||||||
|
|
||||||
|
### Version 1.1
|
||||||
|
- Basic VPS management
|
||||||
|
- Backup operations
|
||||||
|
- Firewall rules
|
||||||
|
- OS reinstall
|
||||||
|
|
||||||
|
### Version 1.0
|
||||||
|
- Initial release
|
||||||
|
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
© 2025 ArkHost
|
||||||
@@ -0,0 +1,991 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* WHMCS Server Module - VPSAG
|
||||||
|
*
|
||||||
|
* @package WHMCS
|
||||||
|
* @version 1.4
|
||||||
|
* @copyright Copyright (c) ArkHost 2025
|
||||||
|
* @author ArkHost <support@arkhost.com>
|
||||||
|
* @link https://arkhost.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('WHMCS')) {
|
||||||
|
http_response_code(403);
|
||||||
|
exit('Access denied');
|
||||||
|
}
|
||||||
|
|
||||||
|
use WHMCS\Config\Setting;
|
||||||
|
use WHMCS\Database\Capsule;
|
||||||
|
|
||||||
|
function ArkhostVPSAG_GetVPSID(array $params) {
|
||||||
|
$vpsId = $params['model']->serviceProperties->get('vpsag');
|
||||||
|
// Handle both VPSAG-xxx and VPS-xxx formats, return just the numeric ID
|
||||||
|
return str_replace(['VPSAG-', 'VPS-'], '', $vpsId);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_API(array $params) {
|
||||||
|
$url = 'https://www.vpsag.com/api/v1/';
|
||||||
|
$data = [];
|
||||||
|
$method = '';
|
||||||
|
|
||||||
|
switch ($params['action']) {
|
||||||
|
case 'Packages':
|
||||||
|
$url .= 'plans';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Operating Systems':
|
||||||
|
$url .= 'os/plan/' . $params['plan_id'];
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Upgrades':
|
||||||
|
$url .= 'upgrade/plans';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Discount':
|
||||||
|
$url .= 'discount';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Balance':
|
||||||
|
$url .= 'balance';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Order':
|
||||||
|
$planId = ArkhostVPSAG_GetOption($params, 'planid');
|
||||||
|
$url .= 'order/' . $planId;
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$billingCycles = array(
|
||||||
|
'Monthly' => 1,
|
||||||
|
'Quarterly' => 3,
|
||||||
|
'Semi-Annually' => 6,
|
||||||
|
'Annually' => 12,
|
||||||
|
'Biennially' => 24,
|
||||||
|
'Triennially' => 36
|
||||||
|
);
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'hostname' => $params['domain'] ?? 'vps.example.com',
|
||||||
|
'notify_url' => Setting::getValue('SystemURL') . '/modules/servers/ArkhostVPSAG/callback.php',
|
||||||
|
'os' => ArkhostVPSAG_GetOption($params, 'osid'),
|
||||||
|
'billing_term' => $billingCycles[$params['model']['billingcycle']] ?? 1,
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Server Info':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params);
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Label':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/label';
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'val' => $params['label'],
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Graphs':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/graph/' . $params['time'];
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Operating Systems - Server':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/os';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Cancel':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/cancel';
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'when' => $params['when'],
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Stop Cancellation':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/stop-cancellation';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'VNC Console':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/vnc';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Reinstall':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/reinstall';
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'os' => $params['os'],
|
||||||
|
'notify_url' => Setting::getValue('SystemURL') . '/modules/servers/ArkhostVPSAG/callback.php',
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add optional SSH key if provided
|
||||||
|
if (!empty($params['ssh_key'])) {
|
||||||
|
$data['ssh_key'] = $params['ssh_key'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add optional post-install script if provided
|
||||||
|
if (!empty($params['run_on_install'])) {
|
||||||
|
$data['run_on_install'] = base64_encode($params['run_on_install']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set SSH password policy (1 = disable, 2 = enable)
|
||||||
|
$data['no_ssh_password'] = isset($params['no_ssh_password']) && $params['no_ssh_password'] ? 1 : 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Reboot':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/action/reboot';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Stop':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/action/stop';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Shutdown':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/action/shutdown';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Start':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/action/start';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Disable':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/action/disable';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Enable':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/action/enable';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'IPv4 Addresses':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/ipv4';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Reverse DNS':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/rdns/' . $params['ip'];
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'rdns' => $params['rdns']
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Addons':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/addons';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Upgrade':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/upgrade/plan';
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'plan_id' => ArkhostVPSAG_GetOption($params, 'planid'),
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Hostname rDNS':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/hostname';
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'hostname' => $params['hostname']
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Create backup':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/backup';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Delete backup':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/backup/' . $params['file'];
|
||||||
|
$method .= 'DELETE';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'List backups':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/backup';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Restore backup':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/restore/' . $params['file'];
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Get Firewall rules':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/firewall';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Add Firewall rules':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/firewall';
|
||||||
|
$method .= 'POST';
|
||||||
|
|
||||||
|
$data += array(
|
||||||
|
'action' => $params['firewallAction'],
|
||||||
|
'protocol' => $params['protocol'],
|
||||||
|
'source' => $params['source'],
|
||||||
|
'port' => $params['port'],
|
||||||
|
'note' => $params['note'],
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Delete Firewall rule':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/firewall/' . $params['rule_id'];
|
||||||
|
$method .= 'DELETE';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Commit Firewall rules':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/firewall/resync';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'ISO Images':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/iso';
|
||||||
|
$method .= 'GET';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Load ISO':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/iso/' . $params['iso_id'];
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Eject ISO':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/iso/0';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Reset root':
|
||||||
|
$url .= 'vps/' . ArkhostVPSAG_GetVPSID($params) . '/reset-root';
|
||||||
|
$method .= 'POST';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new Exception('Invalid action: ' . $params['action']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$curl = curl_init();
|
||||||
|
curl_setopt($curl, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
|
||||||
|
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
|
||||||
|
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
|
||||||
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_301);
|
||||||
|
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
|
||||||
|
curl_setopt($curl, CURLOPT_USERAGENT, 'ArkHost - VPSAG WHMCS');
|
||||||
|
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X_API_USER: ' . $params['serverusername'], 'X_API_KEY: ' . $params['serverpassword']));
|
||||||
|
|
||||||
|
if ($method === 'POST' || $method === 'PATCH') {
|
||||||
|
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||||
|
}
|
||||||
|
|
||||||
|
$responseData = curl_exec($curl);
|
||||||
|
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||||
|
|
||||||
|
$responseData = json_decode($responseData, true);
|
||||||
|
|
||||||
|
if ($statusCode === 0) throw new Exception('cURL Error: ' . curl_error($curl));
|
||||||
|
|
||||||
|
curl_close($curl);
|
||||||
|
|
||||||
|
logModuleCall(
|
||||||
|
'ArkHost - VPSAG',
|
||||||
|
$url,
|
||||||
|
!empty($data) ? json_encode($data) : '',
|
||||||
|
print_r($responseData, true)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (isset($responseData['status']) && $responseData['status'] === 0) throw new Exception($responseData['result']);
|
||||||
|
|
||||||
|
return $responseData['result'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_Error($func, $params, Exception $err) {
|
||||||
|
logModuleCall('ArkHost - VPSAG', $func, $params, $err->getMessage(), $err->getTraceAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_MetaData() {
|
||||||
|
return array(
|
||||||
|
'DisplayName' => 'ArkHost - VPSAG',
|
||||||
|
'APIVersion' => '1.1',
|
||||||
|
'RequiresServer' => true,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_ConfigOptions() {
|
||||||
|
$error = array(
|
||||||
|
'error' => array(
|
||||||
|
'FriendlyName' => 'Error',
|
||||||
|
'Description' => 'Please double check if you selected a Server Group and/or your details are correct.',
|
||||||
|
'Type' => '',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$array = array(
|
||||||
|
'planid' => array(
|
||||||
|
'FriendlyName' => 'Plan',
|
||||||
|
'Description' => 'The Plan desired (Configurable option: planid).',
|
||||||
|
'Type' => 'dropdown',
|
||||||
|
'Options' => array(),
|
||||||
|
),
|
||||||
|
'osid' => array(
|
||||||
|
'FriendlyName' => 'Operating System',
|
||||||
|
'Description' => 'The Operating System desired (Configurable option: osid).',
|
||||||
|
'Type' => 'dropdown',
|
||||||
|
'Options' => array(),
|
||||||
|
),
|
||||||
|
// Extra resource options removed - now handled via plan selection
|
||||||
|
// Plans have fixed resources defined within them in the new API
|
||||||
|
);
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (basename($_SERVER['SCRIPT_NAME'], '.php') === 'configproducts' && ($_REQUEST['action'] === 'module-settings' || $_POST['action'] === 'module-settings')) {
|
||||||
|
$id = 0;
|
||||||
|
$product;
|
||||||
|
$serverGroup = 0;
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
|
$id = (int) $_POST['id'];
|
||||||
|
|
||||||
|
$product = Capsule::table('tblproducts')->where('id', $id)->first();
|
||||||
|
$serverGroup = (int) $_POST['servergroup'];
|
||||||
|
} else {
|
||||||
|
$id = (int) $_REQUEST['id'];
|
||||||
|
|
||||||
|
$product = Capsule::table('tblproducts')->where('id', $id)->first();
|
||||||
|
$serverGroup = (int) $product->servergroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only proceed if a server group is actually selected
|
||||||
|
if ($serverGroup == 0) {
|
||||||
|
return $array; // Return basic array structure when no server group selected
|
||||||
|
}
|
||||||
|
|
||||||
|
$serverGroup = Capsule::table('tblservergroupsrel')->where('groupid', $serverGroup)->first();
|
||||||
|
if (!$serverGroup) {
|
||||||
|
// Return basic array if server group not found, don't throw exception
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
$server = Capsule::table('tblservers')->where('id', $serverGroup->serverid)->first();
|
||||||
|
if (!$server) {
|
||||||
|
// Return basic array if server not found, don't throw exception
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = array(
|
||||||
|
'serverusername' => $server->username,
|
||||||
|
'serverpassword' => decrypt($server->password),
|
||||||
|
);
|
||||||
|
|
||||||
|
$params['action'] = 'Packages';
|
||||||
|
$packageslist = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
foreach ($packageslist as $package) {
|
||||||
|
$array['planid']['Options'] += array(
|
||||||
|
$package['id'] => $package['name'] . ' (' . $package['price'] . '€)'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($product->configoption1 == '') return $array;
|
||||||
|
|
||||||
|
$params['action'] = 'Operating Systems';
|
||||||
|
$params['plan_id'] = $product->configoption1;
|
||||||
|
$operatingSystems = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
foreach ($operatingSystems as $operatingSystem) {
|
||||||
|
$array['osid']['Options'] += array(
|
||||||
|
$operatingSystem['id'] => $operatingSystem['name']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note: Extra resource upgrades are now handled via plan selection in the new API
|
||||||
|
// Plans have fixed resources defined within them, no individual resource pricing
|
||||||
|
}
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
|
||||||
|
$error['error']['Description'] = 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
return $error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_GetOption(array $params, $id, $default = NULL) {
|
||||||
|
$options = ArkhostVPSAG_ConfigOptions();
|
||||||
|
|
||||||
|
$friendlyName = $options[$id]['FriendlyName'];
|
||||||
|
|
||||||
|
if (isset($params['configoptions'][$friendlyName]) && $params['configoptions'][$friendlyName] !== '') {
|
||||||
|
return $params['configoptions'][$friendlyName];
|
||||||
|
} else if (isset($params['configoptions'][$id]) && $params['configoptions'][$id] !== '') {
|
||||||
|
return $params['configoptions'][$id];
|
||||||
|
} else if (isset($params['customfields'][$friendlyName]) && $params['customfields'][$friendlyName] !== '') {
|
||||||
|
return $params['customfields'][$friendlyName];
|
||||||
|
} else if (isset($params['customfields'][$id]) && $params['customfields'][$id] !== '') {
|
||||||
|
return $params['customfields'][$id];
|
||||||
|
}
|
||||||
|
|
||||||
|
$found = false;
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
foreach ($options as $key => $value) {
|
||||||
|
$i++;
|
||||||
|
if ($key === $id) {
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($found && isset($params['configoption' . $i]) && $params['configoption' . $i] !== '') {
|
||||||
|
return $params['configoption' . $i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_TestConnection(array $params) {
|
||||||
|
$err = '';
|
||||||
|
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Balance';
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $e);
|
||||||
|
$err = 'Received the error: ' . $e->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'success' => $err === '',
|
||||||
|
'error' => $err,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_CreateAccount(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Order';
|
||||||
|
$create = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
// Validate API response - the API function already handles status=0 errors
|
||||||
|
// but we need to ensure we have a valid vps_id
|
||||||
|
if (!is_array($create) || !isset($create['vps_id']) || empty($create['vps_id'])) {
|
||||||
|
if (is_array($create)) {
|
||||||
|
logActivity('VPSAG Order Failed - Invalid Response: ' . json_encode($create));
|
||||||
|
} else {
|
||||||
|
logActivity('VPSAG Order Failed - Non-array response: ' . gettype($create));
|
||||||
|
}
|
||||||
|
throw new Exception('Invalid response from API');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure vps_id is numeric and valid
|
||||||
|
if (!is_numeric($create['vps_id']) || $create['vps_id'] <= 0) {
|
||||||
|
throw new Exception('Invalid response from API');
|
||||||
|
}
|
||||||
|
|
||||||
|
$params['model']->serviceProperties->save([
|
||||||
|
'vpsag|VPSAG ID' => 'VPSAG-' . $create['vps_id'],
|
||||||
|
]);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_SuspendAccount(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Disable';
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_UnsuspendAccount(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Enable';
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_TerminateAccount(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Cancel';
|
||||||
|
$params['when'] = 'now';
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
Capsule::table('tblhosting')->where('id', $params['serviceid'])->update(array(
|
||||||
|
'username' => '',
|
||||||
|
'password' => '',
|
||||||
|
));
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkhostVPSAG_ChangePackage(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Upgrade';
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_Start(array $params) {
|
||||||
|
try {
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_Reboot(array $params) {
|
||||||
|
try {
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_Stop(array $params) {
|
||||||
|
try {
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_VNC(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'VNC Console';
|
||||||
|
$vnc = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
echo '<style>body{margin: 0px;}</style><iframe src="' . $vnc['vnc_url'] . '" scrolling="none" height="100%" width="100%" frameborder="0"></iframe>';
|
||||||
|
// header('Location: ' . $vnc['vnc_url']);
|
||||||
|
WHMCS\Terminus::getInstance()->doExit();
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'templatefile' => 'template/error',
|
||||||
|
'templateVariables' => array(
|
||||||
|
'error' => $err->getMessage(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_AdminCustomButtonArray() {
|
||||||
|
return array(
|
||||||
|
'Start' => 'Start',
|
||||||
|
'Stop'=> 'Stop',
|
||||||
|
'Reboot' => 'Reboot',
|
||||||
|
'VNC Console'=> 'VNC',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_AdminLink(array $params) {
|
||||||
|
try {
|
||||||
|
$params['action'] = 'Balance';
|
||||||
|
$balance = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
$params['action'] = 'Discount';
|
||||||
|
$discount = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
return '<i class="fa fa-coins"></i> Balance: ' . $balance['balance'] . '€<br><i class="fa fa-badge-percent"></i> Discount: ' . $discount['percent'] . '%';
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return 'Received the error: ' . $err->getMessage() . ' Check module debug log for more detailed error.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_ClientAreaAPI(array $params) {
|
||||||
|
try {
|
||||||
|
$action = App::getFromRequest('api');
|
||||||
|
$actions = array('Server Info', 'Graphs', 'Reinstall', 'Reboot', 'Stop', 'Start', 'IPv4 Addresses', 'Hostname rDNS', 'Create backup', 'Delete backup', 'List backups', 'Restore backup', 'Get Firewall rules', 'Add Firewall rules', 'Delete Firewall rule', 'Commit Firewall rules', 'ISO Images', 'Load ISO', 'Eject ISO', 'Reset root');
|
||||||
|
$results = array('result' => 'success');
|
||||||
|
|
||||||
|
if (in_array($action, $actions)) {
|
||||||
|
foreach ($_POST as $key => $value) {
|
||||||
|
$params[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$params['action'] = $action;
|
||||||
|
$result = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
// Special handling for specific responses
|
||||||
|
if ($action === 'Graphs') {
|
||||||
|
// If result contains graphs data, format it properly
|
||||||
|
if (isset($result['graphs'])) {
|
||||||
|
$results['graphs'] = $result['graphs'];
|
||||||
|
} else if (isset($result['cpu_img']) || isset($result['mem_img']) || isset($result['net_img']) || isset($result['disk_img'])) {
|
||||||
|
// If the response has individual graph fields, group them
|
||||||
|
$results['graphs'] = array(
|
||||||
|
'cpu_img' => isset($result['cpu_img']) ? $result['cpu_img'] : null,
|
||||||
|
'mem_img' => isset($result['mem_img']) ? $result['mem_img'] : null,
|
||||||
|
'net_img' => isset($result['net_img']) ? $result['net_img'] : null,
|
||||||
|
'disk_img' => isset($result['disk_img']) ? $result['disk_img'] : null
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// If no graph data found, set empty graphs
|
||||||
|
$results['graphs'] = array(
|
||||||
|
'cpu_img' => null,
|
||||||
|
'mem_img' => null,
|
||||||
|
'net_img' => null,
|
||||||
|
'disk_img' => null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else if ($action === 'List backups') {
|
||||||
|
// Handle backup list response - VPSAG returns array directly
|
||||||
|
// Pass the result directly - let JavaScript handle the parsing
|
||||||
|
$results = $result;
|
||||||
|
} else {
|
||||||
|
$results = array_merge($results, is_array($result) ? $result : array('data' => $result));
|
||||||
|
}
|
||||||
|
|
||||||
|
return array('jsonResponse' => $results);
|
||||||
|
} else {
|
||||||
|
throw new Exception('Action not allowed');
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return array('jsonResponse' => array('result' => 'error', 'message' => $e->getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_DeliverFile(array $params) {
|
||||||
|
try {
|
||||||
|
$dir = __DIR__ . '/template/';
|
||||||
|
$file = App::getFromRequest('file');
|
||||||
|
$files = array('app.min.css', 'app.min.js');
|
||||||
|
|
||||||
|
if (in_array($file, $files)) {
|
||||||
|
$type = '';
|
||||||
|
|
||||||
|
if (function_exists('ob_gzhandler')) {
|
||||||
|
ob_start('ob_gzhandler');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($file, '.js') !== false) {
|
||||||
|
$dir .= 'js/';
|
||||||
|
$type = 'application/javascript';
|
||||||
|
} else if (strpos($file, '.css') !== false) {
|
||||||
|
$dir .= 'css/';
|
||||||
|
$type = 'text/css';
|
||||||
|
} else {
|
||||||
|
$type = 'text/html';
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Content-Type: ' . $type . '; charset=utf-8');
|
||||||
|
header('Cache-Control: max-age=604800, public');
|
||||||
|
|
||||||
|
echo file_get_contents($dir . $file);
|
||||||
|
WHMCS\Terminus::getInstance()->doExit();
|
||||||
|
} else {
|
||||||
|
throw new Exception('File not found');
|
||||||
|
}
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
return array('jsonResponse' => array('result' => 'error', 'message' => $err->getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkhostVPSAG_ClientAreaCustomButtonArray() {
|
||||||
|
$_LANG = ArkhostVPSAG_Translation();
|
||||||
|
|
||||||
|
return array(
|
||||||
|
$_LANG['Start'] => 'Start',
|
||||||
|
$_LANG['Stop'] => 'Stop',
|
||||||
|
$_LANG['Restart'] => 'Reboot',
|
||||||
|
$_LANG['VNC'] => 'VNC',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_ClientAreaAllowedFunctions() {
|
||||||
|
return array('ClientAreaAPI', 'DeliverFile');
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_ClientArea(array $params) {
|
||||||
|
if ($params['moduletype'] !== 'ArkhostVPSAG') return;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Check if VPS ID is available
|
||||||
|
$vpsId = $params['model']->serviceProperties->get('vpsag');
|
||||||
|
if (empty($vpsId)) {
|
||||||
|
throw new Exception('Service not properly provisioned');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get clean VPS ID
|
||||||
|
$cleanVpsId = ArkhostVPSAG_GetVPSID($params);
|
||||||
|
if (empty($cleanVpsId)) {
|
||||||
|
throw new Exception('Invalid VPS ID format');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get server info and operating systems data
|
||||||
|
$params['action'] = 'Server Info';
|
||||||
|
$serverInfo = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
// Check if server info is valid
|
||||||
|
if (!is_array($serverInfo) || empty($serverInfo)) {
|
||||||
|
throw new Exception('Unable to retrieve server information from API');
|
||||||
|
}
|
||||||
|
|
||||||
|
$params['action'] = 'Operating Systems - Server';
|
||||||
|
$operatingSystemsTemp = ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
// Check if operating systems data is valid
|
||||||
|
if (!is_array($operatingSystemsTemp)) {
|
||||||
|
$operatingSystemsTemp = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$dirImages = __DIR__ . '/template/img/';
|
||||||
|
$availableImages = glob($dirImages . '*.png');
|
||||||
|
$images = array();
|
||||||
|
|
||||||
|
foreach ($availableImages as $key => $image) {
|
||||||
|
$images[explode('.png', explode($dirImages, $image)[1])[0]] = 'data:image/png;base64,' . base64_encode(file_get_contents($image));
|
||||||
|
}
|
||||||
|
|
||||||
|
$dirOS = __DIR__ . '/template/img/os/';
|
||||||
|
$availableOS = glob($dirOS . '*.png');
|
||||||
|
$operatingSystems = array();
|
||||||
|
|
||||||
|
foreach ($availableOS as $key => $os) {
|
||||||
|
$availableOS[$key] = explode('.png', explode($dirOS, $os)[1])[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only process operating systems if we have valid data
|
||||||
|
if (!empty($operatingSystemsTemp)) {
|
||||||
|
foreach ($operatingSystemsTemp as $key => $operatingSystem) {
|
||||||
|
// Create separate groups for different Linux distributions
|
||||||
|
$osName = strtolower($operatingSystem['name']);
|
||||||
|
|
||||||
|
// Determine the proper group based on OS name
|
||||||
|
if (strpos($osName, 'almalinux') !== false || strpos($osName, 'alma') !== false) {
|
||||||
|
$group = 'almalinux';
|
||||||
|
$groupName = 'AlmaLinux';
|
||||||
|
} elseif (strpos($osName, 'rocky') !== false || strpos($osName, 'rockylinux') !== false) {
|
||||||
|
$group = 'rocky';
|
||||||
|
$groupName = 'Rocky Linux';
|
||||||
|
} elseif (strpos($osName, 'centos') !== false) {
|
||||||
|
$group = 'centos';
|
||||||
|
$groupName = 'CentOS';
|
||||||
|
} elseif (strpos($osName, 'debian') !== false) {
|
||||||
|
$group = 'debian';
|
||||||
|
$groupName = 'Debian';
|
||||||
|
} elseif (strpos($osName, 'ubuntu') !== false) {
|
||||||
|
$group = 'ubuntu';
|
||||||
|
$groupName = 'Ubuntu';
|
||||||
|
} elseif (strpos($osName, 'windows') !== false) {
|
||||||
|
$group = 'windows';
|
||||||
|
$groupName = 'Windows';
|
||||||
|
} else {
|
||||||
|
// Fallback to original group
|
||||||
|
$group = $operatingSystem['group'];
|
||||||
|
$groupName = $operatingSystem['group_name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($operatingSystems[$group])) {
|
||||||
|
// Map group names to correct image filenames
|
||||||
|
$imageFile = $group;
|
||||||
|
if ($group === 'rocky') {
|
||||||
|
$imageFile = 'rockylinux';
|
||||||
|
}
|
||||||
|
|
||||||
|
$image = file_get_contents($dirOS . (in_array($imageFile, $availableOS) ? $imageFile : 'others') . '.png');
|
||||||
|
|
||||||
|
$operatingSystems[$group] = array(
|
||||||
|
'name' => $groupName,
|
||||||
|
'image' => 'data:image/png;base64,' . base64_encode($image),
|
||||||
|
'versions' => array(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$operatingSystems[$group]['versions'][] = $operatingSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process operating system info only if we have data
|
||||||
|
if (isset($serverInfo['os']) && !empty($operatingSystemsTemp)) {
|
||||||
|
$osId = $serverInfo['os'];
|
||||||
|
$osIndex = array_search($osId, array_column($operatingSystemsTemp, 'id'));
|
||||||
|
|
||||||
|
if ($osIndex !== false && isset($operatingSystemsTemp[$osIndex])) {
|
||||||
|
$currentOS = $operatingSystemsTemp[$osIndex];
|
||||||
|
$osName = strtolower($currentOS['name']);
|
||||||
|
|
||||||
|
// Determine the proper group based on current OS name
|
||||||
|
if (strpos($osName, 'almalinux') !== false || strpos($osName, 'alma') !== false) {
|
||||||
|
$group = 'almalinux';
|
||||||
|
} elseif (strpos($osName, 'rocky') !== false || strpos($osName, 'rockylinux') !== false) {
|
||||||
|
$group = 'rocky';
|
||||||
|
} elseif (strpos($osName, 'centos') !== false) {
|
||||||
|
$group = 'centos';
|
||||||
|
} elseif (strpos($osName, 'debian') !== false) {
|
||||||
|
$group = 'debian';
|
||||||
|
} elseif (strpos($osName, 'ubuntu') !== false) {
|
||||||
|
$group = 'ubuntu';
|
||||||
|
} elseif (strpos($osName, 'windows') !== false) {
|
||||||
|
$group = 'windows';
|
||||||
|
} else {
|
||||||
|
$group = $currentOS['group'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the specific OS information instead of the generic group
|
||||||
|
$serverInfo['operatingSystem'] = array(
|
||||||
|
'name' => $currentOS['name'],
|
||||||
|
'image' => isset($operatingSystems[$group]) ? $operatingSystems[$group]['image'] : 'data:image/png;base64,' . base64_encode(file_get_contents(__DIR__ . '/template/img/os/others.png'))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// Fallback if OS not found in list
|
||||||
|
$serverInfo['operatingSystem'] = array(
|
||||||
|
'name' => 'OS ID: ' . $osId,
|
||||||
|
'image' => 'data:image/png;base64,' . base64_encode(file_get_contents(__DIR__ . '/template/img/os/others.png'))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set default OS info if not available
|
||||||
|
if (!isset($serverInfo['operatingSystem']) || !is_array($serverInfo['operatingSystem'])) {
|
||||||
|
$serverInfo['operatingSystem'] = array(
|
||||||
|
'name' => 'Unknown OS',
|
||||||
|
'image' => 'data:image/png;base64,' . base64_encode(file_get_contents($dirOS . 'others.png'))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$serverInfo['status'] = isset($serverInfo['status']) ? ($serverInfo['status'] !== 'ok' ? $serverInfo['status'] : (isset($serverInfo['vm_status']) ? $serverInfo['vm_status'] : 'unknown')) : 'unknown';
|
||||||
|
$serverInfo['statusImage'] = isset($images[$serverInfo['status']]) ? $images[$serverInfo['status']] : (isset($images['unknown']) ? $images['unknown'] : '');
|
||||||
|
$serverInfo['statusDescription'] = ucfirst($serverInfo['status']);
|
||||||
|
|
||||||
|
// Set default values for missing data
|
||||||
|
$serverInfo['hostname'] = isset($serverInfo['hostname']) ? $serverInfo['hostname'] : 'N/A';
|
||||||
|
$serverInfo['ip'] = isset($serverInfo['ip']) ? $serverInfo['ip'] : 'N/A';
|
||||||
|
$serverInfo['uptime_text'] = isset($serverInfo['uptime_text']) ? $serverInfo['uptime_text'] : 'N/A';
|
||||||
|
$serverInfo['server_type'] = isset($serverInfo['category']) ? $serverInfo['category'] : 'Standard';
|
||||||
|
$serverInfo['cpu_usage'] = isset($serverInfo['cpu_usage']) ? $serverInfo['cpu_usage'] : 0;
|
||||||
|
$serverInfo['ram_usage'] = isset($serverInfo['ram_usage']) ? $serverInfo['ram_usage'] : 0;
|
||||||
|
$serverInfo['ram'] = isset($serverInfo['ram']) ? $serverInfo['ram'] : 1;
|
||||||
|
|
||||||
|
// Handle disk usage data (API may not always return this field)
|
||||||
|
|
||||||
|
$serverInfo['disk_used'] = isset($serverInfo['disk_usage']) ? $serverInfo['disk_usage'] :
|
||||||
|
(isset($serverInfo['disk_used']) ? $serverInfo['disk_used'] : 0);
|
||||||
|
$serverInfo['disk'] = isset($serverInfo['disk']) ? $serverInfo['disk'] : 1;
|
||||||
|
$serverInfo['bandwidth_used'] = isset($serverInfo['bandwidth_used']) ? $serverInfo['bandwidth_used'] : 0;
|
||||||
|
$serverInfo['bandwidth'] = isset($serverInfo['bandwidth']) ? $serverInfo['bandwidth'] : 1;
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'templatefile' => 'template/clientarea_direct',
|
||||||
|
'templateVariables' => array(
|
||||||
|
'images' => $images,
|
||||||
|
'serverInfo' => $serverInfo,
|
||||||
|
'operatingSystems' => $operatingSystems,
|
||||||
|
'token' => generate_token('plain'),
|
||||||
|
'_LANG' => ArkhostVPSAG_Translation(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} catch (Exception $err) {
|
||||||
|
ArkhostVPSAG_Error(__FUNCTION__, $params, $err);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'templatefile' => 'template/error',
|
||||||
|
'templateVariables' => array(
|
||||||
|
'error' => $err->getMessage(),
|
||||||
|
'image' => 'data:image/png;base64,' . base64_encode(file_get_contents(__DIR__ . '/template/img/notice.png'))
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkhostVPSAG_Translation() {
|
||||||
|
$lang = Setting::getValue('Language');
|
||||||
|
$language = Lang::getName();
|
||||||
|
$_ADDONLANG = [];
|
||||||
|
|
||||||
|
if ($language === '') {
|
||||||
|
$language = $lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($language) {
|
||||||
|
$addonLangFile = ROOTDIR . '/modules/servers/ArkhostVPSAG/lang/' . $language . '.php';
|
||||||
|
|
||||||
|
if (file_exists($addonLangFile)) {
|
||||||
|
swapLang($language);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
require $addonLangFile;
|
||||||
|
ob_end_clean();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($_ADDONLANG) === 0) {
|
||||||
|
$addonLangFile = ROOTDIR . '/modules/servers/ArkhostVPSAG/lang/' . $lang . '.php';
|
||||||
|
|
||||||
|
if (file_exists($addonLangFile)) {
|
||||||
|
swapLang($lang);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
require $addonLangFile;
|
||||||
|
ob_end_clean();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($_ADDONLANG) === 0) {
|
||||||
|
$addonLangFile = ROOTDIR . '/modules/servers/ArkhostVPSAG/lang/english.php';
|
||||||
|
|
||||||
|
if (file_exists($addonLangFile)) {
|
||||||
|
ob_start();
|
||||||
|
require $addonLangFile;
|
||||||
|
ob_end_clean();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $_ADDONLANG;
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* VPSAG WHMCS Server Provisioning version 1.4
|
||||||
|
*
|
||||||
|
* @package WHMCS
|
||||||
|
* @copyright ArkHost
|
||||||
|
* @link https://arkhost.com
|
||||||
|
* @author ArkHost <support@arkhost.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (empty($_POST)) {
|
||||||
|
http_response_code(400);
|
||||||
|
exit('Bad Request');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'init.php';
|
||||||
|
require_once ROOTDIR . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR . 'servers' . DIRECTORY_SEPARATOR . 'ArkhostVPSAG' . DIRECTORY_SEPARATOR . 'ArkhostVPSAG.php';
|
||||||
|
|
||||||
|
use WHMCS\Database\Capsule;
|
||||||
|
|
||||||
|
$_POST = array_map('html_entity_decode', $_POST);
|
||||||
|
|
||||||
|
// Look for the service by VPSAG ID in service properties
|
||||||
|
$serviceProperty = Capsule::table('tblservice_properties')
|
||||||
|
->where('property', 'vpsag|VPSAG ID')
|
||||||
|
->where('value', 'VPSAG-' . $_POST['server_id'])
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$serviceProperty) {
|
||||||
|
// Fallback: try to find in custom fields for backward compatibility
|
||||||
|
$customField = Capsule::table('tblcustomfieldsvalues')->where('value', 'VPSAG-' . $_POST['server_id'])->first();
|
||||||
|
if ($customField) {
|
||||||
|
$service = WHMCS\Service\Service::find($customField->relid);
|
||||||
|
} else {
|
||||||
|
http_response_code(404);
|
||||||
|
exit('Service not found');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$service = WHMCS\Service\Service::find($serviceProperty->service_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$service) {
|
||||||
|
http_response_code(404);
|
||||||
|
exit('Service not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
$server = Capsule::table('tblservers')->where('id', $service->server)->first();
|
||||||
|
|
||||||
|
$rawSig = '';
|
||||||
|
ksort($_POST, SORT_STRING);
|
||||||
|
|
||||||
|
foreach ($_POST as $key => $value) {
|
||||||
|
if ($key === 'sig') continue;
|
||||||
|
$rawSig .= $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$rawSig .= hash('sha512', decrypt($server->password));
|
||||||
|
$signature = hash('sha256', $rawSig);
|
||||||
|
|
||||||
|
if ($_POST['sig'] != $signature) {
|
||||||
|
http_response_code(403);
|
||||||
|
exit('Invalid signature');
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = array(
|
||||||
|
'serverusername' => $server->username,
|
||||||
|
'serverpassword' => decrypt($server->password),
|
||||||
|
'action' => 'Label',
|
||||||
|
'label' => 'WHMCS ' . $service->id,
|
||||||
|
'model' => $service
|
||||||
|
);
|
||||||
|
ArkhostVPSAG_API($params);
|
||||||
|
|
||||||
|
if (gettype($_POST['ips']) !== 'array') $_POST['ips'] = json_decode($_POST['ips'], true);
|
||||||
|
|
||||||
|
$_POST['ips'] = array_map(function ($ip) {
|
||||||
|
return $ip['ip'];
|
||||||
|
}, $_POST['ips']);
|
||||||
|
|
||||||
|
$mainIP = $_POST['mainip'];
|
||||||
|
|
||||||
|
$_POST['ips'] = array_filter($_POST['ips'], function ($ip) use ($mainIP) {
|
||||||
|
return $ip !== $mainIP;
|
||||||
|
});
|
||||||
|
|
||||||
|
Capsule::table('tblhosting')->where('id', $service->id)->update(array(
|
||||||
|
'username' => $_POST['username'],
|
||||||
|
'password' => encrypt($_POST['root']),
|
||||||
|
'dedicatedip' => $mainIP,
|
||||||
|
'assignedips' => (!array_shift($_POST['ips']) ? $_POST['ipv6'] : implode('\n', $_POST['ips']) . '\n' . $_POST['ipv6']),
|
||||||
|
));
|
||||||
|
|
||||||
|
echo '*ok*';
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Klantgedeelte
|
||||||
|
## Algemeen
|
||||||
|
$_ADDONLANG['Title'] = 'VPS Informatie';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Uptime';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Gebruikt';
|
||||||
|
$_ADDONLANG['Start'] = 'Start';
|
||||||
|
$_ADDONLANG['Stop'] = 'Stop';
|
||||||
|
$_ADDONLANG['Restart'] = 'Herstarten';
|
||||||
|
$_ADDONLANG['VNC'] = 'VNC-console';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Opmerking';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Firewall-regels laden...';
|
||||||
|
|
||||||
|
## Bevestigingen
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'VPS stoppen';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Weet u zeker dat u deze VPS wilt stoppen? Dit zal de server afsluiten.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'VPS herstarten';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Weet u zeker dat u deze VPS wilt herstarten? Dit zal de server opnieuw opstarten.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Annuleren';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Bevestigen';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Back-up maken';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Wilt u een back-up maken. Dit kan enkele minuten duren.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Back-up verwijderen';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Wilt u deze back-up verwijderen. Deze actie kan niet ongedaan worden gemaakt.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Back-up herstellen';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Wilt u deze back-up herstellen. Dit overschrijft alle huidige gegevens en kan niet ongedaan worden gemaakt.';
|
||||||
|
|
||||||
|
## Navigatiebalk
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Overzicht';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Grafieken';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Back-ups';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Instellingen';
|
||||||
|
|
||||||
|
## Overzicht
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Server Informatie';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Hostnaam';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Status';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Uptime';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Besturingssysteem';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Locatie';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Servertype';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Toegewezen Bronnen';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'CPU-kernen';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Geheugen';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Opslag';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Verkeer';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Snelle Acties';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Gebruik van Bronnen';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'CPU-gebruik';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Gebruik';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'RAM-gebruik';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Bandbreedtegebruik';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Schijfruimte';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Totale grootte';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'GB';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'TB';
|
||||||
|
|
||||||
|
## Grafieken
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'CPU-gebruik';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'RAM-gebruik';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Schijfgebruik';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Netwerkgebruik';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Uur';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Dag';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Week';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Maand';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Jaar';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Grafiek laden...';
|
||||||
|
|
||||||
|
## Back-ups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'De datums waarop back-ups van deze VPS beschikbaar zijn, staan hieronder vermeld. U kunt ze dienovereenkomstig herstellen of verwijderen.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Houd er rekening mee dat nieuwe back-ups de oudere zullen vervangen.<br/>** De geautomatiseerde back-ups zullen ook uw handmatige back-ups vervangen, tenzij de geautomatiseerde back-ups zijn uitgeschakeld.<br/>*** De geautomatiseerde back-ups worden 2 keer per week gemaakt en maken deel uit van ons noodherstelplan. Als u de geautomatiseerde back-ups uitschakelt, schakelt u ook elke kans op herstel in geval van een ramp uit.<br/>**** Het bestandssysteem van de back-up is mogelijk niet volledig consistent als de VPS op het moment van de back-up naar het bestandssysteem schreef. Voor volledig consistente back-ups moet de server worden gestopt terwijl de back-up wordt gemaakt.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Datum';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Grootte';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Type';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Status';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Acties';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Nu Back-up Maken';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Beschikbaar';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Bezig met maken...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Fout';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automatisch';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Handmatig';
|
||||||
|
|
||||||
|
## Instellingen
|
||||||
|
### Hostnaam
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Hostnaam';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Stelt de hostnaam en de rDNS in. Maak eerst het A-record aan.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Verzenden';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Als u het besturingssysteem via het ISO-image installeert, moet u ook de netwerkinterface statisch configureren. Er draait geen DHCP-server.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'ISO-image';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'ISO Laden';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'ISO Uitwerpen';
|
||||||
|
|
||||||
|
### Wachtwoord
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Wachtwoord';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'Het installatiewachtwoord wordt na 72 uur uit onze systemen verwijderd. Het is verplicht om het wachtwoord bij uw eerste aanmelding te wijzigen!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Wachtwoord Resetten';
|
||||||
|
|
||||||
|
### Herinstalleren
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Herinstalleren';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Begrijp alstublieft dat bij het herinstalleren alle gegevens van de server worden gewist. Deze actie is onomkeerbaar!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Besturingssysteem';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'KIES VERSIE';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Herinstalleren';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'SSH Publieke Sleutel (optioneel)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Plak hier uw openbare SSH-sleutel (begint met ssh-rsa, ssh-ed25519, etc.). Deze wordt automatisch toegevoegd aan ~/.ssh/authorized_keys voor wachtwoordloos inloggen.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Post-installatiescript (optioneel)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Voer een bash-script in dat automatisch wordt uitgevoerd nadat de OS-installatie is voltooid. Handig voor het installeren van pakketten, het configureren van services of het instellen van uw omgeving.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'SSH-wachtwoordauthenticatie uitschakelen';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Indien ingeschakeld, is alleen SSH-sleutelauthenticatie toegestaan. Inloggen met wachtwoord via SSH wordt uitgeschakeld voor verbeterde beveiliging.';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'De regels worden van boven naar beneden geëvalueerd. Standaard is alles toegestaan. De firewall is alleen beschikbaar op de openbare interface. Alleen het inkomende verkeer wordt door de firewall gefilterd.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Nieuwe Firewallregel Toevoegen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Huidige Firewallregels';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Regel Toevoegen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Actie';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Poort';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protocol';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Bron';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Notitie';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Acties';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Accepteren';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Weigeren';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Poortnummer';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Bijv: x.x.x.x/xx (optioneel)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Notities (optioneel)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'De regels moeten worden toegepast om van kracht te worden.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Firewall Toepassen';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/english.php')) include_once(__DIR__ . '/overrides/english.php');
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Client Area
|
||||||
|
## General
|
||||||
|
$_ADDONLANG['Title'] = 'VPS Information';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Uptime';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Used';
|
||||||
|
$_ADDONLANG['Start'] = 'Start';
|
||||||
|
$_ADDONLANG['Stop'] = 'Stop';
|
||||||
|
$_ADDONLANG['Restart'] = 'Restart';
|
||||||
|
$_ADDONLANG['VNC'] = 'VNC Console';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Note';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Loading firewall rules...';
|
||||||
|
|
||||||
|
## Confirmations
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'Stop VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Do you want to stop this VPS? This will shutdown the server.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'Restart VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Do you want to restart this VPS? This will reboot the server.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Cancel';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Confirm';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Create Backup';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Do you want to create a backup. This may take several minutes.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Delete Backup';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Do you want to delete this backup. This action cannot be undone.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Restore Backup';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Do you want to restore this backup. This will overwrite all current data and cannot be undone.';
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Overview';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Graphs';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Backups';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Settings';
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Server Information';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Hostname';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Status';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Uptime';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Operating System';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Location';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Server Type';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Resource Allocation';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'CPU Cores';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Memory';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Storage';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Traffic';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Quick Actions';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Resource Usage';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'CPU Usage';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Usage';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'RAM Usage';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Bandwidth Usage';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Disk Space';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Total Size';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'GB';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'TB';
|
||||||
|
|
||||||
|
## Graphs
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'CPU Usage';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'RAM Usage';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Disk Usage';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Network Usage';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Hour';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Day';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Week';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Month';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Year';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Loading graph...';
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'The dates for which backups of this VPS are available are listed below. You can restore or delete them accordingly.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Please keep in mind that the new backups will replace the older ones.<br/>** The automated backups will also replace your manual backups unless the automated backups are disabled.<br/>*** The automated backups are made 2 times a week and are part of our disaster recovery plan. If you disable the automated backups, you also disable any chance of recovery in case of a disaster.<br/>**** The backup\'s file system might not be fully consistent if the VPS was writing to the filesystem at the moment of the backup. For fully consistent backups, the server must be stopped while the backup is being created.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Date';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Size';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Type';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Status';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Actions';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Backup Now';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Available';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Creating...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Error';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automatic';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Manual';
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
### Hostname
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Hostname';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Sets the hostname and the rDNS. Please create the A record first.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Submit';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'If you install the operating system via the ISO image, you must also configure the network interface statically. There is no DHCP server running.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'ISO Image';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'Load ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'Eject ISO';
|
||||||
|
|
||||||
|
### Password
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Password';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'The installation password is removed from our systems after 72 hours. It is mandatory for you to change the password on your first login!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Reset Password';
|
||||||
|
|
||||||
|
### Reinstall
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Reinstall';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Please understand that by reinstalling, all the data will be wiped from the server. This action is irreversible!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Operating System';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'CHOOSE VERSION';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Reinstall';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'SSH Public Key (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Paste your SSH public key here (starts with ssh-rsa, ssh-ed25519, etc.). This will be automatically added to ~/.ssh/authorized_keys for passwordless login.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Post-Installation Script (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Enter a bash script to automatically run after the OS installation completes. Useful for installing packages, configuring services, or setting up your environment.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'Disable SSH password authentication';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'When enabled, only SSH key authentication will be allowed. Password login via SSH will be disabled for enhanced security.';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'The rules are evaluated from the top to the bottom. By default, everything is allowed. The firewall is only available on the public interface. Only the inbound traffic will be filtered by the firewall.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Add New Firewall Rule';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Current Firewall Rules';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Add Rule';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Action';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Port';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protocol';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Source';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Note';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Actions';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Accept';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Drop';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Port Number';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Ex: x.x.x.x/xx (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Notes (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'The rules must be committed in order to take effect.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Commit Firewall';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/english.php')) include_once(__DIR__ . '/overrides/english.php');
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Client Area
|
||||||
|
## General
|
||||||
|
$_ADDONLANG['Title'] = 'Informations VPS';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Temps de fonctionnement';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Utilisé';
|
||||||
|
$_ADDONLANG['Start'] = 'Démarrer';
|
||||||
|
$_ADDONLANG['Stop'] = 'Arrêter';
|
||||||
|
$_ADDONLANG['Restart'] = 'Redémarrer';
|
||||||
|
$_ADDONLANG['VNC'] = 'Console VNC';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Note';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Chargement des règles de pare-feu...';
|
||||||
|
|
||||||
|
## Confirmations
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'Arreter le VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Voulez-vous arreter ce VPS. Cela va eteindre le serveur.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'Redemarrer le VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Voulez-vous redemarrer ce VPS. Cela va redemarrer le serveur.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Annuler';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Confirmer';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Creer une sauvegarde';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Voulez-vous creer une sauvegarde. Cela peut prendre plusieurs minutes.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Supprimer la sauvegarde';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Voulez-vous supprimer cette sauvegarde. Cette action ne peut pas etre annulee.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Restaurer la sauvegarde';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Voulez-vous restaurer cette sauvegarde. Cela ecrasera toutes les donnees actuelles et ne peut pas etre annule.';
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Aperçu';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Graphiques';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Sauvegardes';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Paramètres';
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Informations du serveur';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Nom d\'hôte';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Statut';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Temps de fonctionnement';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Système d\'exploitation';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Emplacement';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Type de serveur';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Allocation des ressources';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'Cœurs CPU';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Mémoire';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Stockage';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Trafic';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Actions rapides';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Utilisation des ressources';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'Utilisation CPU';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Utilisation';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'Utilisation RAM';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Utilisation de la bande passante';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Espace disque';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Taille totale';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'Go';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'To';
|
||||||
|
|
||||||
|
## Graphs
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'Utilisation CPU';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'Utilisation RAM';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Utilisation disque';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Utilisation réseau';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Heure';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Jour';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Semaine';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Mois';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Année';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Chargement du graphique...';
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'Les dates pour lesquelles des sauvegardes de ce VPS sont disponibles sont listées ci-dessous. Vous pouvez les restaurer ou les supprimer en conséquence.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Veuillez garder à l\'esprit que les nouvelles sauvegardes remplaceront les plus anciennes.<br/>** Les sauvegardes automatiques remplaceront également vos sauvegardes manuelles à moins que les sauvegardes automatiques ne soient désactivées.<br/>*** Les sauvegardes automatiques sont effectuées 2 fois par semaine et font partie de notre plan de récupération après sinistre. Si vous désactivez les sauvegardes automatiques, vous désactivez également toute chance de récupération en cas de sinistre.<br/>**** Le système de fichiers de la sauvegarde pourrait ne pas être entièrement cohérent si le VPS écrivait sur le système de fichiers au moment de la sauvegarde. Pour des sauvegardes entièrement cohérentes, le serveur doit être arrêté pendant que la sauvegarde est créée.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Date';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Taille';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Type';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'État';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Actions';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Sauvegarder maintenant';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Disponible';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Création...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Erreur';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automatique';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Manuel';
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
### Hostname
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Nom d\'hôte';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Définit le nom d\'hôte et le rDNS. Veuillez d\'abord créer l\'enregistrement A.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Soumettre';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Si vous installez le système d\'exploitation via l\'image ISO, vous devez également configurer l\'interface réseau de manière statique. Il n\'y a pas de serveur DHCP en cours d\'exécution.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'Image ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'Charger ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'Éjecter ISO';
|
||||||
|
|
||||||
|
### Password
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Mot de passe';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'Le mot de passe d\'installation est supprimé de nos systèmes après 72 heures. Il est obligatoire de changer le mot de passe lors de votre première connexion !';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Réinitialiser le mot de passe';
|
||||||
|
|
||||||
|
### Reinstall
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Réinstaller';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Veuillez comprendre qu\'en réinstallant, toutes les données seront effacées du serveur. Cette action est irréversible !';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Système d\'exploitation';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'CHOISIR LA VERSION';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Réinstaller';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'Clé publique SSH (optionnel)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Ajouter votre clé SSH pour connexion sans mot de passe';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Script post-installation (optionnel)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Script bash à exécuter après l\'installation du SE';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'Désactiver connexion SSH par mot de passe';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Autoriser uniquement l\'authentification par clé SSH';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Pare-feu';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'Les règles sont évaluées de haut en bas. Par défaut, tout est autorisé. Le pare-feu n\'est disponible que sur l\'interface publique. Seul le trafic entrant sera filtré par le pare-feu.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Ajouter une nouvelle règle de pare-feu';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Règles de pare-feu actuelles';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Ajouter une règle';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Action';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Port';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protocole';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Source';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Note';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Actions';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Accepter';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Rejeter';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Numéro de port';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Ex : x.x.x.x/xx (optionnel)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Notes (optionnel)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'Les règles doivent être validées pour prendre effet.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Valider le pare-feu';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/french.php')) include_once(__DIR__ . '/overrides/french.php');
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Client Area
|
||||||
|
## General
|
||||||
|
$_ADDONLANG['Title'] = 'VPS-Informationen';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Betriebszeit';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Verwendet';
|
||||||
|
$_ADDONLANG['Start'] = 'Starten';
|
||||||
|
$_ADDONLANG['Stop'] = 'Stoppen';
|
||||||
|
$_ADDONLANG['Restart'] = 'Neustart';
|
||||||
|
$_ADDONLANG['VNC'] = 'VNC-Konsole';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Notiz';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Firewall-Regeln werden geladen...';
|
||||||
|
|
||||||
|
## Bestätigungen
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'VPS stoppen';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Sind Sie sicher, dass Sie diesen VPS stoppen möchten? Dies wird den Server herunterfahren.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'VPS neustarten';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Sind Sie sicher, dass Sie diesen VPS neustarten möchten? Dies wird den Server neu starten.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Abbrechen';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Bestätigen';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Backup erstellen';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Möchten Sie ein Backup erstellen. Dies kann mehrere Minuten dauern.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Backup löschen';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Möchten Sie dieses Backup löschen. Diese Aktion kann nicht rückgängig gemacht werden.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Backup wiederherstellen';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Möchten Sie dieses Backup wiederherstellen. Dies überschreibt alle aktuellen Daten und kann nicht rückgängig gemacht werden.';
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Übersicht';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Diagramme';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Sicherungen';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Einstellungen';
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Server-Informationen';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Hostname';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Status';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Betriebszeit';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Betriebssystem';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Standort';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Servertyp';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Ressourcenzuweisung';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'CPU-Kerne';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Arbeitsspeicher';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Speicher';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Traffic';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Schnellaktionen';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Ressourcennutzung';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'CPU-Auslastung';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Nutzung';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'RAM-Auslastung';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Bandbreite';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Festplattenspeicher';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Gesamtgröße';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'GB';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'TB';
|
||||||
|
|
||||||
|
## Graphs
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'CPU-Auslastung';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'RAM-Auslastung';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Festplatten-Nutzung';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Netzwerk-Nutzung';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Stunde';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Tag';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Woche';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Monat';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Jahr';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Diagramm wird geladen...';
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'Die Daten, für die Sicherungen dieses VPS verfügbar sind, sind unten aufgelistet. Sie können diese entsprechend wiederherstellen oder löschen.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Bitte beachten Sie, dass neue Sicherungen die älteren ersetzen.<br/>** Die automatischen Sicherungen ersetzen auch Ihre manuellen Sicherungen, es sei denn, die automatischen Sicherungen sind deaktiviert.<br/>*** Die automatischen Sicherungen werden 2-mal pro Woche erstellt und sind Teil unseres Disaster-Recovery-Plans. Wenn Sie die automatischen Sicherungen deaktivieren, deaktivieren Sie auch jede Chance auf Wiederherstellung im Falle einer Katastrophe.<br/>**** Das Dateisystem der Sicherung ist möglicherweise nicht vollständig konsistent, wenn der VPS zum Zeitpunkt der Sicherung in das Dateisystem schrieb. Für vollständig konsistente Sicherungen muss der Server gestoppt werden, während die Sicherung erstellt wird.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Datum';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Größe';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Typ';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Status';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Aktionen';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Jetzt sichern';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Verfügbar';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Erstellen...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Fehler';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automatisch';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Manuell';
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
### Hostname
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Hostname';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Setzt den Hostnamen und das rDNS. Bitte erstellen Sie zuerst den A-Record.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Absenden';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Wenn Sie das Betriebssystem über das ISO-Image installieren, müssen Sie auch die Netzwerkschnittstelle statisch konfigurieren. Es läuft kein DHCP-Server.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'ISO-Image';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'ISO laden';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'ISO auswerfen';
|
||||||
|
|
||||||
|
### Password
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Passwort';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'Das Installationspasswort wird nach 72 Stunden aus unseren Systemen entfernt. Sie müssen das Passwort bei Ihrer ersten Anmeldung ändern!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Passwort zurücksetzen';
|
||||||
|
|
||||||
|
### Reinstall
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Neuinstallation';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Bitte verstehen Sie, dass durch die Neuinstallation alle Daten vom Server gelöscht werden. Diese Aktion ist unumkehrbar!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Betriebssystem';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'VERSION WÄHLEN';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Neuinstallieren';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'SSH öffentlicher Schlüssel (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Fügen Sie hier Ihren SSH-öffentlichen Schlüssel ein (beginnt mit ssh-rsa, ssh-ed25519, etc.). Dieser wird automatisch zu ~/.ssh/authorized_keys für passwortlose Anmeldung hinzugefügt.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Post-Installations-Skript (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Geben Sie ein Bash-Skript ein, das automatisch nach Abschluss der OS-Installation ausgeführt wird. Nützlich für die Installation von Paketen, Konfiguration von Diensten oder Einrichtung Ihrer Umgebung.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'SSH-Passwort-Authentifizierung deaktivieren';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Wenn aktiviert, ist nur SSH-Schlüssel-Authentifizierung erlaubt. Passwort-Login über SSH wird für erhöhte Sicherheit deaktiviert.';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'Die Regeln werden von oben nach unten ausgewertet. Standardmäßig ist alles erlaubt. Die Firewall ist nur auf der öffentlichen Schnittstelle verfügbar. Nur der eingehende Verkehr wird von der Firewall gefiltert.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Neue Firewall-Regel hinzufügen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Aktuelle Firewall-Regeln';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Regel hinzufügen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Aktion';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Port';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protokoll';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Quelle';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Notiz';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Aktionen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Akzeptieren';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Verwerfen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Port-Nummer';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Bsp: x.x.x.x/xx (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Notizen (optional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'Die Regeln müssen übernommen werden, um wirksam zu werden.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Firewall übernehmen';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/german.php')) include_once(__DIR__ . '/overrides/german.php');
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Client Area
|
||||||
|
## General
|
||||||
|
$_ADDONLANG['Title'] = 'Informazioni VPS';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Tempo di attività ';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Utilizzato';
|
||||||
|
$_ADDONLANG['Start'] = 'Avvia';
|
||||||
|
$_ADDONLANG['Stop'] = 'Ferma';
|
||||||
|
$_ADDONLANG['Restart'] = 'Riavvia';
|
||||||
|
$_ADDONLANG['VNC'] = 'Console VNC';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Nota';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Caricamento regole firewall...';
|
||||||
|
|
||||||
|
## Conferme
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'Ferma VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Sei sicuro di voler fermare questo VPS? Questo spegnerà il server.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'Riavvia VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Sei sicuro di voler riavviare questo VPS? Questo riavvierà il server.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Annulla';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Conferma';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Crea backup';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Vuoi creare un backup. Questo potrebbe richiedere diversi minuti.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Elimina backup';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Vuoi eliminare questo backup. Questa azione non può essere annullata.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Ripristina backup';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Vuoi ripristinare questo backup. Questo sovrascriverà tutti i dati attuali e non può essere annullato.';
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Panoramica';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Grafici';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Backup';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Impostazioni';
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Informazioni Server';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Hostname';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Stato';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Tempo di attività';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Sistema Operativo';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Posizione';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Tipo di Server';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Allocazione Risorse';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'Core CPU';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Memoria';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Archiviazione';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Traffico';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Azioni Rapide';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Utilizzo Risorse';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'Utilizzo CPU';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Utilizzo';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'Utilizzo RAM';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Banda';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Spazio Disco';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Dimensione Totale';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'GB';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'TB';
|
||||||
|
|
||||||
|
## Graphs
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'Utilizzo CPU';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'Utilizzo RAM';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Utilizzo Disco';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Utilizzo Rete';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Ora';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Giorno';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Settimana';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Mese';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Anno';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Caricamento grafico...';
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'Le date per le quali sono disponibili i backup di questo VPS sono elencate di seguito. Puoi ripristinarli o eliminarli di conseguenza.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Tieni presente che i nuovi backup sostituiranno quelli più vecchi.<br/>** I backup automatici sostituiranno anche i tuoi backup manuali a meno che i backup automatici non siano disabilitati.<br/>*** I backup automatici vengono eseguiti 2 volte a settimana e fanno parte del nostro piano di disaster recovery. Se disabiliti i backup automatici, disabiliti anche qualsiasi possibilità di recupero in caso di disastro.<br/>**** Il file system del backup potrebbe non essere completamente coerente se il VPS stava scrivendo sul filesystem al momento del backup. Per backup completamente coerenti, il server deve essere fermato durante la creazione del backup.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Data';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Dimensione';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Tipo';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Stato';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Azioni';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Backup Ora';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Disponibile';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Creazione...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Errore';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automatico';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Manuale';
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
### Hostname
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Hostname';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Imposta l\'hostname e l\'rDNS. Crea prima il record A.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Invia';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Se installi il sistema operativo tramite l\'immagine ISO, devi anche configurare staticamente l\'interfaccia di rete. Non c\'è un server DHCP in esecuzione.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'Immagine ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'Carica ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'Espelli ISO';
|
||||||
|
|
||||||
|
### Password
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Password';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'La password di installazione viene rimossa dai nostri sistemi dopo 72 ore. È obbligatorio cambiare la password al primo accesso!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Reimposta Password';
|
||||||
|
|
||||||
|
### Reinstall
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Reinstalla';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Ti preghiamo di comprendere che reinstallando, tutti i dati saranno cancellati dal server. Questa azione è irreversibile!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Sistema Operativo';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'SCEGLI VERSIONE';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Reinstalla';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'Chiave pubblica SSH (opzionale)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Aggiungi la tua chiave SSH per accesso senza password';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Script post-installazione (opzionale)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Script bash da eseguire dopo l\'installazione del SO';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'Disabilita login SSH con password';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Consenti solo autenticazione con chiave SSH';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'Le regole vengono valutate dall\'alto verso il basso. Per impostazione predefinita, tutto è consentito. Il firewall è disponibile solo sull\'interfaccia pubblica. Solo il traffico in entrata sarà filtrato dal firewall.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Aggiungi Nuova Regola Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Regole Firewall Attuali';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Aggiungi Regola';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Azione';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Porta';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protocollo';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Origine';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Nota';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Azioni';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Accetta';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Scarta';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Numero Porta';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Es: x.x.x.x/xx (opzionale)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Note (opzionale)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'Le regole devono essere confermate per entrare in vigore.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Conferma Firewall';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/italian.php')) include_once(__DIR__ . '/overrides/italian.php');
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* WHMCS Server Module - VPSAG
|
||||||
|
*
|
||||||
|
* @package WHMCS
|
||||||
|
* @copyright Copyright (c) ArkHost 2025
|
||||||
|
* @author ArkHost <support@arkhost.com>
|
||||||
|
* @link https://arkhost.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
http_response_code(403);
|
||||||
|
exit('Access denied');
|
||||||
|
?>
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Client Area
|
||||||
|
## General
|
||||||
|
$_ADDONLANG['Title'] = 'Informações VPS';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Tempo de atividade';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Utilizado';
|
||||||
|
$_ADDONLANG['Start'] = 'Iniciar';
|
||||||
|
$_ADDONLANG['Stop'] = 'Parar';
|
||||||
|
$_ADDONLANG['Restart'] = 'Reiniciar';
|
||||||
|
$_ADDONLANG['VNC'] = 'Consola VNC';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Nota';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Carregando regras de firewall...';
|
||||||
|
|
||||||
|
## Confirmações
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'Parar VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Tem certeza de que deseja parar este VPS? Isso desligará o servidor.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'Reiniciar VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Tem certeza de que deseja reiniciar este VPS? Isso reiniciará o servidor.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Cancelar';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Confirmar';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Criar cópia de segurança';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Deseja criar uma cópia de segurança. Isto pode demorar vários minutos.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Eliminar cópia de segurança';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Deseja eliminar esta cópia de segurança. Esta ação não pode ser desfeita.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Restaurar cópia de segurança';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Deseja restaurar esta cópia de segurança. Isto substituirá todos os dados atuais e não pode ser desfeito.';
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Visão geral';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Gráficos';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Cópias de segurança';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Definições';
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Informações do Servidor';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Nome do anfitrião';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Estado';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Tempo de atividade';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Sistema Operativo';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Localização';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Tipo de Servidor';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Alocação de Recursos';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'Núcleos CPU';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Memória';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Armazenamento';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Tráfego';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Ações Rápidas';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Utilização de Recursos';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'Utilização CPU';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Utilização';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'Utilização RAM';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Largura de banda';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Espaço em disco';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Tamanho total';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'GB';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'TB';
|
||||||
|
|
||||||
|
## Graphs
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'Utilização CPU';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'Utilização RAM';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Utilização de disco';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Utilização de rede';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Hora';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Dia';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Semana';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Mês';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Ano';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Carregando gráfico...';
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'As datas para as quais existem cópias de segurança disponíveis deste VPS estão listadas abaixo. Pode restaurá-las ou eliminá-las conforme necessário.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Tenha em conta que as novas cópias de segurança irão substituir as mais antigas.<br/>** As cópias de segurança automáticas também irão substituir as suas cópias de segurança manuais, a menos que as cópias de segurança automáticas estejam desativadas.<br/>*** As cópias de segurança automáticas são feitas 2 vezes por semana e fazem parte do nosso plano de recuperação de desastres. Se desativar as cópias de segurança automáticas, também desativa qualquer hipótese de recuperação em caso de desastre.<br/>**** O sistema de ficheiros da cópia de segurança pode não estar totalmente consistente se o VPS estivesse a escrever no sistema de ficheiros no momento da cópia de segurança. Para cópias de segurança totalmente consistentes, o servidor deve ser parado enquanto a cópia de segurança está a ser criada.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Data';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Tamanho';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Tipo';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Estado';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Ações';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Criar cópia agora';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Disponível';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Criando...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Erro';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automático';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Manual';
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
### Hostname
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Nome do anfitrião';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Define o nome do anfitrião e o rDNS. Por favor, crie primeiro o registo A.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Submeter';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Se instalar o sistema operativo através da imagem ISO, também deve configurar a interface de rede estaticamente. Não há servidor DHCP em execução.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'Imagem ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'Carregar ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'Ejetar ISO';
|
||||||
|
|
||||||
|
### Password
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Palavra-passe';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'A palavra-passe de instalação é removida dos nossos sistemas após 72 horas. É obrigatório alterar a palavra-passe no primeiro início de sessão!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Redefinir palavra-passe';
|
||||||
|
|
||||||
|
### Reinstall
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Reinstalar';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Por favor, compreenda que ao reinstalar, todos os dados serão apagados do servidor. Esta ação é irreversível!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Sistema operativo';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'ESCOLHER VERSÃO';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Reinstalar';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'Chave pública SSH (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Adicionar chave SSH para acesso sem palavra-passe';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Script pós-instalação (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Script bash para executar após instalação do SO';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'Desabilitar login SSH com palavra-passe';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Permitir apenas autenticação com chave SSH';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'As regras são avaliadas de cima para baixo. Por defeito, tudo é permitido. A firewall está apenas disponível na interface pública. Apenas o tráfego de entrada será filtrado pela firewall.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Adicionar Nova Regra de Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Regras de Firewall Atuais';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Adicionar Regra';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Ação';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Porta';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protocolo';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Origem';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Nota';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Ações';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Aceitar';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Descartar';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Número da porta';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Ex: x.x.x.x/xx (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Notas (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'As regras devem ser confirmadas para entrarem em vigor.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Confirmar firewall';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/portuguese-pt.php')) include_once(__DIR__ . '/overrides/portuguese-pt.php');
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Область клиента
|
||||||
|
## Общее
|
||||||
|
$_ADDONLANG['Title'] = 'Информация о VPS';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Время работы';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Использовано';
|
||||||
|
$_ADDONLANG['Start'] = 'Запуск';
|
||||||
|
$_ADDONLANG['Stop'] = 'Остановка';
|
||||||
|
$_ADDONLANG['Restart'] = 'Перезапуск';
|
||||||
|
$_ADDONLANG['VNC'] = 'Консоль VNC';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Примечание';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Загрузка правил файрвола...';
|
||||||
|
|
||||||
|
## Подтверждения
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'Остановить VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = 'Вы уверены, что хотите остановить этот VPS? Это выключит сервер.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'Перезапустить VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = 'Вы уверены, что хотите перезапустить этот VPS? Это перезагрузит сервер.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Отмена';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Подтвердить';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Создать резервную копию';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Хотите создать резервную копию. Это может занять несколько минут.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Удалить резервную копию';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Хотите удалить эту резервную копию. Это действие нельзя отменить.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Восстановить резервную копию';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Хотите восстановить эту резервную копию. Это перезапишет все текущие данные и не может быть отменено.';
|
||||||
|
|
||||||
|
## Навигационная панель
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Обзор';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Графики';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Резервные копии';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Настройки';
|
||||||
|
|
||||||
|
## Обзор
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Информация о сервере';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Имя хоста';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Статус';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Время работы';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Операционная система';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Местоположение';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Тип сервера';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Распределение ресурсов';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'Ядра ЦП';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Память';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Хранилище';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Трафик';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Быстрые действия';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Использование ресурсов';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'Использование ЦП';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Использование';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'Использование ОЗУ';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Пропускная способность';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Дисковое пространство';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Общий размер';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'ГБ';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'ТБ';
|
||||||
|
|
||||||
|
## Графики
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'Использование ЦП';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'Использование ОЗУ';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Использование диска';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Использование сети';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Час';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'День';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Неделя';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Месяц';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Год';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Загрузка графика...';
|
||||||
|
|
||||||
|
## Резервные копии
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'Ниже перечислены даты, на которые доступны резервные копии этого VPS. Вы можете восстановить или удалить их соответственно.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Пожалуйста, имейте в виду, что новые резервные копии заменят старые.<br/>** Автоматические резервные копии также заменят ваши ручные резервные копии, если автоматическое резервное копирование не отключено.<br/>*** Автоматические резервные копии создаются 2 раза в неделю и являются частью нашего плана аварийного восстановления. Если вы отключите автоматическое резервное копирование, вы также отключите любую возможность восстановления в случае катастрофы.<br/>**** Файловая система резервной копии может быть не полностью согласованной, если VPS записывал в файловую систему в момент создания резервной копии. Для полностью согласованных резервных копий сервер должен быть остановлен во время создания резервной копии.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Дата';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Размер';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Тип';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Статус';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Действия';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Создать резервную копию сейчас';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Доступна';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Создание...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Ошибка';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Автоматическая';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Ручная';
|
||||||
|
|
||||||
|
## Настройки
|
||||||
|
### Имя хоста
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Имя хоста';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Устанавливает имя хоста и обратную DNS-запись. Пожалуйста, сначала создайте запись A.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Отправить';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Если вы устанавливаете операционную систему через ISO-образ, вы также должны настроить сетевой интерфейс статически. DHCP-сервер не работает.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'ISO-образ';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'Загрузить ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'Извлечь ISO';
|
||||||
|
|
||||||
|
### Пароль
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Пароль';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'Пароль установки удаляется из наших систем через 72 часа. Обязательно смените пароль при первом входе в систему!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Сбросить пароль';
|
||||||
|
|
||||||
|
### Переустановка
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Переустановка';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Пожалуйста, учтите, что при переустановке все данные будут удалены с сервера. Это действие необратимо!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Операционная система';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'ВЫБЕРИТЕ ВЕРСИЮ';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Переустановить';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'Публичный SSH-ключ (необязательно)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Вставьте сюда свой публичный SSH-ключ (начинается с ssh-rsa, ssh-ed25519 и т.д.). Он будет автоматически добавлен в ~/.ssh/authorized_keys для входа без пароля.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Скрипт после установки (необязательно)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Введите bash-скрипт, который будет автоматически выполнен после завершения установки ОС. Полезно для установки пакетов, настройки служб или настройки вашей среды.';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'Отключить аутентификацию по паролю SSH';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Если включено, разрешена только аутентификация по SSH-ключу. Вход по паролю через SSH будет отключен для повышенной безопасности.';
|
||||||
|
|
||||||
|
### Файрвол
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Файрвол';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'Правила оцениваются сверху вниз. По умолчанию разрешено все. Файрвол доступен только на публичном интерфейсе. Файрвол будет фильтровать только входящий трафик.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Добавить новое правило файрвола';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Текущие правила файрвола';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Добавить правило';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Действие';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Порт';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Протокол';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Источник';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Примечание';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Действия';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Принять';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Отклонить';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Номер порта';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Пример: x.x.x.x/xx (необязательно)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Примечания (необязательно)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'Правила должны быть применены, чтобы вступить в силу.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Применить файрвол';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/english.php')) include_once(__DIR__ . '/overrides/english.php');
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
# Client Area
|
||||||
|
## General
|
||||||
|
$_ADDONLANG['Title'] = 'Información VPS';
|
||||||
|
$_ADDONLANG['Uptime'] = 'Tiempo de actividad';
|
||||||
|
$_ADDONLANG['IPv4'] = 'IPv4';
|
||||||
|
$_ADDONLANG['IPv6'] = 'IPv6';
|
||||||
|
$_ADDONLANG['Used'] = 'Usado';
|
||||||
|
$_ADDONLANG['Start'] = 'Iniciar';
|
||||||
|
$_ADDONLANG['Stop'] = 'Detener';
|
||||||
|
$_ADDONLANG['Restart'] = 'Reiniciar';
|
||||||
|
$_ADDONLANG['VNC'] = 'Consola VNC';
|
||||||
|
$_ADDONLANG['General']['Note'] = 'Nota';
|
||||||
|
$_ADDONLANG['LoadingFirewallRules'] = 'Cargando reglas de firewall...';
|
||||||
|
|
||||||
|
## Confirmaciones
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Title'] = 'Detener VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Stop']['Message'] = '¿Está seguro de que desea detener este VPS? Esto apagará el servidor.';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Title'] = 'Reiniciar VPS';
|
||||||
|
$_ADDONLANG['Confirm']['Restart']['Message'] = '¿Está seguro de que desea reiniciar este VPS? Esto reiniciará el servidor.';
|
||||||
|
$_ADDONLANG['Confirm']['Cancel'] = 'Cancelar';
|
||||||
|
$_ADDONLANG['Confirm']['Confirm'] = 'Confirmar';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Title'] = 'Crear copia de seguridad';
|
||||||
|
$_ADDONLANG['Confirm']['CreateBackup']['Message'] = 'Desea crear una copia de seguridad. Esto puede tomar varios minutos.';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Title'] = 'Eliminar copia de seguridad';
|
||||||
|
$_ADDONLANG['Confirm']['DeleteBackup']['Message'] = 'Desea eliminar esta copia de seguridad. Esta acción no se puede deshacer.';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Title'] = 'Restaurar copia de seguridad';
|
||||||
|
$_ADDONLANG['Confirm']['RestoreBackup']['Message'] = 'Desea restaurar esta copia de seguridad. Esto sobrescribirá todos los datos actuales y no se puede deshacer.';
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
$_ADDONLANG['Navbar']['Overview'] = 'Resumen';
|
||||||
|
$_ADDONLANG['Navbar']['Graphs'] = 'Gráficos';
|
||||||
|
$_ADDONLANG['Navbar']['Backups'] = 'Copias de seguridad';
|
||||||
|
$_ADDONLANG['Navbar']['Settings'] = 'Configuración';
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
$_ADDONLANG['Overview']['ServerInfo'] = 'Información del Servidor';
|
||||||
|
$_ADDONLANG['Overview']['Hostname'] = 'Nombre del host';
|
||||||
|
$_ADDONLANG['Overview']['Status'] = 'Estado';
|
||||||
|
$_ADDONLANG['Overview']['Uptime'] = 'Tiempo de actividad';
|
||||||
|
$_ADDONLANG['Overview']['OS'] = 'Sistema Operativo';
|
||||||
|
$_ADDONLANG['Overview']['Location'] = 'Ubicación';
|
||||||
|
$_ADDONLANG['Overview']['ServerType'] = 'Tipo de Servidor';
|
||||||
|
$_ADDONLANG['Overview']['ResourceAllocation'] = 'Asignación de Recursos';
|
||||||
|
$_ADDONLANG['Overview']['CPU_Cores'] = 'Núcleos de CPU';
|
||||||
|
$_ADDONLANG['Overview']['Memory'] = 'Memoria';
|
||||||
|
$_ADDONLANG['Overview']['Storage'] = 'Almacenamiento';
|
||||||
|
$_ADDONLANG['Overview']['Traffic'] = 'Tráfico';
|
||||||
|
$_ADDONLANG['Overview']['QuickActions'] = 'Acciones Rápidas';
|
||||||
|
$_ADDONLANG['Overview']['ResourceUsage'] = 'Uso de Recursos';
|
||||||
|
$_ADDONLANG['Overview']['CPU'] = 'Uso de CPU';
|
||||||
|
$_ADDONLANG['Overview']['CPUUsage'] = 'Uso';
|
||||||
|
$_ADDONLANG['Overview']['RAM'] = 'Uso de RAM';
|
||||||
|
$_ADDONLANG['Overview']['Bandwidth'] = 'Ancho de banda';
|
||||||
|
$_ADDONLANG['Overview']['Disk'] = 'Espacio en disco';
|
||||||
|
$_ADDONLANG['Overview']['DiskSize'] = 'Tamaño total';
|
||||||
|
$_ADDONLANG['General']['GB'] = 'GB';
|
||||||
|
$_ADDONLANG['General']['TB'] = 'TB';
|
||||||
|
|
||||||
|
## Graphs
|
||||||
|
$_ADDONLANG['Graphs']['CPU'] = 'Uso de CPU';
|
||||||
|
$_ADDONLANG['Graphs']['RAM'] = 'Uso de RAM';
|
||||||
|
$_ADDONLANG['Graphs']['Disk'] = 'Uso de disco';
|
||||||
|
$_ADDONLANG['Graphs']['Network'] = 'Uso de red';
|
||||||
|
$_ADDONLANG['Graphs']['Hour'] = 'Hora';
|
||||||
|
$_ADDONLANG['Graphs']['Day'] = 'Día';
|
||||||
|
$_ADDONLANG['Graphs']['Week'] = 'Semana';
|
||||||
|
$_ADDONLANG['Graphs']['Month'] = 'Mes';
|
||||||
|
$_ADDONLANG['Graphs']['Year'] = 'Año';
|
||||||
|
$_ADDONLANG['Graphs']['Loading'] = 'Cargando gráfico...';
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
$_ADDONLANG['Backups']['Description'] = 'Las fechas para las cuales hay copias de seguridad disponibles de este VPS se enumeran a continuación. Puede restaurarlas o eliminarlas en consecuencia.';
|
||||||
|
$_ADDONLANG['Backups']['Warning'] = '* Tenga en cuenta que las nuevas copias de seguridad reemplazarán las más antiguas.<br/>** Las copias de seguridad automáticas también reemplazarán sus copias de seguridad manuales a menos que las copias de seguridad automáticas estén deshabilitadas.<br/>*** Las copias de seguridad automáticas se realizan 2 veces por semana y son parte de nuestro plan de recuperación ante desastres. Si deshabilita las copias de seguridad automáticas, también deshabilita cualquier posibilidad de recuperación en caso de desastre.<br/>**** El sistema de archivos de la copia de seguridad podría no estar completamente consistente si el VPS estaba escribiendo en el sistema de archivos en el momento de la copia de seguridad. Para copias de seguridad completamente consistentes, el servidor debe detenerse mientras se crea la copia de seguridad.';
|
||||||
|
$_ADDONLANG['Backups']['Date'] = 'Fecha';
|
||||||
|
$_ADDONLANG['Backups']['Size'] = 'Tamaño';
|
||||||
|
$_ADDONLANG['Backups']['Type'] = 'Tipo';
|
||||||
|
$_ADDONLANG['Backups']['Status'] = 'Estado';
|
||||||
|
$_ADDONLANG['Backups']['Actions'] = 'Acciones';
|
||||||
|
$_ADDONLANG['Backups']['Create'] = 'Crear copia ahora';
|
||||||
|
$_ADDONLANG['Backups']['Available'] = 'Disponible';
|
||||||
|
$_ADDONLANG['Backups']['Creating'] = 'Creando...';
|
||||||
|
$_ADDONLANG['Backups']['Error'] = 'Error';
|
||||||
|
$_ADDONLANG['Backups']['Automatic'] = 'Automático';
|
||||||
|
$_ADDONLANG['Backups']['Manual'] = 'Manual';
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
### Hostname
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Title'] = 'Nombre del host';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Description'] = 'Establece el nombre del host y el rDNS. Cree primero el registro A.';
|
||||||
|
$_ADDONLANG['Settings']['Hostname']['Submit'] = 'Enviar';
|
||||||
|
|
||||||
|
### ISO
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Title'] = 'ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Description'] = 'Si instala el sistema operativo a través de la imagen ISO, también debe configurar la interfaz de red estáticamente. No hay un servidor DHCP ejecutándose.';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Image'] = 'Imagen ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Submit'] = 'Cargar ISO';
|
||||||
|
$_ADDONLANG['Settings']['ISO']['Remove'] = 'Expulsar ISO';
|
||||||
|
|
||||||
|
### Password
|
||||||
|
$_ADDONLANG['Settings']['Password']['Title'] = 'Contraseña';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Description'] = 'La contraseña de instalación se elimina de nuestros sistemas después de 72 horas. ¡Es obligatorio cambiar la contraseña en su primer inicio de sesión!';
|
||||||
|
$_ADDONLANG['Settings']['Password']['Submit'] = 'Restablecer contraseña';
|
||||||
|
|
||||||
|
### Reinstall
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Title'] = 'Reinstalar';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Description'] = 'Por favor entienda que al reinstalar, todos los datos se borrarán del servidor. ¡Esta acción es irreversible!';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['OS'] = 'Sistema operativo';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Version'] = 'ELEGIR VERSIÓN';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['Submit'] = 'Reinstalar';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKey'] = 'Clave pública SSH (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['SSHKeyDesc'] = 'Añadir clave SSH para acceso sin contraseña';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScript'] = 'Script post-instalación (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['PostScriptDesc'] = 'Script bash a ejecutar después de la instalación del SO';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPassword'] = 'Deshabilitar login SSH con contraseña';
|
||||||
|
$_ADDONLANG['Settings']['Reinstall']['DisableSSHPasswordDesc'] = 'Solo permitir autenticación con clave SSH';
|
||||||
|
|
||||||
|
### Firewall
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Title'] = 'Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Description'] = 'Las reglas se evalúan de arriba hacia abajo. Por defecto, todo está permitido. El firewall solo está disponible en la interfaz pública. Solo el tráfico entrante será filtrado por el firewall.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddNewRule'] = 'Agregar Nueva Regla de Firewall';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['CurrentRules'] = 'Reglas de Firewall Actuales';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['AddRule'] = 'Agregar Regla';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Action'] = 'Acción';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Puerto';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Protocol'] = 'Protocolo';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Source'] = 'Origen';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Note'] = 'Nota';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Actions'] = 'Acciones';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Accept'] = 'Aceptar';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Drop'] = 'Descartar';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Port'] = 'Número de puerto';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['SourceLabel'] = 'Ej: x.x.x.x/xx (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Notes'] = 'Notas (opcional)';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Warning'] = 'Las reglas deben confirmarse para que surtan efecto.';
|
||||||
|
$_ADDONLANG['Settings']['Firewall']['Submit'] = 'Confirmar firewall';
|
||||||
|
|
||||||
|
if (file_exists(__DIR__ . '/overrides/spanish.php')) include_once(__DIR__ . '/overrides/spanish.php');
|
||||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,30 @@
|
|||||||
|
{**
|
||||||
|
* VPSAG WHMCS Server Provisioning version 1.4
|
||||||
|
*
|
||||||
|
* @package WHMCS
|
||||||
|
* @copyright ArkHost
|
||||||
|
* @link https://arkhost.com
|
||||||
|
* @author ArkHost <support@arkhost.com>
|
||||||
|
*}
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
|
||||||
|
<meta name="author" content="ArkHost">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<title>ArkHost - VPS Panel</title>
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body class="text-center">
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
<div class="notice">
|
||||||
|
<img src="{$image}" class="mr-2">{$error}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,295 @@
|
|||||||
|
|
||||||
|
function $_(id) {
|
||||||
|
return document.getElementById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_API(action, alert = true, json = {}) {
|
||||||
|
ArkHostVPS_Loading(true);
|
||||||
|
|
||||||
|
$.post(productURL + '&modop=custom&a=ClientAreaAPI&api=' + action, json,
|
||||||
|
function(data) {
|
||||||
|
if (data.result === 'success') {
|
||||||
|
switch (action) {
|
||||||
|
case 'IPv6':
|
||||||
|
$_('ipv6').parentElement.innerHTML = data.data;
|
||||||
|
data.data = 'IPv6 created: ' + data.data;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Graphs':
|
||||||
|
// Hide loading indicator (if it exists)
|
||||||
|
if ($_('graphs-loading')) $_('graphs-loading').style.display = 'none';
|
||||||
|
if ($_('graphs-container')) $_('graphs-container').style.opacity = '1';
|
||||||
|
|
||||||
|
// Display graphs (they should be base64 images or img tags)
|
||||||
|
if ($_('cpu-graph')) $_('cpu-graph').innerHTML = data.cpu_img ? data.cpu_img : '<p class="text-muted">No CPU graph available</p>';
|
||||||
|
if ($_('ram-graph')) $_('ram-graph').innerHTML = data.mem_img ? data.mem_img : '<p class="text-muted">No RAM graph available</p>';
|
||||||
|
if ($_('disk-graph')) $_('disk-graph').innerHTML = data.disk_img ? data.disk_img : '<p class="text-muted">No Disk graph available</p>';
|
||||||
|
if ($_('network-graph')) $_('network-graph').innerHTML = data.net_img ? data.net_img : '<p class="text-muted">No Network graph available</p>';
|
||||||
|
|
||||||
|
// Add graphs class for styling
|
||||||
|
if ($_('cpu-graph')) $_('cpu-graph').classList.add('graphs');
|
||||||
|
if ($_('ram-graph')) $_('ram-graph').classList.add('graphs');
|
||||||
|
if ($_('disk-graph')) $_('disk-graph').classList.add('graphs');
|
||||||
|
if ($_('network-graph')) $_('network-graph').classList.add('graphs');
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Reinstall':
|
||||||
|
window.location.reload();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'List backups':
|
||||||
|
const backupTable = $_('backupTable').getElementsByTagName('tbody')[0];
|
||||||
|
|
||||||
|
delete data.result;
|
||||||
|
$('#backupTable tbody').find('tr').remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < Object.keys(data).length; i++) {
|
||||||
|
const backup = data[Object.keys(data)[i]];
|
||||||
|
|
||||||
|
const row = backupTable.insertRow();
|
||||||
|
const date = row.insertCell(0);
|
||||||
|
const size = row.insertCell(1);
|
||||||
|
const type = row.insertCell(2);
|
||||||
|
const status = row.insertCell(3);
|
||||||
|
const actions = row.insertCell(4);
|
||||||
|
|
||||||
|
date.innerHTML = new Date(backup.date).toLocaleString();
|
||||||
|
size.innerHTML = (backup.size !== '' ? backup.size : '0.00GB');
|
||||||
|
type.innerHTML = backup.type;
|
||||||
|
|
||||||
|
if (backup.status === 'ok') {
|
||||||
|
status.innerHTML = '<div class="badge bg-success">Completed</div>';
|
||||||
|
actions.innerHTML = '<a href="#" onclick="ArkHostVPS_API(\'Restore backup\', true, { file: ' + backup.file + ' });return false;"><i class="fas fa-history restore-icon text-secondary mr-2"></i></a> <a href="#" onclick="ArkHostVPS_API(\'Delete backup\', true, { file: ' + backup.file + ' });return false;"><i class="fas fa-1x fa-times delete" aria-hidden="true"></i></a>';
|
||||||
|
} else if (backup.status === 'preparing') {
|
||||||
|
status.innerHTML = '<div class="badge bg-info">Preparing</div>';
|
||||||
|
} else if (backup.status === 'creating') {
|
||||||
|
status.innerHTML = '<div class="badge bg-warning">Creating ' + backup.percentage + '%</div>';
|
||||||
|
} else {
|
||||||
|
status.innerHTML = '<div class="badge bg-danger">' + backup.status + '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Create backup':
|
||||||
|
ArkHostVPS_API('List backups', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Delete backup':
|
||||||
|
ArkHostVPS_API('List backups', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Get Firewall rules':
|
||||||
|
const firewallTable = $_('firewallTable').getElementsByTagName('tbody')[0];
|
||||||
|
|
||||||
|
delete data.result;
|
||||||
|
$('#firewallTable tbody').find('tr:not(:last)').remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < Object.keys(data).length; i++) {
|
||||||
|
const rule = data[Object.keys(data)[i]];
|
||||||
|
|
||||||
|
const row = firewallTable.insertRow(1);
|
||||||
|
const action = row.insertCell(0);
|
||||||
|
const port = row.insertCell(1);
|
||||||
|
const protocol = row.insertCell(2);
|
||||||
|
const source = row.insertCell(3);
|
||||||
|
const note = row.insertCell(4);
|
||||||
|
const actions = row.insertCell(5);
|
||||||
|
|
||||||
|
action.innerHTML = rule.action;
|
||||||
|
port.innerHTML = rule.port;
|
||||||
|
protocol.innerHTML = rule.protocol;
|
||||||
|
source.innerHTML = rule.source;
|
||||||
|
note.innerHTML = rule.note;
|
||||||
|
actions.innerHTML = '<a href="#" onclick="ArkHostVPS_API(\'Delete Firewall rule\', true, { rule_id: ' + rule.id + ' });return false;"><i class="fas fa-1x fa-times delete" aria-hidden="true"></i></a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#firewallTable tbody').append($('#firewallTable tbody tr:first'));
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Add Firewall rules':
|
||||||
|
ArkHostVPS_API('Get Firewall rules', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Delete Firewall rule':
|
||||||
|
ArkHostVPS_API('Get Firewall rules', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Commit Firewall rules':
|
||||||
|
ArkHostVPS_API('Get Firewall rules', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'ISO Images':
|
||||||
|
const isoSelect = $_('isoID');
|
||||||
|
|
||||||
|
$('#isoID').empty();
|
||||||
|
|
||||||
|
for (let i = 0; i < data.iso.length; i++) {
|
||||||
|
const iso = data.iso[i];
|
||||||
|
const option = document.createElement('option');
|
||||||
|
|
||||||
|
option.value = iso.id;
|
||||||
|
option.innerHTML = iso.iso_image;
|
||||||
|
option.selected = (data.current_iso !== 0 && data.current_iso == iso.id);
|
||||||
|
|
||||||
|
isoSelect.appendChild(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ArkHostVPS_Loading(false);
|
||||||
|
|
||||||
|
if (alert) {
|
||||||
|
ArkHostVPS_Alert('success', (typeof data.data === 'string' ? data.data : lang.moduleactionsuccess));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ArkHostVPS_Loading(false);
|
||||||
|
ArkHostVPS_Alert('error', (typeof data.message === 'string' ? data.message : lang.moduleactionfailed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_VNC() {
|
||||||
|
window.open(productURL + '&modop=custom&a=VNC', '_blank', 'toolbar=0,location=0,menubar=0');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkHostVPS_Loading(status) {
|
||||||
|
$_('loading').style.left = ((document.body.clientWidth - $('#loading').width()) / 2).toString() + 'px';
|
||||||
|
|
||||||
|
if (status) {
|
||||||
|
$('#loading').show();
|
||||||
|
} else {
|
||||||
|
$('#loading').hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkHostVPS_ChooseOS(button) {
|
||||||
|
var newOS = $_('newOS').value;
|
||||||
|
|
||||||
|
if (newOS !== '0') {
|
||||||
|
newOS = $('[data-os="' + newOS + '"]')[0];
|
||||||
|
newOS.classList.remove('SelectedOS');
|
||||||
|
$_(newOS.dataset.group + '-os').classList.remove('selected');
|
||||||
|
$_(newOS.dataset.group + '-version').innerText = 'CHOOSE VERSION';
|
||||||
|
}
|
||||||
|
|
||||||
|
$_('newOS').value = button.dataset.os;
|
||||||
|
button.classList.add('SelectedOS');
|
||||||
|
$_(button.dataset.group + '-os').classList.add('selected');
|
||||||
|
$_(button.dataset.group + '-version').innerText = button.innerText;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_ShowPassword() {
|
||||||
|
let passwordField = $_('vpsPassword');
|
||||||
|
let showPasswordIcon = $_('showPasswordIcon');
|
||||||
|
|
||||||
|
if (passwordField.type === 'password') {
|
||||||
|
passwordField.type = 'text';
|
||||||
|
showPasswordIcon.classList = 'fa-solid fa-eye-slash';
|
||||||
|
} else {
|
||||||
|
passwordField.type = 'password';
|
||||||
|
showPasswordIcon.classList = 'fa-solid fa-eye';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_Alert(type, message) {
|
||||||
|
let Toast = Swal.mixin({
|
||||||
|
toast: true,
|
||||||
|
position: 'top-end',
|
||||||
|
showConfirmButton: false,
|
||||||
|
timer: 3000
|
||||||
|
});
|
||||||
|
|
||||||
|
Toast.fire({
|
||||||
|
icon: type,
|
||||||
|
title: message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#pills-tab').scrollingTabs({
|
||||||
|
enableSwiping: true,
|
||||||
|
bootstrapVersion: 5,
|
||||||
|
cssClassLeftArrow: 'fa-solid fa-chevron-left',
|
||||||
|
cssClassRightArrow: 'fa-solid fa-chevron-right'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkHostVPS_UpdateStatitics() {
|
||||||
|
if ($_('overview-tab').ariaSelected !== 'true') return timerServerLoads = setTimeout(ArkHostVPS_UpdateStatitics, 10000);
|
||||||
|
|
||||||
|
clearTimeout(timerServerLoads);
|
||||||
|
|
||||||
|
if (timerServerLoads) {
|
||||||
|
$.get(productURL + '&modop=custom&a=ClientAreaAPI&api=Server Info',
|
||||||
|
function(serverInfo) {
|
||||||
|
if (serverInfo.result === 'success') {
|
||||||
|
// Update CPU display: handle both decimal (0.0-1.0) and percentage (0-100) formats
|
||||||
|
var cpuDisplay;
|
||||||
|
if (serverInfo.cpu_usage <= 1) {
|
||||||
|
// Decimal format (0.0-1.0), convert to percentage
|
||||||
|
cpuDisplay = Math.round(serverInfo.cpu_usage * 100);
|
||||||
|
} else {
|
||||||
|
// Already percentage format (0-100)
|
||||||
|
cpuDisplay = Math.ceil(serverInfo.cpu_usage);
|
||||||
|
}
|
||||||
|
$('.used-cpu').html(cpuDisplay + '%');
|
||||||
|
} else {
|
||||||
|
ArkHostVPS_Alert('error', (typeof serverInfo.message === 'string' ? serverInfo.message : lang.moduleactionfailed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
let serverInfo = serverInfoInitial;
|
||||||
|
serverInfo.ram_usage = serverInfo.ram_usage / 1000000000;
|
||||||
|
serverInfo.ram_usage_view = serverInfo.ram_usage.toFixed(2);
|
||||||
|
serverInfo.ram_percent = (serverInfo.ram_usage / serverInfo.ram) * 100;
|
||||||
|
serverInfo.ram_percent_view = serverInfo.ram_percent.toFixed(0);
|
||||||
|
|
||||||
|
serverInfo.bandwidth_used_view = (serverInfo.bandwidth_used / 1024).toFixed(2);
|
||||||
|
serverInfo.bandwidth_percent = ((serverInfo.bandwidth_used / 1024) / serverInfo.bandwidth) * 100;
|
||||||
|
serverInfo.bandwidth_percent_view = serverInfo.bandwidth_percent.toFixed(0);
|
||||||
|
|
||||||
|
// Disk usage not available from API, show total disk size instead
|
||||||
|
serverInfo.disk_used_view = serverInfo.disk;
|
||||||
|
serverInfo.disk_percent = 100;
|
||||||
|
serverInfo.disk_percent_view = '100';
|
||||||
|
|
||||||
|
$_('ramPercentBar').style.width = serverInfo.ram_percent_view + '%';
|
||||||
|
$_('ramPercentBar').innerHTML = serverInfo.ram_percent_view + '%';
|
||||||
|
$_('ramPercentVal').innerHTML = serverInfo.ram_usage_view + ' / ' + serverInfo.ram + ' GB';
|
||||||
|
|
||||||
|
$_('bandwidthPercentBar').style.width = serverInfo.bandwidth_percent_view + '%';
|
||||||
|
$_('bandwidthPercentBar').innerHTML = serverInfo.bandwidth_percent_view + '%';
|
||||||
|
$_('bandwidthPercentVal').innerHTML = serverInfo.bandwidth_used_view + ' / ' + serverInfo.bandwidth + ' TB';
|
||||||
|
|
||||||
|
$_('diskPercentVal').innerHTML = serverInfo.disk + ' GB';
|
||||||
|
|
||||||
|
// Update CPU display: handle both decimal (0.0-1.0) and percentage (0-100) formats
|
||||||
|
var cpuDisplay;
|
||||||
|
if (serverInfo.cpu_usage <= 1) {
|
||||||
|
// Decimal format (0.0-1.0), convert to percentage
|
||||||
|
cpuDisplay = Math.round(serverInfo.cpu_usage * 100);
|
||||||
|
} else {
|
||||||
|
// Already percentage format (0-100)
|
||||||
|
cpuDisplay = Math.ceil(serverInfo.cpu_usage);
|
||||||
|
}
|
||||||
|
$('.used-cpu').html(cpuDisplay + '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
timerServerLoads = setTimeout(ArkHostVPS_UpdateStatitics, 10000);
|
||||||
|
}
|
||||||
|
|
||||||
|
$_('ArkHostVPS').style.display = 'block';
|
||||||
|
ArkHostVPS_UpdateStatitics();
|
||||||
|
});
|
||||||
@@ -0,0 +1,295 @@
|
|||||||
|
|
||||||
|
function $_(id) {
|
||||||
|
return document.getElementById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_API(action, alert = true, json = {}) {
|
||||||
|
ArkHostVPS_Loading(true);
|
||||||
|
|
||||||
|
$.post(productURL + '&modop=custom&a=ClientAreaAPI&api=' + action, json,
|
||||||
|
function(data) {
|
||||||
|
if (data.result === 'success') {
|
||||||
|
switch (action) {
|
||||||
|
case 'IPv6':
|
||||||
|
$_('ipv6').parentElement.innerHTML = data.data;
|
||||||
|
data.data = 'IPv6 created: ' + data.data;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Graphs':
|
||||||
|
// Hide loading indicator (if it exists)
|
||||||
|
if ($_('graphs-loading')) $_('graphs-loading').style.display = 'none';
|
||||||
|
if ($_('graphs-container')) $_('graphs-container').style.opacity = '1';
|
||||||
|
|
||||||
|
// Display graphs (they should be base64 images or img tags)
|
||||||
|
if ($_('cpu-graph')) $_('cpu-graph').innerHTML = data.cpu_img ? data.cpu_img : '<p class="text-muted">No CPU graph available</p>';
|
||||||
|
if ($_('ram-graph')) $_('ram-graph').innerHTML = data.mem_img ? data.mem_img : '<p class="text-muted">No RAM graph available</p>';
|
||||||
|
if ($_('disk-graph')) $_('disk-graph').innerHTML = data.disk_img ? data.disk_img : '<p class="text-muted">No Disk graph available</p>';
|
||||||
|
if ($_('network-graph')) $_('network-graph').innerHTML = data.net_img ? data.net_img : '<p class="text-muted">No Network graph available</p>';
|
||||||
|
|
||||||
|
// Add graphs class for styling
|
||||||
|
if ($_('cpu-graph')) $_('cpu-graph').classList.add('graphs');
|
||||||
|
if ($_('ram-graph')) $_('ram-graph').classList.add('graphs');
|
||||||
|
if ($_('disk-graph')) $_('disk-graph').classList.add('graphs');
|
||||||
|
if ($_('network-graph')) $_('network-graph').classList.add('graphs');
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Reinstall':
|
||||||
|
window.location.reload();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'List backups':
|
||||||
|
const backupTable = $_('backupTable').getElementsByTagName('tbody')[0];
|
||||||
|
|
||||||
|
delete data.result;
|
||||||
|
$('#backupTable tbody').find('tr').remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < Object.keys(data).length; i++) {
|
||||||
|
const backup = data[Object.keys(data)[i]];
|
||||||
|
|
||||||
|
const row = backupTable.insertRow();
|
||||||
|
const date = row.insertCell(0);
|
||||||
|
const size = row.insertCell(1);
|
||||||
|
const type = row.insertCell(2);
|
||||||
|
const status = row.insertCell(3);
|
||||||
|
const actions = row.insertCell(4);
|
||||||
|
|
||||||
|
date.innerHTML = new Date(backup.date).toLocaleString();
|
||||||
|
size.innerHTML = (backup.size !== '' ? backup.size : '0.00GB');
|
||||||
|
type.innerHTML = backup.type;
|
||||||
|
|
||||||
|
if (backup.status === 'ok') {
|
||||||
|
status.innerHTML = '<div class="badge bg-success">Completed</div>';
|
||||||
|
actions.innerHTML = '<a href="#" onclick="ArkHostVPS_API(\'Restore backup\', true, { file: ' + backup.file + ' });return false;"><i class="fas fa-history restore-icon text-secondary mr-2"></i></a> <a href="#" onclick="ArkHostVPS_API(\'Delete backup\', true, { file: ' + backup.file + ' });return false;"><i class="fas fa-1x fa-times delete" aria-hidden="true"></i></a>';
|
||||||
|
} else if (backup.status === 'preparing') {
|
||||||
|
status.innerHTML = '<div class="badge bg-info">Preparing</div>';
|
||||||
|
} else if (backup.status === 'creating') {
|
||||||
|
status.innerHTML = '<div class="badge bg-warning">Creating ' + backup.percentage + '%</div>';
|
||||||
|
} else {
|
||||||
|
status.innerHTML = '<div class="badge bg-danger">' + backup.status + '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Create backup':
|
||||||
|
ArkHostVPS_API('List backups', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Delete backup':
|
||||||
|
ArkHostVPS_API('List backups', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Get Firewall rules':
|
||||||
|
const firewallTable = $_('firewallTable').getElementsByTagName('tbody')[0];
|
||||||
|
|
||||||
|
delete data.result;
|
||||||
|
$('#firewallTable tbody').find('tr:not(:last)').remove();
|
||||||
|
|
||||||
|
for (let i = 0; i < Object.keys(data).length; i++) {
|
||||||
|
const rule = data[Object.keys(data)[i]];
|
||||||
|
|
||||||
|
const row = firewallTable.insertRow(1);
|
||||||
|
const action = row.insertCell(0);
|
||||||
|
const port = row.insertCell(1);
|
||||||
|
const protocol = row.insertCell(2);
|
||||||
|
const source = row.insertCell(3);
|
||||||
|
const note = row.insertCell(4);
|
||||||
|
const actions = row.insertCell(5);
|
||||||
|
|
||||||
|
action.innerHTML = rule.action;
|
||||||
|
port.innerHTML = rule.port;
|
||||||
|
protocol.innerHTML = rule.protocol;
|
||||||
|
source.innerHTML = rule.source;
|
||||||
|
note.innerHTML = rule.note;
|
||||||
|
actions.innerHTML = '<a href="#" onclick="ArkHostVPS_API(\'Delete Firewall rule\', true, { rule_id: ' + rule.id + ' });return false;"><i class="fas fa-1x fa-times delete" aria-hidden="true"></i></a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#firewallTable tbody').append($('#firewallTable tbody tr:first'));
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Add Firewall rules':
|
||||||
|
ArkHostVPS_API('Get Firewall rules', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Delete Firewall rule':
|
||||||
|
ArkHostVPS_API('Get Firewall rules', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Commit Firewall rules':
|
||||||
|
ArkHostVPS_API('Get Firewall rules', false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'ISO Images':
|
||||||
|
const isoSelect = $_('isoID');
|
||||||
|
|
||||||
|
$('#isoID').empty();
|
||||||
|
|
||||||
|
for (let i = 0; i < data.iso.length; i++) {
|
||||||
|
const iso = data.iso[i];
|
||||||
|
const option = document.createElement('option');
|
||||||
|
|
||||||
|
option.value = iso.id;
|
||||||
|
option.innerHTML = iso.iso_image;
|
||||||
|
option.selected = (data.current_iso !== 0 && data.current_iso == iso.id);
|
||||||
|
|
||||||
|
isoSelect.appendChild(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ArkHostVPS_Loading(false);
|
||||||
|
|
||||||
|
if (alert) {
|
||||||
|
ArkHostVPS_Alert('success', (typeof data.data === 'string' ? data.data : lang.moduleactionsuccess));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ArkHostVPS_Loading(false);
|
||||||
|
ArkHostVPS_Alert('error', (typeof data.message === 'string' ? data.message : lang.moduleactionfailed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_VNC() {
|
||||||
|
window.open(productURL + '&modop=custom&a=VNC', '_blank', 'toolbar=0,location=0,menubar=0');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkHostVPS_Loading(status) {
|
||||||
|
$_('loading').style.left = ((document.body.clientWidth - $('#loading').width()) / 2).toString() + 'px';
|
||||||
|
|
||||||
|
if (status) {
|
||||||
|
$('#loading').show();
|
||||||
|
} else {
|
||||||
|
$('#loading').hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkHostVPS_ChooseOS(button) {
|
||||||
|
var newOS = $_('newOS').value;
|
||||||
|
|
||||||
|
if (newOS !== '0') {
|
||||||
|
newOS = $('[data-os="' + newOS + '"]')[0];
|
||||||
|
newOS.classList.remove('SelectedOS');
|
||||||
|
$_(newOS.dataset.group + '-os').classList.remove('selected');
|
||||||
|
$_(newOS.dataset.group + '-version').innerText = 'CHOOSE VERSION';
|
||||||
|
}
|
||||||
|
|
||||||
|
$_('newOS').value = button.dataset.os;
|
||||||
|
button.classList.add('SelectedOS');
|
||||||
|
$_(button.dataset.group + '-os').classList.add('selected');
|
||||||
|
$_(button.dataset.group + '-version').innerText = button.innerText;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_ShowPassword() {
|
||||||
|
let passwordField = $_('vpsPassword');
|
||||||
|
let showPasswordIcon = $_('showPasswordIcon');
|
||||||
|
|
||||||
|
if (passwordField.type === 'password') {
|
||||||
|
passwordField.type = 'text';
|
||||||
|
showPasswordIcon.classList = 'fa-solid fa-eye-slash';
|
||||||
|
} else {
|
||||||
|
passwordField.type = 'password';
|
||||||
|
showPasswordIcon.classList = 'fa-solid fa-eye';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ArkHostVPS_Alert(type, message) {
|
||||||
|
let Toast = Swal.mixin({
|
||||||
|
toast: true,
|
||||||
|
position: 'top-end',
|
||||||
|
showConfirmButton: false,
|
||||||
|
timer: 3000
|
||||||
|
});
|
||||||
|
|
||||||
|
Toast.fire({
|
||||||
|
icon: type,
|
||||||
|
title: message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#pills-tab').scrollingTabs({
|
||||||
|
enableSwiping: true,
|
||||||
|
bootstrapVersion: 5,
|
||||||
|
cssClassLeftArrow: 'fa-solid fa-chevron-left',
|
||||||
|
cssClassRightArrow: 'fa-solid fa-chevron-right'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ArkHostVPS_UpdateStatitics() {
|
||||||
|
if ($_('overview-tab').ariaSelected !== 'true') return timerServerLoads = setTimeout(ArkHostVPS_UpdateStatitics, 10000);
|
||||||
|
|
||||||
|
clearTimeout(timerServerLoads);
|
||||||
|
|
||||||
|
if (timerServerLoads) {
|
||||||
|
$.get(productURL + '&modop=custom&a=ClientAreaAPI&api=Server Info',
|
||||||
|
function(serverInfo) {
|
||||||
|
if (serverInfo.result === 'success') {
|
||||||
|
// Update CPU display: handle both decimal (0.0-1.0) and percentage (0-100) formats
|
||||||
|
var cpuDisplay;
|
||||||
|
if (serverInfo.cpu_usage <= 1) {
|
||||||
|
// Decimal format (0.0-1.0), convert to percentage
|
||||||
|
cpuDisplay = Math.round(serverInfo.cpu_usage * 100);
|
||||||
|
} else {
|
||||||
|
// Already percentage format (0-100)
|
||||||
|
cpuDisplay = Math.ceil(serverInfo.cpu_usage);
|
||||||
|
}
|
||||||
|
$('.used-cpu').html(cpuDisplay + '%');
|
||||||
|
} else {
|
||||||
|
ArkHostVPS_Alert('error', (typeof serverInfo.message === 'string' ? serverInfo.message : lang.moduleactionfailed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
let serverInfo = serverInfoInitial;
|
||||||
|
serverInfo.ram_usage = serverInfo.ram_usage / 1000000000;
|
||||||
|
serverInfo.ram_usage_view = serverInfo.ram_usage.toFixed(2);
|
||||||
|
serverInfo.ram_percent = (serverInfo.ram_usage / serverInfo.ram) * 100;
|
||||||
|
serverInfo.ram_percent_view = serverInfo.ram_percent.toFixed(0);
|
||||||
|
|
||||||
|
serverInfo.bandwidth_used_view = (serverInfo.bandwidth_used / 1024).toFixed(2);
|
||||||
|
serverInfo.bandwidth_percent = ((serverInfo.bandwidth_used / 1024) / serverInfo.bandwidth) * 100;
|
||||||
|
serverInfo.bandwidth_percent_view = serverInfo.bandwidth_percent.toFixed(0);
|
||||||
|
|
||||||
|
// Disk usage not available from API, show total disk size instead
|
||||||
|
serverInfo.disk_used_view = serverInfo.disk;
|
||||||
|
serverInfo.disk_percent = 100;
|
||||||
|
serverInfo.disk_percent_view = '100';
|
||||||
|
|
||||||
|
$_('ramPercentBar').style.width = serverInfo.ram_percent_view + '%';
|
||||||
|
$_('ramPercentBar').innerHTML = serverInfo.ram_percent_view + '%';
|
||||||
|
$_('ramPercentVal').innerHTML = serverInfo.ram_usage_view + ' / ' + serverInfo.ram + ' GB';
|
||||||
|
|
||||||
|
$_('bandwidthPercentBar').style.width = serverInfo.bandwidth_percent_view + '%';
|
||||||
|
$_('bandwidthPercentBar').innerHTML = serverInfo.bandwidth_percent_view + '%';
|
||||||
|
$_('bandwidthPercentVal').innerHTML = serverInfo.bandwidth_used_view + ' / ' + serverInfo.bandwidth + ' TB';
|
||||||
|
|
||||||
|
$_('diskPercentVal').innerHTML = serverInfo.disk + ' GB';
|
||||||
|
|
||||||
|
// Update CPU display: handle both decimal (0.0-1.0) and percentage (0-100) formats
|
||||||
|
var cpuDisplay;
|
||||||
|
if (serverInfo.cpu_usage <= 1) {
|
||||||
|
// Decimal format (0.0-1.0), convert to percentage
|
||||||
|
cpuDisplay = Math.round(serverInfo.cpu_usage * 100);
|
||||||
|
} else {
|
||||||
|
// Already percentage format (0-100)
|
||||||
|
cpuDisplay = Math.ceil(serverInfo.cpu_usage);
|
||||||
|
}
|
||||||
|
$('.used-cpu').html(cpuDisplay + '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
timerServerLoads = setTimeout(ArkHostVPS_UpdateStatitics, 10000);
|
||||||
|
}
|
||||||
|
|
||||||
|
$_('ArkHostVPS').style.display = 'block';
|
||||||
|
ArkHostVPS_UpdateStatitics();
|
||||||
|
});
|
||||||