mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Refactor & Bump to Node24: Zigbee2MQTT (#5638)
This commit is contained in:
		@@ -9,7 +9,7 @@ APP="Zigbee2MQTT"
 | 
				
			|||||||
var_tags="${var_tags:-smarthome;zigbee;mqtt}"
 | 
					var_tags="${var_tags:-smarthome;zigbee;mqtt}"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-1024}"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-5}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-0}"
 | 
					var_unprivileged="${var_unprivileged:-0}"
 | 
				
			||||||
@@ -27,16 +27,28 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ -f ~/.zigbee2mqtt ]]; then
 | 
				
			||||||
 | 
					    CURRENT="$(cat ~/.zigbee2mqtt)"
 | 
				
			||||||
 | 
					  elif [[ -f /opt/${APP}_version.txt ]]; then
 | 
				
			||||||
 | 
					    CURRENT="$(cat /opt/${APP}_version.txt)"
 | 
				
			||||||
 | 
					    rm -f /opt/${APP}_version.txt
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    CURRENT=""
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					  if [[ "$RELEASE" != "$CURRENT" ]]; then
 | 
				
			||||||
 | 
					    if ! command -v jq &>/dev/null; then
 | 
				
			||||||
 | 
					      $STD apt-get update
 | 
				
			||||||
 | 
					      $STD apt-get install -y jq
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    NODE_VERSION=24 NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop zigbee2mqtt
 | 
					    systemctl stop zigbee2mqtt
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating pnpm"
 | 
					 | 
				
			||||||
    $STD npm install -g pnpm@10.4.1
 | 
					 | 
				
			||||||
    msg_ok "Updated pnpm"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Creating Backup"
 | 
					    msg_info "Creating Backup"
 | 
				
			||||||
    rm -rf /opt/${APP}_backup*.tar.gz
 | 
					    rm -rf /opt/${APP}_backup*.tar.gz
 | 
				
			||||||
    mkdir -p /opt/z2m_backup
 | 
					    mkdir -p /opt/z2m_backup
 | 
				
			||||||
@@ -44,12 +56,9 @@ function update_script() {
 | 
				
			|||||||
    mv /opt/zigbee2mqtt/data /opt/z2m_backup
 | 
					    mv /opt/zigbee2mqtt/data /opt/z2m_backup
 | 
				
			||||||
    msg_ok "Backup Created"
 | 
					    msg_ok "Backup Created"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fetch_and_deploy_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt" "tarball" "latest" "/opt/zigbee2mqtt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
    cd /opt
 | 
					 | 
				
			||||||
    curl -fsSL "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip")
 | 
					 | 
				
			||||||
    $STD unzip ${RELEASE}.zip
 | 
					 | 
				
			||||||
    rm -rf /opt/zigbee2mqtt
 | 
					 | 
				
			||||||
    mv zigbee2mqtt-${RELEASE} /opt/zigbee2mqtt
 | 
					 | 
				
			||||||
    rm -rf /opt/zigbee2mqtt/data
 | 
					    rm -rf /opt/zigbee2mqtt/data
 | 
				
			||||||
    mv /opt/z2m_backup/data /opt/zigbee2mqtt
 | 
					    mv /opt/z2m_backup/data /opt/zigbee2mqtt
 | 
				
			||||||
    cd /opt/zigbee2mqtt
 | 
					    cd /opt/zigbee2mqtt
 | 
				
			||||||
@@ -63,9 +72,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /opt/z2m_backup
 | 
					    rm -rf /opt/z2m_backup
 | 
				
			||||||
    rm -rf /opt/${RELEASE}.zip
 | 
					 | 
				
			||||||
    msg_ok "Cleaned up"
 | 
					    msg_ok "Cleaned up"
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								frontend/public/json/zigbee2mqtt.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								frontend/public/json/zigbee2mqtt.json
									
									
									
										generated
									
									
									
								
							@@ -21,7 +21,7 @@
 | 
				
			|||||||
      "resources": {
 | 
					      "resources": {
 | 
				
			||||||
        "cpu": 2,
 | 
					        "cpu": 2,
 | 
				
			||||||
        "ram": 1024,
 | 
					        "ram": 1024,
 | 
				
			||||||
        "hdd": 4,
 | 
					        "hdd": 5,
 | 
				
			||||||
        "os": "debian",
 | 
					        "os": "debian",
 | 
				
			||||||
        "version": "12"
 | 
					        "version": "12"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,17 +19,15 @@ $STD apt-get install -y \
 | 
				
			|||||||
  make \
 | 
					  make \
 | 
				
			||||||
  g++ \
 | 
					  g++ \
 | 
				
			||||||
  gcc \
 | 
					  gcc \
 | 
				
			||||||
  ca-certificates
 | 
					  ca-certificates \
 | 
				
			||||||
 | 
					  jq
 | 
				
			||||||
msg_ok "Installed Dependencies"
 | 
					msg_ok "Installed Dependencies"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
 | 
					NODE_VERSION="24" NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fetch_and_deploy_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt" "tarball" "latest" "/opt/zigbee2mqtt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_info "Setting up Zigbee2MQTT"
 | 
					msg_info "Setting up Zigbee2MQTT"
 | 
				
			||||||
cd /opt
 | 
					 | 
				
			||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					 | 
				
			||||||
curl -fsSL "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}.zip"
 | 
					 | 
				
			||||||
$STD unzip ${RELEASE}.zip
 | 
					 | 
				
			||||||
mv zigbee2mqtt-${RELEASE} /opt/zigbee2mqtt
 | 
					 | 
				
			||||||
cd /opt/zigbee2mqtt/data
 | 
					cd /opt/zigbee2mqtt/data
 | 
				
			||||||
mv configuration.example.yaml configuration.yaml
 | 
					mv configuration.example.yaml configuration.yaml
 | 
				
			||||||
cd /opt/zigbee2mqtt
 | 
					cd /opt/zigbee2mqtt
 | 
				
			||||||
@@ -60,7 +58,6 @@ motd_ssh
 | 
				
			|||||||
customize
 | 
					customize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_info "Cleaning up"
 | 
					msg_info "Cleaning up"
 | 
				
			||||||
rm -rf /opt/${RELEASE}.zip
 | 
					 | 
				
			||||||
$STD apt-get -y autoremove
 | 
					$STD apt-get -y autoremove
 | 
				
			||||||
$STD apt-get -y autoclean
 | 
					$STD apt-get -y autoclean
 | 
				
			||||||
msg_ok "Cleaned"
 | 
					msg_ok "Cleaned"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user