diff --git a/pve-mod-all.sh b/pve-mod-all.sh index 914b478..9229cca 100644 --- a/pve-mod-all.sh +++ b/pve-mod-all.sh @@ -3,7 +3,7 @@ # This script's working directory SCRIPT_CWD="$(dirname "$(readlink -f "$0")")" -MODS="pve-mod-gui-temp.sh pve-mod-nag-screen.sh" +MODS="pve-mod-gui-sensors.sh pve-mod-nag-screen.sh" ACTION=${1:-install} for m in $MODS; do diff --git a/pve-mod-gui-temp.sh b/pve-mod-gui-sensors.sh similarity index 99% rename from pve-mod-gui-temp.sh rename to pve-mod-gui-sensors.sh index 4597c53..81e7eb9 100644 --- a/pve-mod-gui-temp.sh +++ b/pve-mod-gui-sensors.sh @@ -7,6 +7,7 @@ # Display configuration for HDD, NVME, CPU # Set to 0 to disable line breaks +# Note: use these settings only if the displayed layout is broken CPU_ITEMS_PER_ROW=0; NVME_ITEMS_PER_ROW=0; HDD_ITEMS_PER_ROW=0; @@ -165,7 +166,7 @@ function configure { else warn "No fan speeds found." enableFanSpeed=false - fi + fi echo # add a new line } @@ -350,12 +351,12 @@ function install_mod { if [ $enableNvmeTemp = true -o $enableHddTemp = true ]; then sed -i "/^Ext.define('PVE.node.StatusView',/ { - :a; + :a; /items:/!{N;ba;} :b; /'thermal.*},/!{N;bb;} - a\ - \\ + a\ + \\ {\n\ xtype: 'box',\n\ colspan: 2,\n\ @@ -387,7 +388,6 @@ function install_mod { textField: 'sensorsOutput',\n\ renderer: function(value) {\n\ const objValue = JSON.parse(value);\n\ -\n\ let speeds = [];\n\ \n\ // Loop through the parent keys\n\ @@ -412,15 +412,15 @@ function install_mod { \n\ return '
' + (speeds.length > 0 ? speeds.join(' | ') : 'N/A') + '
';\n\ }\n\ - }, - }" "$pvemanagerlibjs" + }, + }" "$pvemanagerlibjs" fi # Add an empty line to separate modified items as a visual group # NOTE: Check for the presence of items in the reverse order of display local lastItemId="" if [ $enableHddTemp = true ]; then - lastItemId="thermalHdd" + lastItemId="thermalHdd" elif [ $enableNvmeTemp = true ]; then lastItemId="thermalNvme" elif [ $enableFanSpeed = true ]; then @@ -428,7 +428,7 @@ function install_mod { else lastItemId="thermalCpu" fi - + if [ -n "$lastItemId" ]; then sed -i "/^Ext.define('PVE.node.StatusView',/ { :a; @@ -442,7 +442,7 @@ function install_mod { }, }" "$pvemanagerlibjs" fi - + # Move the node summary box into its own container sed -i "/^\s*nodeStatus: nodeStatus,/ { :a @@ -464,7 +464,7 @@ function install_mod { ]\n\ }, }" "$pvemanagerlibjs" - + # Deactivate the original box instance sed -i "/^\s*nodeStatus: nodeStatus,/ { :a diff --git a/pve-mod-sensors.png b/pve-mod-sensors.png new file mode 100644 index 0000000..e3f068f Binary files /dev/null and b/pve-mod-sensors.png differ diff --git a/pve-mod-temp.png b/pve-mod-temp.png deleted file mode 100644 index caaee2c..0000000 Binary files a/pve-mod-temp.png and /dev/null differ diff --git a/readme.md b/readme.md index 94ce2ac..03a64e5 100644 --- a/readme.md +++ b/readme.md @@ -1,18 +1,18 @@ -# Proxmox mods and scripts -A small collection of script and mods for Proxmox +# Proxmox Virtual Environment mods and scripts +A small collection of scripts and mods for Proxmox Virtual Environment (PVE) If you find this helpful, a small donation is appreciated, [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K8XPMSEBERH3W). -## Node temperature view -(Tested compatibility: 7.x, 8.0.x, 8.1.x, 8.2.x) +## Node sensor readings view +(Tested compatibility: 7.x - 8.2) -This bash script installs a modification to the Proxmox Virtual Environment (PVE) web user interface (UI) to display temperature information in a flexible manner for CPU, NVME and HDDs/SSDs. Fan speeds are also displayed, if available. +This bash script installs a modification to the Proxmox Virtual Environment (PVE) web user interface (UI) to display sensor readings in a flexible manner. Supported are CPU, NVMe/HDD/SSD temperatures and fan speeds. The modification includes three main steps: -1. Create backups of the original files located at `/usr/share/pve-manager/js/pvemanagerlib.js` and `/usr/share/perl5/PVE/API2/Nodes.pm` in the `/root/backup` directory. -2. Add a new line to the `Nodes.pm` file that reads the thermal state information of the host using the `sensors` command. -3. Modify the `pvemanagerlib.js` file to expand the space in the StatusView and add a new item to the items array that displays the temperature information in Celsius for CPU, NVME and HDDs/SSDs. +1. Create backups of the original files located at `/usr/share/pve-manager/js/pvemanagerlib.js` and `/usr/share/perl5/PVE/API2/Nodes.pm` in the `backup` directory relative to the script location. +2. Add a new line to the `Nodes.pm` file that enables host system sensor readings using the `sensors` command. +3. Modify the `pvemanagerlib.js` file to expand the space in the host summary view and add new items that displays the temperature information in Celsius for CPU, NVME and HDDs/SSDs, and fan speeds, if available. The script provides two options: `install` and `uninstall`. The `install` option installs the modification, while the `uninstall` option removes it by copying the backup files to their original location. The script also restarts the `pveproxy` service to apply the changes. @@ -21,16 +21,16 @@ For HDDs/SSDs readings to work, the kernal module drivetemp must be installed. ### Install ``` apt-get install lm-sensors -wget https://raw.githubusercontent.com/Meliox/PVE-mods/main/pve-mod-gui-temp.sh +wget https://raw.githubusercontent.com/Meliox/PVE-mods/main/pve-mod-gui-sensors.sh ``` Or use git clone. -![Promxox temp mod](https://github.com/Meliox/PVE-mods/blob/main/pve-mod-temp.png?raw=true) +![Promxox temp mod](https://github.com/Meliox/PVE-mods/blob/main/pve-mod-sensors.png?raw=true) Adjustments are available in the first part of the script, where paths can be edited, cpucore offset and display information. ## Nag screen deactivation -(Tested compatibility: 7.x, 8.0.x, 8.1.x, 8.2.x) +(Tested compatibility: 7.x - 8.2) This bash script installs a modification to the Proxmox Virtual Environment (PVE) web user interface (UI) which deactivates the subscription nag screen. The script provides two options: `install` and `uninstall`. The `install` option installs the modification, while the `uninstall` option removes it by copying the backup files to their original location.