ModulesGarden Documentation
Back Home Home

Proxmox Proxy Application

  • Navigation
    • Main Page
    • ModulesGarden Website
    • Help
  • WHMCS Modules
    • Abandoned Cart
    • Account Synchronization
    • AdminBolt Licenses
    • Advanced Billing
    • Alibaba Cloud Virtual Machines
    • Amazon EC2
    • Amazon Lightsail
    • Anti-Fraud And Email Verification
    • Client Area Designer
    • Client Area Popup
    • Client Profile Viewer
    • Cloud Billing
    • cPanel Extended
    • cPanel Manage2
    • CRM
    • DigitalOcean Droplets
    • DirectAdmin Extended
    • DirectAdmin Licenses
    • Discount Center
    • DNS Manager
    • Domain Allocator
    • Domain & Email Forwarding
    • Domain Orders Extended
    • Domains Reseller
    • EasyDCIM Colocation
    • EasyDCIM Dedicated Servers
    • Email Notifications Organizer
    • Emoji Picker
    • EURid Registrar
    • Expense Tracker
    • Freshdesk
    • Freshservice
    • Geolocation Hook
    • GoDaddy Domain Registrar
    • GoGetSSL
    • Google Analytics
    • Google Cloud Virtual Machines
    • Google Workspace
    • Hetzner Cloud Servers
    • Hosting Quota Notifications
    • Hosting Renewals
    • IBM Cloud Virtual Servers
    • IP Manager
    • Lagom Smart Order Form
    • Login-Free Payments
    • Marketing Triggers Automation
    • MetricsCube Business Analytics
    • MikroTik WireGuard VPN
    • Multibrand
    • NIC IT Registrar
    • Office 365
    • OpenStack Projects
    • OpenStack VPS & Cloud
    • OVHcloud VPS & Dedicated Servers
    • Password Manager
    • Payment Gateway Allocator
    • Payment Gateway Charges
    • Plesk Extended
    • Plesk Key Administrator
    • Portainer Docker Containers
    • Premium Support Tickets
    • Product Cross-Selling
    • Product Feedback Center
    • Product Free Trial Manager
    • Product Linker
    • Products Reseller
    • Proxmox Mail Gateway
    • Proxmox VE Cloud VPS (Legacy)
    • Proxmox VE VPS & Cloud
    • QuickBooks Desktop
    • QuickBooks Online
    • QuickBooks Online Survey
    • Quotes Automation
    • R1Soft Backups
    • Rackspace Email Extended
    • Recurring Contract Billing
    • Report Generator
    • Resellers Center
    • Server Allocator
    • Secure Support Messages
    • Server Monitoring
    • SMS Center
    • Social Media Login
    • SolusVM 2 VPS & Cloud
    • SolusVM Extended VPS
    • SolusVM Extended Cloud
    • SolusVM Extended Reseller
    • Stripe SEPA Payments
    • Support PIN
    • Support Tickets Allocator
    • Time & Task Manager
    • Unban Center
    • Virtuozzo Hybrid Infrastructure S3
    • Virtuozzo Hybrid Server
    • Vultr VPS
    • WithoutDNS
    • WordPress Manager
    • Zendesk
    • Zimbra & Carbonio Email
  • Legacy Versions
    • Advanced Billing 3.X
    • Domain Orders Extended 2.X
    • Domains Reseller 1.X
    • EasyDCIM Colocation V1.X
    • EasyDCIM Dedicated Servers V1.X
    • EasyDCIM Dedicated Servers V2.X
    • Hosting Quota Notifications 1.X
    • Hosting Renewals 2.X
    • IP Manager 2.5.X
    • Lagom One Step Order Form 1.2.X
    • Multibrand 1.X
    • Office 365 1.0.0
    • Payment Gateway Charges 1.X
    • Proxmox Cloud 2.X
    • Proxmox VPS 2.X
    • Quotes Automation 1.X
    • Recurring Contract Billing 1.5.X
    • Report Generator 3.X
    • Resellers Center 2.X
    • SMS Center 2.X
    • Unban Center 1.X
    • Zimbra Email For WHMCS
    • Zimbra Email 1.X
  • WHMCS Module Bundles
    • Accounting
    • Commerce
    • CRM
    • Customer Experience
    • Domain Reseller
    • Hosting Accounts Provisioning
    • IaaS VPS And Cloud Provisioning
    • On-Premises VPS And Cloud Provisioning
  • WHMCS Widgets
    • Freshdesk Customer Widget
    • ModulesGarden Widget
    • WHMCS Widget For Zendesk
  • Tools And Applications
    • Access Control Tool
    • App Templates Tool
    • Automations Tool
    • Logs
    • Proxmox Proxy Application
    • Task Queue Tool
    • Theme Management Tool
  • Translations
    • Translations Tool
    • Translations
    • Polish Language Translation
    • Polska Wersja Językowa (PL)
  • General
    • 7-Day Free Access
    • How To Change WHMCS Module Language
    • How To Debug Module
    • How To Solve Problems With Module License
    • How To Change WHMCS Module Design
    • How To Update WHMCS Module
    • How To Upgrade WHMCS Module
    • How To Use Configurable Options
  • FAQ
    • Common Questions
    • WHMCS Module Bundles
  • Community
    • Forums
    • Blog
    • Facebook
    • X
    • LinkedIn
    • Instagram
    • Reddit
    About Proxmox Proxy Application Proxmox Proxy Installation For Console Connection Proxmox Proxy Management

# Proxmox Proxy Application

  • About Proxmox Proxy Application
  • Proxmox Proxy Installation For Console Connection
    • Proxmox Proxy Update
  • Proxmox Proxy Management
    • Increased Security

# About Proxmox Proxy Application

The purpose of maintaining and utilizing the 'Proxmox Proxy' application is to separate the user from the server infrastructure.
To use the console without a proxy, users require access to, for example, the Proxmox server. However, with proxy enabled this requirement is eliminated.

Before you begin the process of connecting the console to the server through a proxy, you need to download the proxy application file.
The file can be found under the following link (opens new window) after you have logged in to your ModulesGarden account.

  • Supported Connections
    • Proxmox VE VPS & Cloud For WHMCS (opens new window)
    • Proxmox VE Cloud VPS For WHMCS (opens new window)
    • Virtuozzo Hybrid Server For WHMCS (opens new window)

# Proxmox Proxy Installation For Console Connection

  1. Create a new VPS server, which you may run on a Proxmox server.
    It is advised to use the KVM virtualization type.
    Warning! The used VPS may NOT have any services running, such as: PHP, WebServer (e.g. apache, nginx) or MySQL server.

  2. Configure the network on the virtual machine, and make sure the network works correctly, to do so you may use the below command:

ping modulesgarden.com   

If everything is fine, ensure that basic server security settings have been established.
You may turn off login with a password and turn on login with a key, change the SSH port, set up firewalls, etc.

  1. Log into the machine on which you are going to set up proxy.

  2. Install the docker engine and the docker compose:
    https://docs.docker.com/engine/install/
    https://docs.docker.com/compose/install/

  3. Upload the application files into a proper directory, eg: /root/proxmox-proxy (create if needed).
    Then unzip the files.

  4. Move to the following catalog:

cd /root/proxmox-proxy   

Note that the exact directory depends on the previous step where you uploaded the files.

  1. Purchase or generate your own SSL certificate, and then use the certificate to overwrite the following files: 'nginx/localhost.crt' and 'nginx/localhost.key'.

  2. Find the 'example.env' file and rename it to '.env'.
    Then open the just renamed '.env' file and provide a random set of signs to create the database and root passwords: DB_PASSWORD and MYSQL_ROOT_PASSWORD
    These data will be automatically used when creating the database.

  3. Run the below command:

docker-compose up --build -d   
  1. Move to docker container:
docker exec -it proxyphp bash   

and run the installation script:

php -q /var/www/html/installer.php install   

When ready, find the API Key and keep it safe, you will need it later on when pasting the data into the module addon, see point 12 for details.

  1. Check if the MTU of the docker interface (usually docker0) is lower or equal to the MTU of the main network interface (usually eth0) with the following command:
ifconfig   

If the MTU of the docker is higher than the MTU of the main network interface, create a new file:

/etc/docker/daemon.json   

and include the MTU value that is lower than the MTU of the main network interface, like this:

{   
"mtu": 1400   
}   
  1. Next, copy your machine IP address to WHMCS. You may check the IP address using the below command:
ip a   

Note: Remember to check the IP address in your virtual machine, not in the proxyphp container.

  1. Configure all the required data in the module addon in your WHMCS.
    Below we will illustrate the proxy configuration based on the Proxmox VE VPS & Cloud addon example. For other modules, this section may look slightly different.
    Go to: Addons → Proxmox VE VPS & Cloud Addon → Tools → Console Proxy.
    Create a proxy connection by entering:
    • Name - any custom label for identification.
    • Host - full URI of the proxy, including protocol and port. This must match the proxy access details.
    • API Key - the API key generated during installation (see point 10).

Next, go to: Addons → Proxmox VE VPS & Cloud Addon → Settings → General Settings.
At the bottom, locate the Console Proxy section and select the desired connection from the Proxmox Proxy dropdown - includes all connections added in step above.
This selection works globally unless a separate proxy is selected per single node.

You can also assign a separate proxy to each node individually.
To do this, open the server details → Cluster tab → Node Details → Other tab and assign a proxy there in the Proxmox Proxy dropdown.
If no proxy is set at the node level, the one selected in General Settings will be used by default.

  1. Make sure the server works. In order to do so, please open the address: https://{vmip}:8443.
    Remember to replace {vmip} with a valid virtual machine IP address, for example: https://192.168.8.113:8443/
    When you see {"errors":["Invalid API Endpoint"]} it means that the server correctly responds.

  2. Finally, try to open the noVNC console on your WHMCS Proxmox product to check if the proxy configuration is working properly. Important: If your certificate expires in the meantime, you will need to buy/generate a new one and follow the below steps:

    • move to the /root/proxmox-proxycatalog(the directory may differ depending on your setup)
    • replace the nginx/localhost.crt and nginx/localhost.key files
    • run the following command:
docker-compose up --build -d   

Note: If you ever encounter an iconcube error while rerunning the 'docker-compose up' command, delete all local docker images related to your docker file using the following command and try again.

$ docker rmi -f $(docker images -a -q)   

# Proxmox Proxy Update

Updating the Proxmox Proxy Application - by ModulesGarden
When a new version of the proxmox proxy application is released, follow these steps to complete the update process:
- Download (opens new window) the updated files and upload them into a proper directory, eg: /root/proxmox-proxy.
Important: Please ensure it is a clean installation with only the operating system and Docker installed.
There must be no other services, such as MySQL or Apache, running on the server.

- Execute the following commands sequentially:

docker-compose pull   
docker-compose down   
docker-compose up -d --build   

Container Update - by Third-Party Vendor
The Proxmox proxy is an application developed by ModulesGarden, relying on Docker containers provided by third-party vendors.
To ensure your proxy stays updated with the latest Docker images, we recommend executing the following commands occasionally:

docker-compose pull   
docker-compose down   
docker-compose up -d --build   

Important: In case of container update, there is no need to configure anything in the proxmox proxy application itself.

# Proxmox Proxy Management

To understand how the Proxmox Proxy application operates, consider the following steps:

  1. The module (such as Proxmox VE VPS And Cloud For WHMCS (opens new window) or Proxmox VE Cloud VPS For WHMCS (opens new window)) connects to the Proxmox server to generate a ticket (opens new window), granting access to the Proxmox panel.
  2. The ticket is then forwarded to the Proxmox Proxy application, which in turn returns a token.
  3. The user uses the token to establish a connection with the Proxmox Proxy.
  4. Finally, the Proxmox Proxy utilizes the provided token, along with the associated data (such as the server's IP address and the ticket), to establish a connection with the Proxmox server.

# Increased Security

To enhance the security of your infrastructure, we recommend implementing the following measures:

  • Restrict access to the Proxmox servers by permitting connections only from WHMCS and the proxy application itself, blocking all other connections.
  • Ensure that the server hosting the Proxmox proxy restricts remote access to ports exclusively to 8443.