From 4e1ade4c2892a08ebaa0521aa942473407fcfa2a Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Tue, 24 Feb 2026 11:38:15 +0100 Subject: [PATCH] bump various scripts from Node 22 to 24 (#12265) * bump(node): Node 22 to 24 for Tier 1 projects Bump Node.js from 22 to 24 in install and ct update scripts for projects where upstream already uses Node 24 in their Dockerfile/package.json: - Cross-seed (engines >=24, Dockerfile node:24-alpine) - Matterbridge (engines >=24.0.0, Dockerfile node:24-trixie-slim) - Manyfold (volta.node 24.13.0) - Pangolin (Dockerfile node:24-alpine) - ROMM (engines 24, nvm install 24) - SnowShare (Dockerfile node:24-alpine) - Verdaccio (engines >=18, Dockerfile node:24-alpine) Also adds missing NODE_VERSION setup_nodejs calls to ct update scripts for cross-seed, pangolin, romm, snowshare, and manyfold. * formatting * fix: pin NODE_VERSION for nodecast-tv and wealthfolio nodecast-tv: NODE_VERSION=20 (upstream Dockerfile uses nodesource/setup_20.x) wealthfolio: NODE_VERSION=20 (upstream Dockerfile uses node:20-alpine) * ci: add weekly Node.js version drift check workflow Scans all install scripts using setup_nodejs, fetches upstream package.json (engines.node) and Dockerfile (FROM node:XX), compares with our NODE_VERSION and opens/updates a GitHub issue on mismatch. Runs weekly on Monday at 06:00 UTC. * remove wf - seperate branch --- ct/cross-seed.sh | 34 +++++++------- ct/manyfold.sh | 2 + ct/matterbridge.sh | 2 +- ct/pangolin.sh | 2 + ct/romm.sh | 82 +++++++++++++++++---------------- ct/snowshare.sh | 2 + ct/verdaccio.sh | 2 +- install/cross-seed-install.sh | 2 +- install/manyfold-install.sh | 2 +- install/matterbridge-install.sh | 2 +- install/nodecast-tv-install.sh | 2 +- install/pangolin-install.sh | 2 +- install/romm-install.sh | 2 +- install/snowshare-install.sh | 2 +- install/verdaccio-install.sh | 2 +- install/wealthfolio-install.sh | 2 +- 16 files changed, 77 insertions(+), 67 deletions(-) diff --git a/ct/cross-seed.sh b/ct/cross-seed.sh index c08e12688..796a3907f 100644 --- a/ct/cross-seed.sh +++ b/ct/cross-seed.sh @@ -20,26 +20,28 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources + header_info + check_container_storage + check_container_resources - if command -v cross-seed &>/dev/null; then - current_version=$(cross-seed --version) - latest_version=$(npm show cross-seed version) - if [ "$current_version" != "$latest_version" ]; then - msg_info "Updating cross-seed from version v${current_version} to v${latest_version}" - $STD npm install -g cross-seed@latest - systemctl restart cross-seed - msg_ok "Updated successfully!" - else - msg_ok "cross-seed is already at v${current_version}" - fi + NODE_VERSION="24" setup_nodejs + + if command -v cross-seed &>/dev/null; then + current_version=$(cross-seed --version) + latest_version=$(npm show cross-seed version) + if [ "$current_version" != "$latest_version" ]; then + msg_info "Updating cross-seed from version v${current_version} to v${latest_version}" + $STD npm install -g cross-seed@latest + systemctl restart cross-seed + msg_ok "Updated successfully!" else - msg_error "No cross-seed Installation Found!" - exit + msg_ok "cross-seed is already at v${current_version}" fi + else + msg_error "No cross-seed Installation Found!" exit + fi + exit } start diff --git a/ct/manyfold.sh b/ct/manyfold.sh index 1077ccb54..7db40346c 100644 --- a/ct/manyfold.sh +++ b/ct/manyfold.sh @@ -28,6 +28,8 @@ function update_script() { exit fi + NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs + if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then msg_info "Stopping Services" systemctl stop manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1 diff --git a/ct/matterbridge.sh b/ct/matterbridge.sh index 1caf04fc0..a58ce61d9 100644 --- a/ct/matterbridge.sh +++ b/ct/matterbridge.sh @@ -29,7 +29,7 @@ function update_script() { fi $STD apt update $STD apt upgrade -y - NODE_VERSION="22" NODE_MODULE="matterbridge" setup_nodejs + NODE_VERSION="24" NODE_MODULE="matterbridge" setup_nodejs msg_ok "Updated successfully!" exit } diff --git a/ct/pangolin.sh b/ct/pangolin.sh index 5379a5299..923ab5d60 100644 --- a/ct/pangolin.sh +++ b/ct/pangolin.sh @@ -29,6 +29,8 @@ function update_script() { exit fi + NODE_VERSION="24" setup_nodejs + if check_for_gh_release "pangolin" "fosrl/pangolin"; then msg_info "Stopping Service" systemctl stop pangolin diff --git a/ct/romm.sh b/ct/romm.sh index ded588dd1..cd49cd7d3 100644 --- a/ct/romm.sh +++ b/ct/romm.sh @@ -20,48 +20,50 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources + header_info + check_container_storage + check_container_resources - if [[ ! -d /opt/romm ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "romm" "rommapp/romm"; then - msg_info "Stopping Services" - systemctl stop romm-backend romm-worker romm-scheduler romm-watcher - msg_ok "Stopped Services" - - msg_info "Backing up configuration" - cp /opt/romm/.env /opt/romm/.env.backup - msg_ok "Backed up configuration" - - fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm" - - msg_info "Updating ROMM" - cp /opt/romm/.env.backup /opt/romm/.env - cd /opt/romm - $STD uv sync --all-extras - cd /opt/romm/backend - $STD uv run alembic upgrade head - cd /opt/romm/frontend - $STD npm install - $STD npm run build - # Merge static assets into dist folder - cp -rf /opt/romm/frontend/assets/* /opt/romm/frontend/dist/assets/ - mkdir -p /opt/romm/frontend/dist/assets/romm - ln -sfn /var/lib/romm/resources /opt/romm/frontend/dist/assets/romm/resources - ln -sfn /var/lib/romm/assets /opt/romm/frontend/dist/assets/romm/assets - msg_ok "Updated ROMM" - - msg_info "Starting Services" - systemctl start romm-backend romm-worker romm-scheduler romm-watcher - msg_ok "Started Services" - msg_ok "Updated successfully" - fi + if [[ ! -d /opt/romm ]]; then + msg_error "No ${APP} Installation Found!" exit + fi + + NODE_VERSION="24" setup_nodejs + + if check_for_gh_release "romm" "rommapp/romm"; then + msg_info "Stopping Services" + systemctl stop romm-backend romm-worker romm-scheduler romm-watcher + msg_ok "Stopped Services" + + msg_info "Backing up configuration" + cp /opt/romm/.env /opt/romm/.env.backup + msg_ok "Backed up configuration" + + fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm" + + msg_info "Updating ROMM" + cp /opt/romm/.env.backup /opt/romm/.env + cd /opt/romm + $STD uv sync --all-extras + cd /opt/romm/backend + $STD uv run alembic upgrade head + cd /opt/romm/frontend + $STD npm install + $STD npm run build + # Merge static assets into dist folder + cp -rf /opt/romm/frontend/assets/* /opt/romm/frontend/dist/assets/ + mkdir -p /opt/romm/frontend/dist/assets/romm + ln -sfn /var/lib/romm/resources /opt/romm/frontend/dist/assets/romm/resources + ln -sfn /var/lib/romm/assets /opt/romm/frontend/dist/assets/romm/assets + msg_ok "Updated ROMM" + + msg_info "Starting Services" + systemctl start romm-backend romm-worker romm-scheduler romm-watcher + msg_ok "Started Services" + msg_ok "Updated successfully" + fi + exit } start diff --git a/ct/snowshare.sh b/ct/snowshare.sh index 3ee8ccbfa..5a3a4f3df 100644 --- a/ct/snowshare.sh +++ b/ct/snowshare.sh @@ -28,6 +28,8 @@ function update_script() { exit fi + NODE_VERSION="24" setup_nodejs + if check_for_gh_release "snowshare" "TuroYT/snowshare"; then msg_info "Stopping Service" systemctl stop snowshare diff --git a/ct/verdaccio.sh b/ct/verdaccio.sh index c15d061a0..e8fb5424a 100644 --- a/ct/verdaccio.sh +++ b/ct/verdaccio.sh @@ -33,7 +33,7 @@ function update_script() { $STD apt upgrade -y msg_ok "Updated LXC Container" - NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs + NODE_VERSION="24" NODE_MODULE="verdaccio" setup_nodejs systemctl restart verdaccio msg_ok "Updated successfully!" exit diff --git a/install/cross-seed-install.sh b/install/cross-seed-install.sh index 7aa42aeeb..5d36af3bc 100644 --- a/install/cross-seed-install.sh +++ b/install/cross-seed-install.sh @@ -13,7 +13,7 @@ setting_up_container network_check update_os -NODE_VERSION="22" setup_nodejs +NODE_VERSION="24" setup_nodejs msg_info "Setup Cross-Seed" $STD npm install cross-seed@latest -g diff --git a/install/manyfold-install.sh b/install/manyfold-install.sh index 0c59540e4..fddaf63c2 100644 --- a/install/manyfold-install.sh +++ b/install/manyfold-install.sh @@ -26,7 +26,7 @@ msg_ok "Installed Dependencies" setup_imagemagick PG_VERSION="16" setup_postgresql PG_DB_NAME="manyfold" PG_DB_USER="manyfold" setup_postgresql_db -NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs +NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs fetch_and_deploy_gh_release "manyfold" "manyfold3d/manyfold" "tarball" "latest" "/opt/manyfold/app" diff --git a/install/matterbridge-install.sh b/install/matterbridge-install.sh index 3542e370b..2ed698aba 100644 --- a/install/matterbridge-install.sh +++ b/install/matterbridge-install.sh @@ -15,7 +15,7 @@ update_os msg_info "Install Matterbridge" mkdir -p /root/Matterbridge -NODE_VERSION="22" NODE_MODULE="matterbridge" setup_nodejs +NODE_VERSION="24" NODE_MODULE="matterbridge" setup_nodejs msg_ok "Installed Matterbridge" msg_info "Creating Service" diff --git a/install/nodecast-tv-install.sh b/install/nodecast-tv-install.sh index 07a6b79e7..d4b3652bd 100644 --- a/install/nodecast-tv-install.sh +++ b/install/nodecast-tv-install.sh @@ -14,7 +14,7 @@ network_check update_os fetch_and_deploy_gh_release "nodecast-tv" "technomancer702/nodecast-tv" -setup_nodejs +NODE_VERSION="20" setup_nodejs msg_info "Installing Dependencies" $STD apt install -y ffmpeg diff --git a/install/pangolin-install.sh b/install/pangolin-install.sh index 301ba2bf2..40be4c5ca 100644 --- a/install/pangolin-install.sh +++ b/install/pangolin-install.sh @@ -19,7 +19,7 @@ $STD apt install -y \ iptables msg_ok "Installed Dependencies" -NODE_VERSION="22" setup_nodejs +NODE_VERSION="24" setup_nodejs fetch_and_deploy_gh_release "pangolin" "fosrl/pangolin" "tarball" fetch_and_deploy_gh_release "gerbil" "fosrl/gerbil" "singlefile" "latest" "/usr/bin" "gerbil_linux_amd64" fetch_and_deploy_gh_release "traefik" "traefik/traefik" "prebuild" "latest" "/usr/bin" "traefik_v*_linux_amd64.tar.gz" diff --git a/install/romm-install.sh b/install/romm-install.sh index 095a4b3ec..cf52982c7 100644 --- a/install/romm-install.sh +++ b/install/romm-install.sh @@ -42,7 +42,7 @@ $STD apt install -y \ msg_ok "Installed Dependencies" PYTHON_VERSION="3.13" setup_uv -NODE_VERSION="22" setup_nodejs +NODE_VERSION="24" setup_nodejs setup_mariadb MARIADB_DB_NAME="romm" MARIADB_DB_USER="romm" setup_mariadb_db diff --git a/install/snowshare-install.sh b/install/snowshare-install.sh index f85c55474..98c91fee4 100644 --- a/install/snowshare-install.sh +++ b/install/snowshare-install.sh @@ -13,7 +13,7 @@ setting_up_container network_check update_os -NODE_VERSION="22" setup_nodejs +NODE_VERSION="24" setup_nodejs PG_VERSION="17" setup_postgresql PG_DB_USER="snowshare" PG_DB_NAME="snowshare" setup_postgresql_db fetch_and_deploy_gh_release "snowshare" "TuroYT/snowshare" "tarball" diff --git a/install/verdaccio-install.sh b/install/verdaccio-install.sh index 723695101..510476706 100644 --- a/install/verdaccio-install.sh +++ b/install/verdaccio-install.sh @@ -17,7 +17,7 @@ msg_info "Installing Dependencies" $STD apt install -y build-essential msg_ok "Installed Dependencies" -NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs +NODE_VERSION="24" NODE_MODULE="verdaccio" setup_nodejs msg_info "Configuring Verdaccio" mkdir -p /opt/verdaccio/config diff --git a/install/wealthfolio-install.sh b/install/wealthfolio-install.sh index 2d689081d..f2110e959 100644 --- a/install/wealthfolio-install.sh +++ b/install/wealthfolio-install.sh @@ -23,7 +23,7 @@ $STD apt install -y \ msg_ok "Installed Dependencies" setup_rust -NODE_MODULE="pnpm" setup_nodejs +NODE_VERSION="20" NODE_MODULE="pnpm" setup_nodejs fetch_and_deploy_gh_release "wealthfolio" "afadil/wealthfolio" "tarball" msg_info "Building Frontend (patience)"