mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-06-22 07:21:19 +02:00
refactor(tools): centralize Node.js corepack and npm handling in setup_nodejs
Move corepack install/enable into setup_nodejs and update CT scripts to use NODE_MODULE instead of manual corepack calls. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+1
-2
@@ -42,7 +42,7 @@ function update_script() {
|
||||
msg_info "Rebuilding Application"
|
||||
cd /opt/bookorbit
|
||||
PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json)
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack prepare "pnpm@${PNPM_VERSION}" --activate
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm --filter client run build-only
|
||||
@@ -59,7 +59,6 @@ function update_script() {
|
||||
$STD uv pip install --python /opt/bookorbit-python/bin/python -r /opt/bookorbit/server/requirements/kobo-cloudscraper.txt
|
||||
msg_ok "Updated Kobo Python Runtime"
|
||||
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start bookorbit
|
||||
msg_ok "Started Service"
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
|
||||
if check_for_gh_release "dashy" "Lissy93/dashy"; then
|
||||
msg_info "Stopping Service"
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ function update_script() {
|
||||
msg_info "Updating Databasus"
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
cd /opt/databasus/frontend
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack prepare pnpm@latest --activate
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm run build
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
fi
|
||||
export NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
|
||||
msg_info "Updating LXC"
|
||||
$STD apt update
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
|
||||
if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
|
||||
msg_info "Stopping Service"
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ function update_script() {
|
||||
msg_info "Rebuilding Feishin Web"
|
||||
cd /opt/feishin
|
||||
#PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json)
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack prepare "pnpm@10" --activate
|
||||
$STD pnpm install
|
||||
$STD pnpm run build:web
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||
|
||||
msg_info "Updating FlowiseAI (this may take some time)"
|
||||
systemctl stop flowise
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm@latest" setup_nodejs
|
||||
PROJECT_NAME=$(</opt/fumadocs/.projectname)
|
||||
PROJECT_DIR="/opt/fumadocs/${PROJECT_NAME}"
|
||||
SERVICE_NAME="fumadocs_${PROJECT_NAME}.service"
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ function update_script() {
|
||||
check_container_resources
|
||||
|
||||
setup_mariadb
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||
ensure_dependencies git
|
||||
|
||||
msg_info "Updating Ghost"
|
||||
|
||||
+2
-2
@@ -31,7 +31,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack" setup_nodejs
|
||||
|
||||
if check_for_gh_release "gramps-web-api" "gramps-project/gramps-web-api"; then
|
||||
msg_info "Stopping Service"
|
||||
@@ -84,7 +84,7 @@ function update_script() {
|
||||
msg_info "Updating Gramps Web Frontend"
|
||||
cd /opt/gramps-web/frontend
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD corepack enable
|
||||
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
msg_ok "Updated Gramps Web Frontend"
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm@latest" setup_nodejs
|
||||
ensure_dependencies jq
|
||||
|
||||
if check_for_gh_release "homepage" "gethomepage/homepage"; then
|
||||
|
||||
+1
-2
@@ -168,13 +168,12 @@ EOF
|
||||
setup_uv
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "${RELEASE}" "$SRC_DIR"
|
||||
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1] | split("+")[0]' ${SRC_DIR}/package.json)"
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm@${PNPM_VERSION}" setup_nodejs
|
||||
|
||||
msg_info "Updating Immich web and microservices"
|
||||
cd "$SRC_DIR"/server
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
export CI=1
|
||||
corepack enable
|
||||
|
||||
# server build
|
||||
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ function update_script() {
|
||||
cd /opt/invoiceshelf
|
||||
$STD composer install --no-dev --optimize-autoloader
|
||||
if command -v corepack >/dev/null 2>&1; then
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack yarn install
|
||||
$STD corepack yarn build
|
||||
else
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ EOF
|
||||
systemctl stop jellyseerr
|
||||
output=$(git pull --no-rebase)
|
||||
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm@$pnpm_desired" setup_nodejs
|
||||
if echo "$output" | grep -q "Already up to date."; then
|
||||
msg_ok "$APP is already up to date."
|
||||
exit
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn,npm,pm2" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,yarn,npm,pm2" setup_nodejs
|
||||
|
||||
if check_for_gh_release "joplin-server" "laurent22/joplin"; then
|
||||
msg_info "Stopping Services"
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ function update_script() {
|
||||
[[ -d /opt/jotty/config ]] && mv /opt/jotty/config /opt/config
|
||||
msg_ok "Backed up configuration & data"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jotty" "fccview/jotty" "prebuild" "latest" "/opt/jotty" "jotty_*_prebuild.tar.gz"
|
||||
|
||||
msg_info "Restoring configuration & data"
|
||||
|
||||
+2
-2
@@ -89,11 +89,11 @@ EOF
|
||||
fi
|
||||
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE#v}/" /etc/karakeep/karakeep.env
|
||||
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm@${MODULE_VERSION}" setup_nodejs
|
||||
setup_meilisearch
|
||||
|
||||
msg_info "Updating Karakeep"
|
||||
corepack enable
|
||||
|
||||
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ function update_script() {
|
||||
[[ -s /opt/koillection/.env.local && -n "$(tail -c 1 /opt/koillection/.env.local)" ]] && echo "" >>/opt/koillection/.env.local
|
||||
echo 'APP_RUNTIME="Symfony\Component\Runtime\SymfonyRuntime"' >>/opt/koillection/.env.local
|
||||
fi
|
||||
NODE_VERSION="26" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="26" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
cd /opt/koillection
|
||||
export COMPOSER_ALLOW_SUPERUSER=1
|
||||
export APP_RUNTIME='Symfony\Component\Runtime\SymfonyRuntime'
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn@latest" setup_nodejs
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop linkwarden
|
||||
msg_ok "Stopped Service"
|
||||
@@ -54,7 +54,7 @@ function update_script() {
|
||||
fi
|
||||
fi
|
||||
if command -v corepack >/dev/null 2>&1; then
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack prepare "yarn@${yarn_ver}" --activate || true
|
||||
fi
|
||||
$STD yarn
|
||||
|
||||
+1
-3
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
ensure_dependencies f3d
|
||||
|
||||
if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then
|
||||
@@ -65,8 +65,6 @@ function update_script() {
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Installing Manyfold"
|
||||
$STD npm install --global corepack
|
||||
$STD corepack enable yarn
|
||||
|
||||
sudo -u manyfold bash -c '
|
||||
source /opt/manyfold/.env
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ function update_script() {
|
||||
fi
|
||||
if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
NODE_MODULE="yarn" NODE_VERSION="24" setup_nodejs
|
||||
NODE_MODULE="corepack,yarn" NODE_VERSION="24" setup_nodejs
|
||||
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop mealie
|
||||
|
||||
+2
-2
@@ -41,7 +41,7 @@ function update_script() {
|
||||
fi
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||
|
||||
if check_for_gh_release "metube" "alexta69/metube"; then
|
||||
msg_info "Stopping Service"
|
||||
@@ -60,7 +60,7 @@ function update_script() {
|
||||
msg_info "Building Frontend"
|
||||
cd /opt/metube/ui
|
||||
if command -v corepack >/dev/null 2>&1; then
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack prepare pnpm --activate || true
|
||||
fi
|
||||
echo 'onlyBuiltDependencies=*' >> .npmrc
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
setup_mariadb
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn@latest" setup_nodejs
|
||||
|
||||
# Fix for previous versions not having cronjob
|
||||
if ! grep -Fq 'php /opt/monica/artisan schedule:run' /etc/crontab; then
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ function update_script() {
|
||||
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "musicseerr" "HabiRabbu/Musicseerr" "tarball"
|
||||
NODE_VERSION="25" NODE_MODULE="pnpm@10.33.0" setup_nodejs
|
||||
NODE_VERSION="25" NODE_MODULE="corepack,pnpm@10.33.0" setup_nodejs
|
||||
|
||||
msg_info "Building Frontend"
|
||||
cd /opt/musicseerr/frontend
|
||||
|
||||
@@ -42,7 +42,7 @@ function update_script() {
|
||||
fi
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
|
||||
if dpkg -s openresty &>/dev/null 2>&1; then
|
||||
msg_info "Migrating from packaged OpenResty to source"
|
||||
|
||||
+2
-2
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
|
||||
|
||||
if check_for_gh_release "outline" "outline/outline"; then
|
||||
msg_info "Stopping Services"
|
||||
@@ -48,7 +48,7 @@ function update_script() {
|
||||
export NODE_ENV=development
|
||||
export NODE_OPTIONS="--max-old-space-size=3584"
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD corepack enable
|
||||
|
||||
$STD yarn install --immutable
|
||||
export NODE_ENV=production
|
||||
$STD yarn build
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ function update_script() {
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball"
|
||||
|
||||
pnpm_version=$(grep -oP '"packageManager":\s*"pnpm@\K[^"]+' /opt/papra/package.json)
|
||||
NODE_VERSION="26" NODE_MODULE="pnpm@$pnpm_version" setup_nodejs
|
||||
NODE_VERSION="26" NODE_MODULE="corepack,pnpm@$pnpm_version" setup_nodejs
|
||||
|
||||
msg_info "Building Application"
|
||||
cd /opt/papra
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||
|
||||
if check_for_gh_release "PeaNUT" "Brandawg93/PeaNUT"; then
|
||||
msg_info "Stopping Service"
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ function update_script() {
|
||||
cd /opt/plane
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD corepack enable pnpm
|
||||
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm turbo run build --filter=web --filter=admin --filter=space --filter=live
|
||||
msg_ok "Rebuilt Frontend"
|
||||
|
||||
@@ -37,13 +37,13 @@ function update_script() {
|
||||
ensure_dependencies git
|
||||
|
||||
cp /opt/reactive-resume/.env /opt/reactive-resume.env.bak
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "reactive-resume" "amruthpillai/reactive-resume" "tarball" "latest" "/opt/reactive-resume"
|
||||
|
||||
msg_info "Updating Reactive Resume (Patience)"
|
||||
cd /opt/reactive-resume
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
corepack enable
|
||||
|
||||
corepack prepare --activate
|
||||
export CI="true"
|
||||
export NODE_ENV="production"
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ function update_script() {
|
||||
systemctl -q disable --now rwmarkable
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty"
|
||||
|
||||
msg_info "Updating app"
|
||||
|
||||
+1
-1
@@ -133,7 +133,7 @@ EOF
|
||||
|
||||
msg_info "Updating PNPM Version"
|
||||
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/seerr/package.json)
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm@$pnpm_desired" setup_nodejs
|
||||
msg_ok "Updated PNPM Version"
|
||||
|
||||
msg_info "Updating Seerr"
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ function update_script() {
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "sparkyfitness" "CodeWithCJ/SparkyFitness" "tarball"
|
||||
|
||||
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/sparkyfitness/package.json)"
|
||||
NODE_VERSION="25" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||
NODE_VERSION="25" NODE_MODULE="corepack,pnpm@${PNPM_VERSION}" setup_nodejs
|
||||
|
||||
msg_info "Updating Sparky Fitness Backend"
|
||||
cd /opt/sparkyfitness/SparkyFitnessServer
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ function update_script() {
|
||||
msg_info "Rebuilding Storyteller"
|
||||
cd /opt/storyteller
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack yarn install --network-timeout 600000
|
||||
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
|
||||
export CI=1
|
||||
|
||||
@@ -35,7 +35,7 @@ function update_script() {
|
||||
systemctl stop streamlink-webui
|
||||
msg_info "Stopped Service"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
setup_uv
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "streamlink-webui" "CrazyWolf13/streamlink-webui" "tarball"
|
||||
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ function update_script() {
|
||||
mv /opt/tandoor /opt/tandoor.bak
|
||||
msg_ok "Backup Created"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
|
||||
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ function update_script() {
|
||||
|
||||
setup_uv
|
||||
if check_for_gh_release "tianji" "msgbyte/tianji"; then
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop tianji
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ function update_script() {
|
||||
msg_info "Building Application"
|
||||
cd /opt/twenty
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD corepack enable
|
||||
|
||||
$STD corepack prepare yarn@4.9.2 --activate
|
||||
export NODE_OPTIONS="--max-old-space-size=3072"
|
||||
$STD yarn install --immutable || $STD yarn install
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ function update_script() {
|
||||
mv /opt/web-check/.env /opt
|
||||
msg_ok "Created backup"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||
NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "web-check" "Lissy93/web-check" "tarball"
|
||||
|
||||
msg_info "Restoring backup"
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn,node-gyp" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,yarn,node-gyp" setup_nodejs
|
||||
|
||||
if check_for_gh_release "wikijs" "requarks/wiki"; then
|
||||
msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
if check_for_gh_release "wishlist" "cmintey/wishlist"; then
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop wishlist
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
if check_for_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt"; then
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop zigbee2mqtt
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||
|
||||
if check_for_gh_release "zipline" "diced/zipline"; then
|
||||
msg_info "Stopping Service"
|
||||
|
||||
+53
-28
@@ -7283,13 +7283,18 @@ EOF
|
||||
# - Optionally installs or updates global npm modules
|
||||
#
|
||||
# Variables:
|
||||
# NODE_VERSION - Node.js version to install (default: 24 LTS)
|
||||
# NODE_MODULE - Comma-separated list of global modules (e.g. "yarn,@vue/cli@5.0.0")
|
||||
# NODE_VERSION - Node.js version to install (default: 24 LTS)
|
||||
# NODE_MODULE - Comma-separated global modules (e.g. "yarn,corepack,pnpm@10")
|
||||
# NODE_COREPACK_ENABLE - Run corepack enable after install (default: 1 when corepack is used)
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
setup_nodejs() {
|
||||
local NODE_VERSION="${NODE_VERSION:-24}"
|
||||
local NODE_MODULE="${NODE_MODULE:-}"
|
||||
local NODE_COREPACK_ENABLE="${NODE_COREPACK_ENABLE:-1}"
|
||||
local node_major="${NODE_VERSION%%.*}"
|
||||
local wants_corepack=0
|
||||
local node_setup_ok_msg=""
|
||||
|
||||
# ALWAYS clean up legacy installations first (nvm, etc.) to prevent conflicts
|
||||
cleanup_legacy_install "nodejs"
|
||||
@@ -7316,18 +7321,17 @@ setup_nodejs() {
|
||||
# Upgrade to the latest minor/patch release from NodeSource
|
||||
$STD apt-get install -y --only-upgrade nodejs 2>/dev/null || true
|
||||
|
||||
# Pin npm to 11.11.0 to work around Node.js 22.22.2 regression (nodejs/node#62425)
|
||||
$STD npm install -g npm@11.11.0 2>/dev/null || true
|
||||
|
||||
cache_installed_version "nodejs" "$NODE_VERSION"
|
||||
msg_ok "Update Node.js $NODE_VERSION"
|
||||
else
|
||||
# Scenario 2: Different version installed - clean upgrade
|
||||
if [[ -n "$CURRENT_NODE_VERSION" && "$CURRENT_NODE_VERSION" != "$NODE_VERSION" ]]; then
|
||||
msg_info "Upgrade Node.js from $CURRENT_NODE_VERSION to $NODE_VERSION"
|
||||
node_setup_ok_msg="Upgrade Node.js to $NODE_VERSION"
|
||||
remove_old_tool_version "nodejs"
|
||||
else
|
||||
msg_info "Setup Node.js $NODE_VERSION"
|
||||
node_setup_ok_msg="Setup Node.js $NODE_VERSION"
|
||||
fi
|
||||
|
||||
# Remove ALL Debian nodejs packages BEFORE adding NodeSource repo
|
||||
@@ -7336,6 +7340,7 @@ setup_nodejs() {
|
||||
$STD apt purge -y nodejs nodejs-doc libnode* node-* 2>/dev/null || true
|
||||
$STD apt autoremove -y 2>/dev/null || true
|
||||
$STD apt clean 2>/dev/null || true
|
||||
msg_ok "Removed Debian-packaged Node.js"
|
||||
fi
|
||||
|
||||
# Remove any APT pinning (not needed)
|
||||
@@ -7381,17 +7386,19 @@ setup_nodejs() {
|
||||
return 127
|
||||
fi
|
||||
|
||||
# Pin npm to 11.11.0 to work around Node.js 22.22.2 regression (nodejs/node#62425)
|
||||
local NPM_VERSION
|
||||
NPM_VERSION=$(npm -v 2>/dev/null || echo "0")
|
||||
if [[ "$NPM_VERSION" != "0" ]]; then
|
||||
$STD npm install -g npm@11.11.0 2>/dev/null || {
|
||||
msg_warn "Failed to update npm to 11.11.0 (continuing with bundled npm $NPM_VERSION)"
|
||||
}
|
||||
fi
|
||||
|
||||
cache_installed_version "nodejs" "$NODE_VERSION"
|
||||
msg_ok "Setup Node.js $NODE_VERSION"
|
||||
msg_ok "$node_setup_ok_msg"
|
||||
fi
|
||||
|
||||
# Node 22.22.2 bundles npm 10.9.7 which cannot self-upgrade (nodejs/node#62425)
|
||||
if [[ "$NODE_VERSION" == "22" && "$(npm -v 2>/dev/null)" == "10.9.7" ]]; then
|
||||
msg_info "Updating npm (Node 22 regression fix)"
|
||||
$STD npm install -g npm@10.9.8 2>/dev/null || true
|
||||
if $STD npm install -g npm@latest 2>/dev/null; then
|
||||
msg_ok "Updated npm ($(npm -v))"
|
||||
else
|
||||
msg_warn "npm update failed on Node 22.22.2"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set a safe default heap limit for Node.js builds if not explicitly provided.
|
||||
@@ -7436,12 +7443,20 @@ setup_nodejs() {
|
||||
}
|
||||
|
||||
# Install global Node modules
|
||||
if [[ -n "$NODE_MODULE" ]]; then
|
||||
if [[ -n "$NODE_MODULE" ]] || (( node_major >= 25 )); then
|
||||
if (( node_major >= 25 )) && [[ ",${NODE_MODULE}," != *",corepack,"* ]] && [[ "$NODE_MODULE" != corepack* ]]; then
|
||||
NODE_MODULE="${NODE_MODULE:+$NODE_MODULE,}corepack"
|
||||
fi
|
||||
|
||||
IFS=',' read -ra MODULES <<<"$NODE_MODULE"
|
||||
|
||||
# Pin pnpm to v10 to avoid breaking changes from newer major versions
|
||||
for i in "${!MODULES[@]}"; do
|
||||
if [[ "${MODULES[$i]}" =~ ^pnpm(@.*)?$ ]]; then
|
||||
if [[ "${MODULES[$i]}" == "corepack" || "${MODULES[$i]}" == corepack@* ]]; then
|
||||
wants_corepack=1
|
||||
elif [[ "${MODULES[$i]}" == yarn || "${MODULES[$i]}" == yarn@* || "${MODULES[$i]}" == pnpm || "${MODULES[$i]}" == pnpm@* ]]; then
|
||||
wants_corepack=1
|
||||
fi
|
||||
if [[ "${MODULES[$i]}" == "pnpm" ]]; then
|
||||
MODULES[$i]="pnpm@^10"
|
||||
fi
|
||||
done
|
||||
@@ -7467,33 +7482,43 @@ setup_nodejs() {
|
||||
if $STD npm list -g --depth=0 "$MODULE_NAME" 2>&1 | grep -q "$MODULE_NAME@"; then
|
||||
MODULE_INSTALLED_VERSION="$(npm list -g --depth=0 "$MODULE_NAME" 2>&1 | grep "$MODULE_NAME@" | awk -F@ '{print $2}' 2>/dev/null | tr -d '[:space:]' || echo '')"
|
||||
if [[ "$MODULE_REQ_VERSION" != "latest" && "$MODULE_REQ_VERSION" != "$MODULE_INSTALLED_VERSION" ]]; then
|
||||
msg_info "Updating $MODULE_NAME from v$MODULE_INSTALLED_VERSION to v$MODULE_REQ_VERSION"
|
||||
if ! $STD npm install -g "${MODULE_NAME}@${MODULE_REQ_VERSION}" 2>/dev/null; then
|
||||
msg_info "Updating $MODULE_NAME to v$MODULE_REQ_VERSION"
|
||||
if $STD npm install -g "${MODULE_NAME}@${MODULE_REQ_VERSION}" 2>/dev/null; then
|
||||
msg_ok "Updated $MODULE_NAME"
|
||||
else
|
||||
msg_warn "Failed to update $MODULE_NAME to version $MODULE_REQ_VERSION"
|
||||
((failed_modules++)) || true
|
||||
continue
|
||||
fi
|
||||
elif [[ "$MODULE_REQ_VERSION" == "latest" ]]; then
|
||||
msg_info "Updating $MODULE_NAME to latest version"
|
||||
if ! $STD npm install -g "${MODULE_NAME}@latest" 2>/dev/null; then
|
||||
if $STD npm install -g "${MODULE_NAME}@latest" 2>/dev/null; then
|
||||
msg_ok "Updated $MODULE_NAME"
|
||||
else
|
||||
msg_warn "Failed to update $MODULE_NAME to latest version"
|
||||
((failed_modules++)) || true
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
else
|
||||
msg_info "Installing $MODULE_NAME@$MODULE_REQ_VERSION"
|
||||
if ! $STD npm install -g "${MODULE_NAME}@${MODULE_REQ_VERSION}" 2>/dev/null; then
|
||||
if $STD npm install -g "${MODULE_NAME}@${MODULE_REQ_VERSION}" 2>/dev/null; then
|
||||
msg_ok "Installed $MODULE_NAME"
|
||||
else
|
||||
msg_warn "Failed to install $MODULE_NAME@$MODULE_REQ_VERSION"
|
||||
((failed_modules++)) || true
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [[ $failed_modules -eq 0 ]]; then
|
||||
msg_ok "Installed Node.js modules: $NODE_MODULE"
|
||||
if (( failed_modules > 0 )); then
|
||||
msg_warn "$failed_modules Node.js module(s) failed: $NODE_MODULE"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$NODE_COREPACK_ENABLE" == "1" ]] && (( wants_corepack )) && command -v corepack >/dev/null 2>&1; then
|
||||
msg_info "Enabling corepack"
|
||||
if $STD corepack enable 2>/dev/null; then
|
||||
msg_ok "Enabled corepack"
|
||||
else
|
||||
msg_warn "Installed Node.js modules with $failed_modules failure(s): $NODE_MODULE"
|
||||
msg_warn "corepack enable failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user