Personal tools


Proxmox Cloud VPS For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search


About Proxmox Cloud VPS For WHMCS

Proxmox Cloud VPS For WHMCS offers your clients the flexibility to create, remove and freely resize their own virtual servers within resource limits defined by you.

Your customers will be able to create as many servers as they need, manage such essential aspects like backups or firewall, and access noVNC, SPICE, or Xterm.js console.
The module supports Cloud-Init for the KVM virtualization type, and features Proxmox Addon allowing you to easily manage servers, IP addresses and clusters.

  • Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate User Account
✔ Change Package
✔ Change User Role
✔ Reset Bandwidth
✔ Migrate/Import/Delete Server
✔ View Available Resources (Memory, vCPUs, Disks, Networks)
✔ Display Disk And Bandwidth Usage Of Each Product
✔ View Servers Status And Details
✔ View Available IP Addresses
✔ View User Details
✔ Set Up KVM And LXC Product Configuration:
✔ Main Configuration Limits
✔ Server Limits
✔ Mount Point (LXC)
✔ Backup
✔ Network
✔ Hard Disk (KVM)
✔ Additional Disks (KVM)
✔ Boot
✔ Firewall
✔ Firewall Options (KVM)
✔ Cloud-Init (KVM)
✔ Guest Agent (KVM)
✔ User
✔ Miscellaneous
✔ Load Balancer
✔ KVM And LXC Configuration
✔ Additional KVM And LXC Configuration
✔ High Availability Cluster
✔ Console
✔ Client Area Features
✔ Configurable Option Units
✔ CPU Priority
✔ Generate Configurable Options
✔ Additional Configuration Features:
✔ Define Resource Limits:
✔ Static
✔ Dynamic
✔ Define Server Minimum And Maximum Resource Values
✔ Import IP Address To Hosting IP Addresses Table
✔ Return IP Address To IP Addresses Subnet
✔ Add Additional IP Address To VM
✔ Enable Backups Routing
✔ Enable Auto VM Backups Before Reinstallation
✔ Enable Reset Usage First Day Of Month
✔ Define Node Selection:
✔ Server-Node
✔ Auto-Node
✔ Custom Chosen Node
  • Proxmox Addon Features:
✔ Display Servers:
✔ List Per VPS And Cloud
✔ Clusters List
✔ VMs List
✔ KVM Templates
✔ Recovery VM Configurations List With Export To Backup File
✔ Tasks History
✔ Statuses, Resources Usage, IP Assignments, And Details
✔ Manage Public And Private IP Addresses Per Server/VLAN/Tag/Node
✔ VM Cleaner - Manage VM Not Existing In Your WHMCS
✔ Convert KVM VPS To KVM Template
✔ Define VM IDs Ranges Per Server
✔ Set Minimum VM ID For Product Without ID Ranges Defined
✔ Provide Server Credentials For Cloud-Init Scripts
✔ Configure Resources Weights For Load Balancer Prioritization
✔ Create And Manage Custom Cloud-Init Scripts
✔ Synchronize Users Permissions
  • Client Area Features:
✔ Create/Edit/Delete Servers
✔ Create/Edit/Delete Virtual Networks
✔ View Available Resources And Usage (Memory, vCPUs, Disks, Networks)
✔ Set Up Virtual Machines
✔ Define Machine Settings:
✔ Name
✔ Type
✔ Description
✔ Define Machine Parameters:
✔ Location
✔ Sockets (KVM)
✔ Cores (LXC)
✔ vCPU (KVM)
✔ CPU Priority
✔ Disk Size
✔ Default User (KVM)
✔ Password
✔ SSH Key
✔ Search Domain (KVM)
✔ Name Servers (KVM)
✔ Add Virtual Networks
✔ Add Additional Disks
✔ Star/Reboot/Stop/Shut Down/Delete Server
✔ Access noVNC, SPICE, And Xterm.js Console
✔ View And Manage Machine Details
✔ View And Manage Disks
✔ View And Manage Virtual Networks And Interfaces
✔ Take, Manage And Restore Snapshots
✔ Create, Manage And Restore Backups
✔ Schedule Automatic Backups In Defined Periods
✔ Edit Firewall Options And Manage Its Rules
✔ View Tasks History
✔ View CPU/Disk/Memory/Network Graphs Usage
✔ Reinstall Server Using:
✔ OS Templates (KVM)
✔ ISO Images
✔ Choose Server Resources While Ordering And Upgrade/Downgrade Them Freely
  • Configurable Options:
KVM Limits:
✔ CPU Sockets
✔ CPU Cores
✔ CPU Weight
✔ Memory
✔ Storage
✔ IPv4 Addresses
✔ IPv6 Addresses
✔ Backups Size
✔ Backups Files
✔ Snapshots
✔ Bandwidth
✔ Network Rate
✔ Virtual Networks
LXC Limits:
✔ CPU Weight
✔ Memory
✔ Storage
✔ IPv4 Addresses
✔ IPv6 Addresses
✔ Backups Size
✔ Backups Files
✔ Snapshots
✔ Bandwidth
✔ Network Rate
✔ Virtual Networks
  • General Info:
✔ Supports Cloud-Init (KVM)
✔ Supports PVE And PAM Authentication
✔ Supports KVM and LXC Virtualization
✔ Integrated With Advanced Billing For WHMCS - Actual Server Resource Usage Billing (read more)
✔ Integrated With Proxmox Cloud Autoscaling For WHMCS - Automated Servers Resizing (read more)
✔ Integrated With Proxmox VPS For WHMCS - Remote Provisioning And Management Of Virtual Servers (read more)
✔ Integrated With IP Manager For WHMCS - Complete Control And Easy Assignment Of IP Subnets (read more)
✔ Multi-Language Support
✔ Supports Proxmox VE 6.X And 7.X
✔ Supports IPv4 and IPv6
✔ Supports PHP 7.2 Up To PHP 7.4
✔ Supports WHMCS Themes "Six" And "Twenty-One"
✔ Supports WHMCS 7.10 And Later
✔ Easy Module Upgrade To Open Source Version

Installation and Configuration

This tutorial will show you how to successfully install and configure Proxmox Cloud VPS For WHMCS.

We will guide you step by step through the whole installation and configuration process.

Note: If you are still using any of the module's previous versions prior to v3.0, follow these instructions.


1. Log in to our client area and download the module.
PXC3 1.png
2. In the downloaded file you might find one or two packages that support different PHP versions.

In the most recent versions of the module, you will find only one package that supports PHP 7.2 and later.

PHP72 74.png
Previous updates of the module may contain two packages dedicated to various PHP versions.

The first one that supports PHP 5.6 up to PHP 7.1, and the second one addressed to PHP 7.2 up to PHP 7.4.
Note: Keep in mind that PHP versions 5.6 up to 7.1 are no longer officially supported and their security issues are not fixed or released any more. Find more info here.

PHP56 74.png
Note: You can check the current PHP version in your WHMCS. To do so, proceed to 'Utilities' → 'System' → 'PHP Info'.
3. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this.

PX2 2 1.png
4. Open 'UploadOnProxmoxServer' and upload content of the proper version on all Proxmox servers into the '/' path.
You should upload these files not only during the first installation of the module, but also each time you update it.

Note: If you wish to allow noVNC consoles, you need to configure a product using the PVE realm and set user permissions to 'PVEVMUser.'
Important: Open Folder UploadOnProxmoxServer/5.2-10 and upload content on all your proxmox servers. Scripts must be updated on proxmox server v2.6.0 to allow Xterm.js console work.

5. When you install Proxmox Cloud VPS For WHMCS for the first time, you have to rename the 'license_RENAME.php' file.

This file is located in 'modules/servers/proxmoxCloudVps/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

PXC3 3.png
6. In order to configure your license key, you have to edit a previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen.
You can find your license key in our client area → 'My Products'.

PXC3 4.png
7. In the next step, set up the 'storage' folder as recursively writable.

This folder is available at: your_whmcs/modules/addons/proxmoxAddon/

PX2 4 1.png

Activation of Proxmox Addon

8. Firstly, you should activate Proxmox Addon.

To do so, log in into your WHMCS and press 'Setup' → 'Addon Modules'. Find 'Proxmox Addon' and press 'Activate'.

Note: The Proxmox addon version might not match the current version of the provisioning module itself. This is completely normal due to the specific structure of the product.

PXC4 5.png
9. In the next step, you need to permit access to this module.

To do so, click on the 'Configure' button. Tick 'Full Administrator' and press 'Save Changes'.

PXC4 6.png

Configuration of Server

10. Now, we will show you how to configure a new product.

Go to 'Setup' 'Products/Services' 'Servers' and press 'Add New Server'.

PXC3 7.png
11. Next, enter your server name, IP address, username and password.

Choose 'Proxmox Cloud VPS' from a dropdown menu and press 'Save Changes'.
The last step is choosing authentication from the 'Authentication' dropdown menu.
Note: Authentication depends on the realm used by the user on a Proxmox server.

PXC3 8.png
12. After you have configured your server correctly, you will see the following screen.

You can check connection with the Proxmox server. To do so, simply press 'Test Connection' as shown on the screen below.

PXC3 9.png
13. It is time to create a server group. To do so, click on 'Create New Group'.
PXC3 10.png
14. Enter name, click on your previously created server, press 'Add' and afterwards 'Save Changes'.
PXC3 11.png

Configuration of Product

15. In order to create and configure a product, go to 'Setup' → 'Products/Services' → 'Products/Services'.

Click on 'Create a New Group'.

PXC3 12.png
16. Enter the product group name and press 'Save Changes'.
PX3 13.png
17. When you have a product group, you are able to create your product.

To create a product, click on 'Create a New Product'.

PX3 14.png
18. Afterward, choose your product group from dropdown menus and point its type, enter your product name and choose 'Proxmox Cloud VPS' as a module name.
Press 'Continue'.

'Product Type' can be set to 'Server/VPS' but nameservers will need to be added later.
If you do not want to fill out nameservers, please select 'Shared Hosting' .

PXC3 15.png
19. Now, go to the 'Module Settings' section and choose your previously created server group from the dropdown menu.

Next, click on 'Save Changes'.

PXC3 16.png
20. Firstly, choose 'Virtualization Type' from the dropdown menu. Then, proceed to the next section which is 'Main Configuration' and set proper values here.

Available virtualization types:

  • KVM
  • LXC

You can also choose how often the bandwidth usage should be calculated.
Afterwards, press 'Save Changes'.
Note: If you choose 'Auto-Node' as 'Default Node', new virtual servers will be created on the least used node.
Note 2: An advanced tool is available for you to automatically manage a node selection with the best count of resources. Read more about Load Balancer.

PXC3 17.png

KVM Virtualization Type

21. The setting of the KVM virtualization type (skip this step if you have chosen the LXC virtualization type).

There are a few sections underlined that need your attention. Please, complete carefully the 'KVM Configuration' , 'Additional Disks' , 'Client Area Features' sections.
As you can see, there are more options available. Look through them and decide which ones you want to modify and adjust to your and your clients' needs.
Do not forget about the 'Network' section where you can determine a model, bridge, and rate limits of the network.
If you are going to allow your clients to manage their private networks, you have to select 'Private Bridge' and set up VLAN TAG Range.
Once you make sure that the configuration is completed, click 'Save Changes'.
Important: Keep in mind that the root password is generated automatically for KVM virtualization upon its creation and reset.
'If you want to set your own password on KVM virtualization, use the Cloud-Init option.

PXC3 18.png

LXC Virtualization Type

22. Setting of the LXC virtualization type (skip this step if you have chosen the KVM virtualization type).

Firstly, complete the 'General' configuration and then proceed to the 'Main Configuration' , 'LXC Configuration' , 'Network' , and 'Client Area Features' sections.
There are more options available so you may easily modify the configuration of your products. Once you complete everything, click on the 'Save Changes' button.

Remember! This virtualization type is supported only by Proxmox VE 4.0. and later.
If you are using the previous version of a Proxmox server, you will not be able to start this virtualization.

PXC3 18 1.png

Finalizing The Configuration

23. Private Network Management - in order to allow clients to manage their private networks, set up the 'Network' section properly.
  • Define 'Private Network Model'
  • Select 'Bridge' as well as 'Private Bridge' from the dropdown menus.
  • Enter ranges for VLAN TAG

Note: Configure these three options for the KVM and LXC virtualization.
If you skip this step, clients will not be allowed to add private networks.

PXC3 20 1.png
24. The next step is setting up the configuration of backups.

Define backup settings in the 'Backup' section through defining 'Storage' and enabling 'Backups Routing' .
Backups routing automatically removes the oldest backup when a new backup is created and the established backup limit is reached.
Additionally, you can limit the time period for storing backups by providing the number of days into the 'Backups Storing Period' field.
Furthermore, you can define the limit of firewall rules and the interface to apply the rules to.
Finish the configuration in the 'Module Settings' tab through pressing 'Save Changes'.

PXC3 20.png
25. Set up server limits to control the size of created servers.
PXC3 21 1.png
26. The final step is generating 'Configurable Options' .

Click on the 'Create Configurable Options' button.
Note: While generating 'Configurable Options', it is advisable to delete the ones you do not use, e.g. the swap option or IPv6 for the KVM virtualization.

PXC3 21.png
Now, you may decide which options should be generated for your product.

Adjust configurable options to your needs and press 'Confirm' .
Note: Please remember that 'Custom Fields' can be edited in the next tab of the product's configuration.

PXC3 21 2.png
27. In the end of the product configuration, you have to add a cron job that is shown below (5 minutes interval suggested).
php -q /your_whmcs/modules/servers/proxmoxCloudVps/cron/cron.php

Do not forget to replace 'your_whmcs' with your WHMCS root location.

Congratulations! You have just finished the installation and configuration of the module.

Configuration of Addon

28. Proceed to 'Addons' 'Proxmox Addon' 'Settings' 'General Settings' and set up cron jobs listed under the 'Cron' section.

Please note that there are separate cron jobs dedicated to Proxmox VPS and Proxmox Cloud VPS modules - these jobs are the most important to assure fluent work of the modules, suggested frequency is 5 minutes.
If you are using only Proxmox VPS, there is no need to set up the second one and the other way round.
The other ones are responsible for:

  • Users synchronization - run only once
  • VM recovery synchronization - optionally run every 24 hours
  • VM migration synchronization - optionally run every 24 hours or just after the VM migration
  • Tasks synchronization - optionally run every one hour
PXC3 35 1.png
29. Next, under the Cron settings, find the 'Minimum VMID' field.
Fill it in with a number that will be used as an ID of the first VM, the second VM will be asigned the next ID number.
Here it is also possible to turn on 'Debug Mode' if you need to register module logs.
PXC3 35 2.png
30. Adding a new IP address (if you are not using IP Manager For WHMCS).

In order to create a new product, you have to add 'Dedicated IP ' to the 'IP Addresses' list in 'Proxmox' addon module.
To do so, go to 'IP Management' and press 'New IP Addresses'.
Note: You can add both the IPv4 and IPv6 addresses.

PXC2 30.png
31. Start by typing a desired IP address and mask into 'IP Pool'.

Next, choose a server from the 'Server' dropdown menu and define which virtualization it should be applied to through selecting it from the 'Virtualization' dropdown menu.
Afterward, press 'Confirm'.

PX2 23.png
32. You are now able to create new virtual machines at the product.

The client area of a successfully created product should look similar to the one presented on the screen below.

PXC3 24 1.png

Cloud-Init (KVM)

Use Cloud-Init to configure the system during installation, first-boot and package change.
Cloud-Init was initially developed to provide early initialization of cloud instances.
Click here to learn more about Cloud-Init configuration.
Note: Cloud-Init functionality is supported for the KVM virtualization only.

Custom Configuration In Addon

Cloud-Init Scripts

The Cloud-Init Scripts section allows adding ready scripts that will be available to choose from in the products' configuration page.
The selected there script will be used while crating the virtual machine.

Press 'Add New' to manually add your script.

PX3 50 0.png
Name your new Cloud-Init script and type in or paste a ready configuration. The configuration must include:
  • Username
  • Hostname
  • Password

Here is an exemplary configuration of a Cloud-Init script. You may alter it to fit your settings and paste into the 'Script' ' field:

hostname: {$domain}
manage_etc_hosts: true
fqdn: {$domain}
user: {$username}
password: {$passwordHash}
  expire: False
  - default
package_upgrade: true
PX3 50 1.png
A full list of available variables related to a Proxmox Cloud VPS type of the product/service:
{$} {$} {$vm.password} {$vm.passwordHash} {$vm.ipv4Addresses} {$vm.ipv6Addresses} {$vm.ciuser} {$vm.sshkeys}
Manage created Cloud-Init scripts, edit/delete singe scripts or use mass action to delete numerous scripts.
PX3 50 2.png

Server Details

In order to use the Cloud-Init successfully, you need to also provide SSH details to let the script send the IP addresses to the Proxmox server.

Move to Servers → Servers List → Details → Settings, there you will find fields that are responsible for the correct SSH connection.

  • SSH Host
  • SSH Port
  • SSH User
  • SSH Password or SSH Private Key

You also have to select the 'Snippet Storage' to locate the Cloud-Init script in the correct catalog.

PX3 50 3.png

Configuration Of Product

To to allow you clients to use cloud-init you need to enable it in the Proxmox product configuration.

Before you start we recommend learning the details about cloud-init configuration on your Proxmox server - click here for more details.
Once you get familiar with Proxmox cloud-init proceed to the Cloud-Init group of your KVM configuration where you can enable it and set the following:

  • Enable Cloud-Init
  • Default User - provide the username that will be used for the VM instead of using the 'Service Username' field or the default user of the configured image. Otherwise, leave empty.
  • Custom Cloud-Init Configuration - specify custom files to replace the automatically generated ones at the start.
PXC3 51 new.png
Among other client area features, find 'Cloud-Init Script' and select the scripts that your clinets will be allowed to choose from when creating a new virtual machine.
PXC3 51 0.png

Configuration Of Proxmox Server

The process of setting up Cloud-Init on the Proxmox server is described here.

Additionally, you can use the following commands that can be useful for debugging.

  • Re-run cloud init scripts
rm -rf /var/lib/cloud/sem/* /var/lib/cloud/instance /var/lib/cloud/instances/* &&
cloud-init init  &&
cloud-init modules -m final
  • Logs
cat /var/log/cloud-init.log
cat /var/log/cloud-init-output.log


Proxmox Cloud VPS For WHMCS allows your customers to manage their PVE servers in the WHMCS client area.

At the same time, you can monitor and handle each product from your WHMCS admin area.
You can find here:

  • Module Commands
  • Available Resources
  • Virtual Machines
  • IP Addresses
  • User Details
PXC3 26.png

Management of Addon

Servers Management

Servers List

In 'Addons' 'Proxmox Addon' 'Servers' 'Servers List' you can find the configured Proxmox servers.

RAM details:

Assigned - RAM assigned to the server (hosting services only)
Total - full server RAM
Free - difference between Total Server RAM and Assigned RAM

Suspended - number of suspended accounts per size in MB E.g.: (1/500 MB) when there is only one suspended account (occupying 500MB of that account) assigned to Proxmox VPS server.

PXC2 28.png
Through pressing 'Edit' icon you will be moved to the server edit page - see point number 10 of Server Configuration.

Press 'More Details' icon and you will get extended information on the selected server. See below for more details.

The 'VMs' tab includes a list of created virtual machines on this server. Take a quick look at information on domain, status, bandwidth and IP addresses.

To view information about a VM, simply press the more info icon.

PXC2 29.png
Check the node and VMID:
PX2 29 1.png
The next tab contains the list of clusters with information on uptime, CPU as well as CPU, SWAP, memory and disk usage data.
PXC2 29 2.png
Press the Edit icon to manage the node:
PX2 29 3.png
Press 'Node Details' and you will get all the summary and usage graphs:
PXC2 30 2.png
VM Cleaner
VM Cleaner allows you to track VMs existing only on your Proxmox server and that are not visible in your WHMCS.
Consequently, you are allowed to sort and delete only those VMs that cannot be managed from your WHMCS.
PXC2 31 1.png
Under this page you can view the list of templates. You can easily convert any KVM VM on your server to a template.

In order to convert a VM, press 'Create Template' button.

PXC2 31 3.png
Next, choose a VM to convert.

Fill out 'Description' field and press 'confirm'.
Important: Selected VM will be destroyed in the process.

PX2 31 4.png
You may also delete unused templates here. Delete single templates or use the mass action to delete templates in bulk.
PXC2 31 2.png
Here you can define the VM IDs range that will be used for newly created VMs on this server. Please note that to use this feature, you also need to enable the "Use VM Ranges" setting in the product configuration.
Define ID range and save changes.

Note: VM ID range allows you to sort created VMs depending on the server they were created on.
SSH Data - fill out the SSH connection details (Host, User, Posrt, Password or Private Key) to allow to locate the IP addresses on the Proxmox server (Cloud-Init)
Snippet Storage - select the catalog where the file will be uploaded (Cloud-Init)

PXC2 34.png
Node Groups
Under the 'Node Groups' subsection, you can create new groups and assign nodes to them.
PX2 34 1.png
Provide a name of your group and allot preferred nodes from the dropdown menu.
PX2 34 2.png
Now, navigate to the 'Module Settings' of your product and find the 'Load Balancer' section.
Here you can select one or more of the previously created groups.
PX2 34 3.png

VMs List

In 'Addons' 'Proxmox Addon' 'Servers' 'VMs List' you can find details of any Proxmox product.
PXC4 35.png
Press 'More Details' button to get the node and VMID information.
PX2 35 1.png

Recovery VM Lists

In 'Addons' 'Proxmox Addon' 'Servers' 'Recovery VM List' you can details on the created VM.

Run the 'VM recovery synchronization' cron job to create and store full backups of VMs configuration, you can find it at point no 26 of the configuration instructions.
Use the 'Export to File' button to save information in a TXT copy file.

PXC4 36.png
On pressing the 'Details' icon, you will get any information on Configuration, Status and DNS:
PX2 36 1.png
PX2 36 2.png
PX2 36 3.png

Tasks History

Tasks History includes a list o all module tasks with the most crucial details on them.
You may delete single tasks or use mass action button to remove them in bulk.

Run the 'Tasks synchronization' cron job to synchronize the tasks and view all tasks from the server, you can find it at point no 26 of the configuration instructions.

PXC4 37.png

IP Management

In the 'IP Management' tab you can manage the IP addresses of Proxmox products.
You can create both single IP addresses and IP pools which then can be assigned to created VMs.
PXC3 30.png
When you are creating a new IP address or a pool, you may define:
  • private/public address
  • servers or nodes that will use them
  • virtualization types (different VMs will use different IP pools)
PX2 30 1.png

IP Manager Integration

Owing to the integration with IP Manager For WHMCS, you are able to easily create subnets with IP addresses and assign them to the desired products.

By activating the IP Manager submodule, settings concerning IP addresses such as 'Configurable Options' and 'Default Options' will be ignored by Proxmox VPS.
Note: This integration works for LXC and KVM virtualization types.

1. Proceed to the IP Manager For WHMCS → Subnets tab in order to prepare IP addresses subnet for Proxmox VPS For WHMCS.
2. Edit the previously created IP addresses subnet and create a custom field 'MAC Address' with a desired MAC address at each IP address in the subnet.
Note: Setting up MAC address is optional and can be skipped.
More details about creating custom fields can be found here.

PX 49.png
3. Afterward, create a new configuration and assign the previously created subnet to it.

Note: Multiple IP addresses subnets can be assigned to a single configuration.
4. Now, link the configuration with Proxmox VPS product via a product, a server or a configurable option.
On the following screen we have linked them via the configurable option assigned to the Proxmox VPS product.

PX 50.png
5. Now, enable the integration by proceeding to the '3rd Party Integration' tab.

Press 'Activate' next to the 'proxmoxVPS' module type as shown on the following screen.

PX 51.png
6. Next, assign the previously created configuration to the submodule.

Press 'Configure' , choose a configuration and press 'Save Changes'.

PX 52.png
If you encounter an error like the one on the below screen while integrating the two products, probably the function 'mb_strlen' is not enabled by default.
Please read the manual here for installation instructions.
PX 52 1.png
It is possible to add a VLAN Tag Custom Filed in the very same way as the MAC Address field.

Look above for the detailed instruction on how to proceed, follow steps 1-6 to create the new custom field.
The only thing you need to change is the custom field name, which should be 'Tag' in this case.

PX 49 1.png


Load Balancer

Load Balancer is an advanced tool that allows smooth rotation between nodes to find the most preferable one and create virtual machine on it.

Set the weight of the resource that will prioritize its selection when sorting the Nodes according to the free resources.
Note: The lowest possible weight is 1. You cannot set for example 0,5.

PX2 30 4.png
In order to use Load Balancer you must previously enable it in the product's configuration:

Define the behavior of the tool:

  • On Upgrade - select action to perform:
    • None - if selected, no action will be triggered
    • Block - the upgrade process will be blocked as there are insufficient resources on the node
    • Migrate - the upgrade process will be performed after the previous migration of the VM to a server with sufficient free space
  • Shutdown VM on Upgrade
  • Stop VM If Shutdown Fails
PXC3 30 5.png
Node Prioritization Method
Let us take a look at how the sorting process works and the rules that it obeys.

Let's take exemplary weights for each resource just like presented on the screen above.

VMs Number Weight: 1,5
CPU Weight: 2
Disk Weight: 4
RAM Weight: 2,5

Disk Weight with the highest weight which means it has the highest priority and VMs Number Weight as the least crucial factor on a given node.

In our situation, there are four nodes created, named A, B, C, D with current resources as shown below:

Node A (Free Ram: 60%, Free CPU: 20%, Free Disk Space: 50%, Number of VMs: 5) 
Node B (Free Ram: 30%, Free CPU: 70%, Free Disk Space: 40%, Number of VMs: 10)
Node C (Free Ram: 90%, Free CPU: 50%, Free Disk Space: 20%, Number of VMs: 20)
Node D (Free Ram: 80%, Free CPU: 60%, Free Disk Space: 70%, Number of VMs: 15)

The next step is sorting the nodes according to each resource, by assigning them corresponding priorities from 1 to 4.
The higher the priority, the more free resources available.

Priority Free Ram Free CPU Free Disk Space Number of VMs
4 Node C Node B Node D Node A
3 Node D Node D Node A Node B
2 Node A Node C Node B Node D
1 Node B Node A Node C Node C
Now, the final calculation to sort nodes according to free resources, taking into account previously defined weights, is performed

Sorting nodes is based on the following calculation method:

Final Node Priority = (RAM Priority x RAM Weight) + (CPU Priority x CPU Weight) + (Free Disk Priority x Disk Weight) + (No. VMs  Priority x VMs Weight)

The results for nodes A, B, C and D (with weights and sorting priority) are following:

Node A: (2 x 2,5) + ( 1 x 2 ) + ( 3 x 4 ) + ( 4 x 1,5 ) = 25
Node B: (1 x 2,5) + ( 4 x 2 ) + ( 2 x 4 ) + ( 3 x 1,5 ) = 23
Node C: (4 x 2,5) + ( 2 x 2 ) + ( 1 x 4 ) + ( 1 x 1,5 ) = 19,5
Node D: (3 x 2,5) + ( 3 x 2 ) + ( 4 x 4 ) + ( 2 x 1,5 ) = 32,5

As you can see, Node D has got the highest priority value with a result: 32,5.
It will be selected by Load Balancer to create a new VM there, to migrate or upgrade an existing VM if its current node does not have sufficient resources.

The above described calculations are performed every time, a 'Create' or 'Upgrade' actions are executed based on the current usage of resources on available nodes.

Important: In case a given client already has an existing VM on a node, this very node will NOT be taken into account during the prioritization of resources process.
This is due to security measures to make sure, that in case of failure of this node, the client will still have access to the other VM server, created on another, working node.
However, if this client has VMs on every node already, all of them will be taken into account during the selection prioritization process again.

If you decide to use the 'Load Balancer' tool, define the resource weights to adjust their prioritization of nodes according to your needs.


Under the 'Tasks' tab, you can check a list of performed tasks along with their status.
Moreover, you are granted the possibility to check 'Info' for a particular task, run the task again by clicking the 'Run Task' button, or delete it.
PXC4 30 5.png

Client Area

Client area interface of Proxmox Cloud VPS For WHMCS allows your clients to create their own virtual servers.

They can also view resources used and manage existing virtual machines.

PXC3 24 1.png

New Virtual Machine

In order to add a new virtual machine, press the 'Add New Virtual Machine' button.
PXC4 38 1.png
Now, provide a name of your new virtual machine and choose a proper type from the dropdown menu.

Moreover, you can add 'New Virtual Network' and 'New Additional Disk' here. Confirm creation through pressing 'Save Changes'.
Note! Data to be filled in may differ according to which type LXC or KVM you have chosen.

PXC4 38.png
You can now easily 'Edit' (1) or 'Delete' (2) your virtual machine.

You can find information about managing your virtual servers in next section.

PXC4 39.png

Virtual Network Management

Move to 'Virtual Networks' section to add, delete and edit your virtual networks.

Please keep in mind that this option must be enabled by administrator in your product's 'Module Settings' previously and a private IP address must be added in the Proxmox Addon.
Otherwise you will not be able to add any virtual network successfully.
Moreover, you can also 'Edit' (1) or 'Delete' (2) existing private networks.

PXC4 60.png

Templates Management (KVM Only)

Once you press 'Templates', you will be redirected to a site where you will find the list of currently created templates along with their details and access to basic actions.
PXC4 62.png
You may edit or delete existing templates. To add a new one, simply press 'Add Template' button.

OS templates do not consume any resources such as CPU sockets, memory etc.
Important! When you convert server into a template, it is consumed in the process! There is no possibility to revert it back.

PXC4 63.png
Select server from dropdown menu and type in its short description. Save changes when ready.
PXC4 64.png

Client Area - VM Management

The client area interface of your virtual machine should look like the one on the screen below.

As you can see, the control panel contains useful options needed for managing VPS.
The module allows your customers to easily boot, stop, reboot, and shut down their VM by pressing a specific button.
Clients can also upgrade servers and access VNC, SPICE, and noVNC consoles.
Any additional tools are described in detail below.

PXC4 41.png

noVNC Console

noVNC console allows your clients to connect with their server in the easiest possible way.
PX2 39 1.png

SPICE Console

Spice console enables you to connect with virtual machine using SPICE.

Note: Your client needs to download and install client side SPICE application in order to connect with VM.

PX2 40.png

Xterm.js Console

Xterm.js console enables you to connect to virtual machine using Xterm.js.

You must update the scripts on Proxmox v2.6.0. To do so open folder: UploadOnProxmoxServer/5.2-10 and upload content on all your proxmox servers.

PX2 40 1.png

Client Area - Additional Tools


The 'Reinstall' section is divided into two parts. There are 'OS Template' and 'ISO Images' subsections.

Note: The ISO images can only be used for the KVM virtualization type, while VM templates can be used either for KVM or LXC.
Additionally the new OS password for the KVM OS reinstallation will be set based on the previous service password while for the LXC user can define it before the new installation.

PXC4 38 5.png
Remember to gain your clients access to selected reinstallation types in the 'Client Area Features' of the product's configuration.
PXC4 38 4.png


Backups List

To create a single backup, proceed to 'Backups List' section and click 'Create Backup' .
PXC4 47.png
Now choose 'Compress' and 'Mode' from dropdown menus.

Afterwards, press 'Add' button.

PXC4 48.png
To restore VM from a backup simply press 'Restore' and then click 'OK' button in a popup window to confirm.
PXC4 49.png

Backup Jobs

By pressing 'Backup Jobs' in the client area, you will be carried to a backup jobs management page.

To add a new backup job press 'Create Backup Job' .

PXC4 50.png
Now, define backup time, mark days to run it and choose 'Compression' and 'Mode' from dropdown menus.

Next, press 'Add' button. You may also enable email notifications here.

PXC4 51.png


Under 'Graphs' page, a client can find graph with CPU usage, memory usage, network traffic and disc I/O.

They can also switch the timeline of the graphs by choosing it from a dropdown menu pointed on the following screen.

PXC4 46.png


All changes of VM status are listed in the 'Tasks' section.

Additionally, each access to the VM through SPICE console is shown here.

PXC4 52.png


Under the 'Network' section, you will find 'Public IP' , 'Virtual Network' , as well as 'Interfaces' subsections.

Depending on the settings of the product (private network is used), they can also create/remove them. This feature is optional.

PXC4 53.png


Use snapshots to remember the contents of virtual machine memory current state. You may use them later to restore the VM settings.
PXC4 52 1.png


Firewall Rules

Owing to 'Firewall' page, your clients can set up firewall rules and enable security group for theirs servers from your WHMCS client area.

As you can see, you can easily modify and remove previously added rules and security groups.

PXC4 53 1.png
You can add a firewall rule in two ways. Both of them require choosing direction, action, interface, source and destination.

The first way (red) is by choosing macro from a 'Macro' dropdown field.
The second way (blue) consist of choosing protocol and filling source and destination ports out.
Additionally, you can enable rule and add a comment to it.
Press 'Add' to create a rule.

PXC4 53 2.png
Inserting a security group consists of choosing security group and interface on which group has to be used.

Additionally, you can enable security group and add a comment to it.
Click 'Add' to use the security group.

PXC4 53 3.png

Firewall Options

Under this subsection, you can easily view and edit firewall options.
PXC4 53 4.png

Disks (KVM only)

View and manage hard disk within defined limits, add new one or remove additional disks if you wish.
PXC4 52 2.png

IP Manager Integration

Owing to integration with IP Manager For WHMCS you are able to easily create IP addresses subnets and assign them to desired products.

Note: This integration works for both LXC and KVM virtualization types.

1. Proceed to IP Manager For WHMCS → Subnets tab in order to prepare IP addresses subnet for Proxmox Cloud VPS For WHMCS.
2. Edit a previously created IP addresses subnet and create custom field 'MAC Address' with desired MAC address at each IP address in the subnet.
More about creating custom fields can be found here.

PX 49.png
3. Afterwards, create a new configuration and assign a previously created subnet to it.

Note: Multiple IP addresses subnets can be assigned to a single configuration.
4. Now, link the configuration with Proxmox Cloud VPS product via product, server or configurable option.
On the following screen, we have linked them via a configurable option assigned to the Proxmox Cloud VPS product.

PX 50.png
5. Now, enable integration by proceeding to '3rd Party Integration' tab.

Press 'Activate' next to 'ProxmoxCloudVps' module type as shown on the following screen.

PXC 54.png
6. Next, assign a previously created configuration to the submodule.

Press 'Configure', choose the configuration and press 'Save Changes'.

PXC 55.png

Importing VM

Our module allows you to easily import VM into your cloud product.

To do so, press 'Import Virtual Machine' as shown on the following screen.

PXC3 45 3.png
Afterwards, choose the preferred virtual machine from the dropdown menu and complete the 'Password' field..

Confirm importing through pressing 'Save Changes' button.

PXC3 45 4.png

Configurable Options

When you successfully set up a product, your clients can order it by choosing from the default configurable options.

Note! If automatically generated configurable options do not seem to fulfill your clients needs, you can edit them using this guide.
If you decide to set up pricing per server resource ordered, you can find instruction to proceed here.


Management of Billing

When you combine Proxmox Cloud VPS For WHMCS with Advanced Billing For WHMCS, you will be able to set up additional billing options.

Module allows you to charge your customers basing on the server resources used by them.

With Advanced Billing For WHMCS module, you can also display your customers current server resource usage and their cost.

Products Autoscaling

If you want to meet the needs of your clients then give them the possibility to scale provisioned servers according to their current load automatically.

To achieve that you need our Proxmox Cloud Autoscaling extension with Advanced Billing For WHMCS product.
Only then, when you have such a combination of products your offer will be full.

With the combination of these three items, you will be able to formulate a set of rules basing on which specified servers will be modified at the right time.

Advanced Billing For WHMCS will bill your clients for the currently used servers and its extension, Proxmox Cloud Autoscaling, will adjust the size of Cloud product to the current needs.



1. Operations performed on the virtual servers are not executed immediately. Give your Proxmox Virtual Environment some time for processing the request and execution of operation.
2. Multiple physical Proxmox servers can be joined into one cluster.

When they are joined into one cluster, you can access all of them by connecting to any of them.
While auto-node creates new VM on the server(node) with the most free resources, server-node creates VM on the server(node) which IP address it has (WHMCS's server configuration).

3. OS Templates are not automatically downloaded while configuring a product.
For each virtualization type, templates are downloaded from the Proxmox server depending on which one of them they are generated for.
4. To name the location accordingly to your needs, within the module change the lang into:
$_LANG['node_X']='Your friendly name for node_X';
5. When PAM authentication is used it is necessary to create a client first in order to change the password correctly. Read more about it here.
6. As this module supports templates system, any changes made in the module's templates files will be saved after the upgrade process.
7. If you currently use the module in the 2.3.2 version or previous, and would like to migrate to Proxmox VE V5.X, you need to update the files on your Proxmox server to the new version from the 'UploadOnProxmoxServer' folder.
8. You can use the 'IPSet IP Filter' option for firewall to prevent IP spoofing. Click here to read more about IP Sets.
9. 'Minimum Network Rate Limit' option allows you to change the previously entered 'Network Rate Limit' value to a new one if the current 'Bandwidth Limit' is already exceeded.
Note that the 'Bandwidth Limit' can also be used for WHMCS overage billing calculation as described here.
PXC2 70 1.png

Update Instructions

1. Essential guidance through the process of updating the module is offered here.

Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!
To take advantage of it, simply use the License Upgrade button located on the product's page and a discounted invoice will be generated automatically.

2. To upgrade the module from Proxmox Cloud For WHMCS to Proxmox Cloud VPS For WHMCS correctly, you need to follow these steps:
  • Delete all old files of 'Proxmox Cloud For WHMCS' from:
  • Delete the previous cron job:
  • Add new cron jobs (A full list of cron jobs can be found here):

5-minute interval suggested for:

 php -q your_whmcs/modules/addons/proxmoxAddon/cron/cron.php queue 
 php -q your_whmcs/modules/addons/proxmoxAddon/cron/cron.php update-server-usage 

1-hour interval suggested for:

 php -q your_whmcs/modules/addons/proxmoxAddon/cron/cron.php rrddata 
  • Now, upload new files of 'Proxmox Cloud VPS For WHMCS' to the main WHMCS directory.

Important! Please remember to reissue the licence in the client area after uploading new files to the main WHMCS directory.
If you do not do this, you will get a notification about the wrong licence, and the upgrade process will not succeed.

  • Finally, proceed to the configuration of your server and change the module type to Proxmox Cloud VPS
    and the 'Module Name' to Proxmox Cloud VPS in the 'Module Settings' tab of your product configuration.

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. Error 'Could not create PVE2_API object' during connecting via noVNC console.

Reason: User account does not have permission to access noVNC console.
Solution: Proceed to product's 'Module Settings' tab and check whether selected user permission grant right for noVNC console.
Afterwards, proceed to client's hosting and run 'Change User Role' on it.

3. Error 'This connection is untrusted' during connecting via noVNC console.

Reason: Your certificate is not valid.
Quick Solution: Your client needs to add Proxmox address to certificate exception list.
Best Solution: Configure valid certificate.

4. Blank page during connecting via noVNC console.

Reason: You have not uploaded the additional files on the Proxmox server.
Solution: Open 'UploadOnProxmoxServer' and upload content of proper version on all Proxmox servers into the '/' path.

5. Error 'Function "ssh2_connect" does not exist. Please Install SSH2 PECL before you start using the script.'

Reason: You have not updated php.ini file
Solution: After SSH2 PECL installation be sure that you have updated php.ini files for CLI and webserver.

6. After you have updated your Proxmox Cloud For WHMCS to Proxmox Cloud For WHMCS V2.0.0, it is always required to save your product configuration in module settings again.
7. If you see an error: 'Invalid VLAN TAG Range' configuration or other when trying to add a new private network, please make sure you have completed all required options in Module Settings.
These are: 'Network Device' → 'Private Bridge', 'VLAN TAG Range From' and 'VLAN TAG Range To'.
8. 'OS Architecture Type ' option for LXC virtualization type is currently not supported as it not implemented in Proxmox itself.
We are sorry for inconvenience.
9. Error: "Only root can set 'serial0' config".

Solution: Turn off the Xterms.js console in the product configuration.

10. Error "Parameter verification failed. ([maxfiles] - Only root may set this option.)"

Reason: User is other than "root" or server authentication is set to Proxmox VE
Solution: In server configuration, set the root details and select PAM as the authentication type.

WHMCS Modules
WHMCS Translations
cPanel Modules
Magento Extensions
Magento Themes
PrestaShop Modules
Blesta Extensions
Proxmox Cloud VPS For WHMCS