Proxmox VE for WHMCS (Module) Provision & Manage
We're mostly done overhauling the Module to suit our internal needs at LEOPARD.host.
- Automatically Provision VMs & CTs in Proxmox VE from WHMCS
- Allow clients to view/manage VMs using WHMCS Client Area
The original module was written in 2 months by @cybercoder for sale online in 2016, though didn't sell any copies so they kindly open-sourced it and removed the licensing requirement. The manual PDF files are due to be updated (these still mention licensing - ignore this)
https://marketplace.whmcs.com/product/6935-proxmox-ve-for-whmcs
🎯 MODULE SYSTEM REQUIREMENTS 🎯
- (WHMCS) v8.x.x stable (HTTPS)
- (WHMCS) Service ID >100
- (PHP) v8.x.x (stable)
- (Proxmox) VE v7/8 (current)
- (Proxmox) 2 users (API/VNC)
SID >100: The WHMCS Service ID requirement is CRITICAL, as Proxmox reserves VMIDs <100.
If you don't have enough services (of any status) in WHMCS (DB: tblhosting.id), create enough dummy/test entries to reach Service ID 101+.
✅ MODULE INSTALL & CONFIG ✅
Once you have uploaded, activated and made the WHMCS Module available to Administrators, you need to:
- WHMCS Admin > Addons > Proxmox VE for WHMCS > Module Config > VNC Secret (see below)
- WHMCS Admin > Addons > Proxmox VE for WHMCS > Add KVM/LXC Plan/s
- WHMCS Admin > Addons > Proxmox VE for WHMCS > Add an IP Pool
- WHMCS Admin > Config > Products/Services > New Service
For now, please use the Manual PDFs as supplementary information, re: ISO files, LXC templates, etc. This is out-dated though still helpful contextually - please read the note at the top of this README.
🥽 noVNC CONSOLE TUNNELING 🥽
To access VNC via WHMCS Client Area, you need to:
- Follow the PVE User Requirement below
- PVE and WHMCS on the same Domain Name*
- Have valid PTR/rDNS for the PVE Address
WIP NOTE: noVNC has been overhauled. It is not guaranteed, nor the project at all. :-)
* = You must use different Subdomains on the same Domain Name, for the cookie (anti-CSRF).
* = If your Domain Name has a 2-part TLD (ie. co.uk) then you will need to fork & amend novnc_router.php - ideally we/someone will optimise this to better cater to all formats.
👥 PROXMOX USER REQUIREMENT 👥
You must have a root (etc) account to Create/Access services. Configured via WHMCS Config > Servers.
Additionally, to improve security, for VNC you must have a Restricted User. "" via Module Config.
For the VNC User in Proxmox you need to:
- Create User Group "VNC" via PVE > Datacenter / Permissions / Group
- Create new User "vnc" > Datacenter / Permissions / Users - select Group: "VNC", Realm: pve
- Create new Role -> Datacenter / Permissions / Roles - select Name: "VNC", Privileges: VM.Console (only)
- Add permission to access VNC -> Datacenter / Node / VM / Permissions / Add Group Permissions - select Group: "VNC", Role: "VNC"
- Configure the WHMCS > Modules > Proxmox VE for WHMCS > Module Config > VNC Secret with 'vnc' password.
🤬 ABUSE - ZERO TOLERANCE 🤬
NOTE: This module has been overhauled and remains in functionally-OK beta.
Your support is welcomed per the spirit of FOSS (Free Open-source Software)!
If you cannot accept this, do not download nor use the code. Complaints, nasty reviews, and similar behaviour is against the spirit of FOSS and will not be tolerated. Be grateful & considerate - thank you!
🆘 TECHNICAL SUPPORT 🆘
Wiki: https://github.com/The-Network-Crew/Proxmox-VE-for-WHMCS/wiki
Including logs, details, steps to reproduce, etc, please raise an Issue.
Information we will need, at a minimum:
- (PHP) error_log contents
- (WHMCS) Module Debug Log contents
- (Configs) WHMCS/PHP/Module/Proxmox/etc
- (PVE) Logs from Proxmox Host (pveproxy etc)
- (Reproduction) pvesh/etc variants of failing calls
Please note that this is FOSS and Support is not guaranteed.
This module is licensed via the GNU General Public License v3.0.
🖥️ LIBRARIES & DEPENDENCIES 🖥️
- PHP Client for PVE2 API (Dec 5th, 2022)
- TigerVNC VncViewer.jar (v1.13.1 in repo)
- noVNC HTML5 Viewer (v1.4.0 in repo)
📄 DOCUMENTATION & RESOURCES 📄
- Proxmox API: https://pve.proxmox.com/pve-docs/api-viewer/
- TigerVNC: https://github.com/TigerVNC/tigervnc/wiki
- noVNC: https://github.com/novnc/noVNC/wiki
- WHMCS: https://developers.whmcs.com/
🎉 CONTRIBUTING TO THE MODULE 🎉
If you'd like to contribute to the Module, please open a PR.
We would like to thank @cybercoder and @WaldperlachFabi for their original contributions and troubleshooting assistance respectively. FOSS is only possible thanks to dedicated individuals!