mirror of
https://github.com/The-Network-Crew/Proxmox-VE-for-WHMCS.git
synced 2026-04-11 15:18:39 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81e169995b |
@@ -5,6 +5,11 @@ All notable changes to Proxmox VE for WHMCS will be documented in this file.
|
||||
|
||||
https://github.com/The-Network-Crew/Proxmox-VE-for-WHMCS/milestones
|
||||
|
||||
## [1.2.19] - 2025-10-24 - _"Remove TigerVNC (Java)"_
|
||||
|
||||
### 💅 Polish
|
||||
- Removed TigerVNC (Java): Retained HTML5 console
|
||||
|
||||
## [1.2.18] - 2025-10-19 - _"Client Area detail" v2_
|
||||
|
||||
### 💅 Polish
|
||||
@@ -44,7 +49,7 @@ https://github.com/The-Network-Crew/Proxmox-VE-for-WHMCS/milestones
|
||||
|
||||
### 💅 Polish
|
||||
- NIC #2: Split info (MAC, link status, etc) to multiple lines
|
||||
- SQL Expansion: Prepare for Nodes/ISOs/TPLs/Logs/SSH Keys/etc
|
||||
- SQL Expansion: Prepare for Nodes/ISOs/TPLs/Logs/Keys/etc (#127)
|
||||
- Deactivation Keeps Data: No table drops on de-activate (#160)
|
||||
|
||||
### 🐛 Bug Fix
|
||||
|
||||
@@ -166,7 +166,7 @@ Once you have it configured, clicking noVNC in Client Area provides direct link
|
||||
> Load noVNC with `logging=debug` added to the query string, ie. `vnc.html?logging=debug`<br>
|
||||
> _Or in Settings change Logging to debug-level, then open JS Console before reloading noVNC._
|
||||
>
|
||||
> Typically, 401 No Ticket from PVE (1006 Connection Closed via noVNC) is due to cross-domain attempts being made, ie. WHMCS on domain1.com and PVE on domain2.com. You must use subdomains on the same Domain, with PTR, etc - else it won't work.
|
||||
> Typically, 401 No Ticket from PVE (1006 Connection Closed via noVNC) is due to cross-domain attempts being made, ie. WHMCS on domain1.com and PVE on domain2.com. You must use subdomains on the same Domain, with PTR, etc - else it won't work. **Please take the time to read this documentation.**
|
||||
|
||||
## 🌐 3. Networking: IPv4 Pools, IPv6, vmbr/SDN
|
||||
|
||||
@@ -380,17 +380,14 @@ There are new features deployed into PVE upstream which are exciting and may be
|
||||
| License | Dependency | In-use Ver. | Link to Repository, etc.|
|
||||
|---------|------------|-------------|-------------------------|
|
||||
| **(MIT)** | PHP Client for PVE2 API | **2022/Dec/05** | https://github.com/CpuID/pve2-api-php-client |
|
||||
| **(GPLv2)** | TigerVNC VncViewer.jar | **v1.15.0** | https://sourceforge.net/projects/tigervnc/files/stable/ |
|
||||
| **(MPLv2)** | noVNC HTML5 Viewer | **v1.6.0** | https://github.com/novnc/noVNC/ |
|
||||
| **(GPLv3)** | SPICE HTML5 Viewer | **v0.3** | https://gitlab.freedesktop.org/spice/spice-html5/ |
|
||||
| **(MIT)** | IPv4/SN Validation | **August 2012** | https://github.com/tapmodo/php-ipv4/ |
|
||||
|
||||
# 📄 DIY: Documentation & Resources
|
||||
|
||||
| Developer | Link to Documentation, etc. |
|
||||
|-----------|-----------------------------|
|
||||
| **(PVE API)** | https://pve.proxmox.com/pve-docs/api-viewer/ |
|
||||
| **(TigerVNC)** | https://github.com/TigerVNC/tigervnc/wiki |
|
||||
| **(PVE)** | https://pve.proxmox.com/pve-docs/api-viewer/ |
|
||||
| **(noVNC)** | https://github.com/novnc/noVNC/wiki |
|
||||
| **(WHMCS)** | https://developers.whmcs.com & https://classdocs.whmcs.com |
|
||||
| **(psABIs)** | https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build |
|
||||
|
||||
@@ -45,7 +45,7 @@ function pvewhmcs_config() {
|
||||
|
||||
// VERSION: also stored in repo/version (for update-available checker)
|
||||
function pvewhmcs_version(){
|
||||
return "1.2.18";
|
||||
return "1.2.19";
|
||||
}
|
||||
|
||||
// WHMCS MODULE: ACTIVATION of the ADDON MODULE
|
||||
|
||||
Binary file not shown.
@@ -883,7 +883,6 @@ function pvewhmcs_ClientAreaCustomButtonArray() {
|
||||
"<i class='fa fa-2x fa-chart-bar'></i> Statistics" => "vmStat",
|
||||
"<i class='fa fa-2x fa-search'></i> Check Status" => "vmCheck",
|
||||
"<img src='./modules/servers/pvewhmcs/img/novnc.png'/> noVNC (HTML5)" => "noVNC",
|
||||
"<img src='./modules/servers/pvewhmcs/img/tigervnc.png'/> TigerVNC (Java)" => "javaVNC",
|
||||
);
|
||||
return $buttonarray;
|
||||
}
|
||||
@@ -1171,44 +1170,6 @@ function pvewhmcs_SPICE($params) {
|
||||
}
|
||||
}
|
||||
|
||||
// VNC: Console access to VM/CT via TigerVNC
|
||||
function pvewhmcs_javaVNC($params){
|
||||
// Check if VNC Secret is configured in Module Config, fail early if not. (#27)
|
||||
if (strlen(Capsule::table('mod_pvewhmcs')->where('id', '1')->value('vnc_secret'))<15) {
|
||||
throw new Exception("PVEWHMCS Error: VNC Secret in Module Config either not set or not long enough. Recommend 20+ characters for security.");
|
||||
}
|
||||
// Get login credentials then make the Proxmox connection attempt.
|
||||
$serverip = $params["serverip"];
|
||||
$serverusername = 'vnc';
|
||||
$serverpassword = Capsule::table('mod_pvewhmcs')->where('id', '1')->value('vnc_secret');
|
||||
$proxmox = new PVE2_API($serverip, $serverusername, "pve", $serverpassword);
|
||||
if ($proxmox->login()) {
|
||||
// Get first node name
|
||||
$nodes = $proxmox->get_node_list();
|
||||
$first_node = $nodes[0];
|
||||
unset($nodes);
|
||||
// Early prep work
|
||||
$guest = Capsule::table('mod_pvewhmcs_vms')->where('id','=',$params['serviceid'])->get()[0] ;
|
||||
$vncparams = array();
|
||||
$vm_vncproxy = $proxmox->post('/nodes/'.$first_node.'/'.$guest->vtype.'/'.$guest->vmid .'/vncproxy', $vncparams) ;
|
||||
// Java-specific params
|
||||
$javaVNCparams = array() ;
|
||||
$javaVNCparams[0] = $serverip ;
|
||||
$javaVNCparams[1] = str_replace("\n","|",$vm_vncproxy['cert']) ;
|
||||
$javaVNCparams[2] = $vm_vncproxy['port'] ;
|
||||
$javaVNCparams[3] = $vm_vncproxy['user'] ;
|
||||
$javaVNCparams[4] = $vm_vncproxy['ticket'] ;
|
||||
// URL preparation to deliver in hyperlink message
|
||||
$url = './modules/servers/pvewhmcs/tigervnc.php?'.http_build_query($javaVNCparams).'' ;
|
||||
$vncreply = '<center style="background-color: green;"><strong>Console (TigerVNC) successfully prepared.<br><a href="'.$url.'" target="_blanK" style="color: Khaki;"><u>Click here</u></a> to launch TigerVNC.</strong></center>' ;
|
||||
// echo '<script>window.open("modules/servers/pvewhmcs/tigervnc.php?'.http_build_query($javaVNCparams).'","VNC","location=0,toolbar=0,menubar=0,scrollbars=1,resizable=1,width=802,height=624")</script>';
|
||||
return $vncreply;
|
||||
} else {
|
||||
$vncreply = 'Failed to prepare TigerVNC. Please contact Technical Support.';
|
||||
return $vncreply;
|
||||
}
|
||||
}
|
||||
|
||||
// PVE API FUNCTION, CLIENT/ADMIN: Start the VM/CT
|
||||
function pvewhmcs_vmStart($params) {
|
||||
// Gather access credentials for PVE, as these are no longer passed for Client Area
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
|
||||
/*
|
||||
Proxmox VE for WHMCS - Addon/Server Modules for WHMCS (& PVE)
|
||||
https://github.com/The-Network-Crew/Proxmox-VE-for-WHMCS/
|
||||
File: /modules/servers/pvewhmcs/tigervnc.php (VNC)
|
||||
|
||||
Copyright (C) The Network Crew Pty Ltd (TNC) & Co.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see https://www.gnu.org/licenses
|
||||
*/
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Serial Console</title>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
PVE_vnc_console_event = function(appletid, action, err) {
|
||||
|
||||
};
|
||||
</script>
|
||||
<?php
|
||||
$applet='<APPLET id=\'pveKVMConsole-1018-vncapp\' CODE=\'com.tigervnc.vncviewer.VncViewer\' ARCHIVE=\'VncViewer.jar\' WIDTH=100% HEIGHT=100%>
|
||||
<param value=\''.$_GET['0'].'\' name=\'host\'>
|
||||
<param value=\''.$_GET['1'].'\' name=\'PVECert\'>
|
||||
<param value=\''.$_GET['2'].'\' name=\'Port\'>
|
||||
<param name=\'USERNAME\' value=\''.$_GET['3'].'\'>
|
||||
<param name=\'PASSWORD\' value=\''.$_GET['4'].'\'>
|
||||
</APPLET>';
|
||||
?>
|
||||
<?php echo $applet ; ?>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user