Compare commits

...

4 Commits

Author SHA1 Message Date
MickLesk fb7ceab989 fix(tools): only use corepack where scripts actually need it
Remove bulk corepack prefix from global pnpm/yarn installs and limit corepack enable in setup_nodejs to explicit corepack modules or Node 25+.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 22:05:32 +02:00
MickLesk 1363e5eab8 fix(ct): ensure corepack is enabled before yarn/pnpm updates
Run setup_nodejs with corepack in update scripts that use bare package manager commands after corepack prepare.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 22:00:32 +02:00
MickLesk 16ea8eb8f6 refactor(install): use setup_nodejs corepack via NODE_MODULE
Remove redundant corepack enable calls from install scripts and rely on centralized setup_nodejs handling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 21:56:29 +02:00
MickLesk 1f01f32853 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>
2026-06-21 21:55:20 +02:00
33 changed files with 114 additions and 86 deletions
+3 -2
View File
@@ -30,6 +30,8 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
if check_for_gh_release "bookorbit" "bookorbit/bookorbit"; then if check_for_gh_release "bookorbit" "bookorbit/bookorbit"; then
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop bookorbit systemctl stop bookorbit
@@ -42,7 +44,7 @@ function update_script() {
msg_info "Rebuilding Application" msg_info "Rebuilding Application"
cd /opt/bookorbit cd /opt/bookorbit
PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json) PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json)
$STD corepack enable
$STD corepack prepare "pnpm@${PNPM_VERSION}" --activate $STD corepack prepare "pnpm@${PNPM_VERSION}" --activate
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm --filter client run build-only $STD pnpm --filter client run build-only
@@ -59,7 +61,6 @@ function update_script() {
$STD uv pip install --python /opt/bookorbit-python/bin/python -r /opt/bookorbit/server/requirements/kobo-cloudscraper.txt $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_ok "Updated Kobo Python Runtime"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start bookorbit systemctl start bookorbit
msg_ok "Started Service" msg_ok "Started Service"
+3 -1
View File
@@ -30,6 +30,8 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
if check_for_gh_release "databasus" "databasus/databasus"; then if check_for_gh_release "databasus" "databasus/databasus"; then
msg_info "Stopping Databasus" msg_info "Stopping Databasus"
$STD systemctl stop databasus $STD systemctl stop databasus
@@ -70,7 +72,7 @@ function update_script() {
msg_info "Updating Databasus" msg_info "Updating Databasus"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
cd /opt/databasus/frontend cd /opt/databasus/frontend
$STD corepack enable
$STD corepack prepare pnpm@latest --activate $STD corepack prepare pnpm@latest --activate
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm run build $STD pnpm run build
+3 -1
View File
@@ -30,6 +30,8 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
if check_for_gh_release "feishin" "jeffvli/feishin"; then if check_for_gh_release "feishin" "jeffvli/feishin"; then
create_backup /opt/feishin/.env create_backup /opt/feishin/.env
@@ -38,7 +40,7 @@ function update_script() {
msg_info "Rebuilding Feishin Web" msg_info "Rebuilding Feishin Web"
cd /opt/feishin cd /opt/feishin
#PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json) #PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json)
$STD corepack enable
$STD corepack prepare "pnpm@10" --activate $STD corepack prepare "pnpm@10" --activate
$STD pnpm install $STD pnpm install
$STD pnpm run build:web $STD pnpm run build:web
+2 -2
View File
@@ -31,7 +31,7 @@ function update_script() {
fi fi
PYTHON_VERSION="3.12" setup_uv 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 if check_for_gh_release "gramps-web-api" "gramps-project/gramps-web-api"; then
msg_info "Stopping Service" msg_info "Stopping Service"
@@ -84,7 +84,7 @@ function update_script() {
msg_info "Updating Gramps Web Frontend" msg_info "Updating Gramps Web Frontend"
cd /opt/gramps-web/frontend cd /opt/gramps-web/frontend
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
$STD npm install $STD npm install
$STD npm run build $STD npm run build
msg_ok "Updated Gramps Web Frontend" msg_ok "Updated Gramps Web Frontend"
+1 -2
View File
@@ -168,13 +168,12 @@ EOF
setup_uv setup_uv
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "${RELEASE}" "$SRC_DIR" 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)" 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" msg_info "Updating Immich web and microservices"
cd "$SRC_DIR"/server cd "$SRC_DIR"/server
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
export CI=1 export CI=1
corepack enable
# server build # server build
export SHARP_IGNORE_GLOBAL_LIBVIPS=true export SHARP_IGNORE_GLOBAL_LIBVIPS=true
+1 -1
View File
@@ -53,7 +53,7 @@ function update_script() {
cd /opt/invoiceshelf cd /opt/invoiceshelf
$STD composer install --no-dev --optimize-autoloader $STD composer install --no-dev --optimize-autoloader
if command -v corepack >/dev/null 2>&1; then if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack yarn install $STD corepack yarn install
$STD corepack yarn build $STD corepack yarn build
else else
+2 -2
View File
@@ -89,11 +89,11 @@ EOF
fi fi
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE#v}/" /etc/karakeep/karakeep.env 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)" 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 setup_meilisearch
msg_info "Updating Karakeep" msg_info "Updating Karakeep"
corepack enable
export PUPPETEER_SKIP_DOWNLOAD="true" export PUPPETEER_SKIP_DOWNLOAD="true"
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true" export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
export NEXT_TELEMETRY_DISABLED=1 export NEXT_TELEMETRY_DISABLED=1
+2 -2
View File
@@ -28,7 +28,7 @@ function update_script() {
exit exit
fi fi
if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then 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" msg_info "Stopping Service"
systemctl stop linkwarden systemctl stop linkwarden
msg_ok "Stopped Service" msg_ok "Stopped Service"
@@ -54,7 +54,7 @@ function update_script() {
fi fi
fi fi
if command -v corepack >/dev/null 2>&1; then if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare "yarn@${yarn_ver}" --activate || true $STD corepack prepare "yarn@${yarn_ver}" --activate || true
fi fi
$STD yarn $STD yarn
+1 -3
View File
@@ -29,7 +29,7 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack,yarn" setup_nodejs
ensure_dependencies f3d ensure_dependencies f3d
if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then
@@ -65,8 +65,6 @@ function update_script() {
msg_ok "Restored Data" msg_ok "Restored Data"
msg_info "Installing Manyfold" msg_info "Installing Manyfold"
$STD npm install --global corepack
$STD corepack enable yarn
sudo -u manyfold bash -c ' sudo -u manyfold bash -c '
source /opt/manyfold/.env source /opt/manyfold/.env
+2 -2
View File
@@ -41,7 +41,7 @@ function update_script() {
fi fi
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 if check_for_gh_release "metube" "alexta69/metube"; then
msg_info "Stopping Service" msg_info "Stopping Service"
@@ -60,7 +60,7 @@ function update_script() {
msg_info "Building Frontend" msg_info "Building Frontend"
cd /opt/metube/ui cd /opt/metube/ui
if command -v corepack >/dev/null 2>&1; then if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare pnpm --activate || true $STD corepack prepare pnpm --activate || true
fi fi
echo 'onlyBuiltDependencies=*' >> .npmrc echo 'onlyBuiltDependencies=*' >> .npmrc
+2 -2
View File
@@ -29,7 +29,7 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
if check_for_gh_release "outline" "outline/outline"; then if check_for_gh_release "outline" "outline/outline"; then
msg_info "Stopping Services" msg_info "Stopping Services"
@@ -48,7 +48,7 @@ function update_script() {
export NODE_ENV=development export NODE_ENV=development
export NODE_OPTIONS="--max-old-space-size=3584" export NODE_OPTIONS="--max-old-space-size=3584"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
$STD yarn install --immutable $STD yarn install --immutable
export NODE_ENV=production export NODE_ENV=production
$STD yarn build $STD yarn build
+3 -1
View File
@@ -30,6 +30,8 @@ function update_script() {
exit 1 exit 1
fi fi
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
if check_for_gh_release "plane" "makeplane/plane"; then if check_for_gh_release "plane" "makeplane/plane"; then
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop plane-api plane-worker plane-beat plane-live plane-space systemctl stop plane-api plane-worker plane-beat plane-live plane-space
@@ -49,7 +51,7 @@ function update_script() {
cd /opt/plane cd /opt/plane
export NODE_OPTIONS="--max-old-space-size=4096" export NODE_OPTIONS="--max-old-space-size=4096"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable pnpm
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm turbo run build --filter=web --filter=admin --filter=space --filter=live $STD pnpm turbo run build --filter=web --filter=admin --filter=space --filter=live
msg_ok "Rebuilt Frontend" msg_ok "Rebuilt Frontend"
+2 -2
View File
@@ -37,13 +37,13 @@ function update_script() {
ensure_dependencies git ensure_dependencies git
cp /opt/reactive-resume/.env /opt/reactive-resume.env.bak 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" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "reactive-resume" "amruthpillai/reactive-resume" "tarball" "latest" "/opt/reactive-resume"
msg_info "Updating Reactive Resume (Patience)" msg_info "Updating Reactive Resume (Patience)"
cd /opt/reactive-resume cd /opt/reactive-resume
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
corepack enable
corepack prepare --activate corepack prepare --activate
export CI="true" export CI="true"
export NODE_ENV="production" export NODE_ENV="production"
+1 -1
View File
@@ -48,7 +48,7 @@ function update_script() {
msg_info "Rebuilding Storyteller" msg_info "Rebuilding Storyteller"
cd /opt/storyteller cd /opt/storyteller
export NODE_OPTIONS="--max-old-space-size=4096" export NODE_OPTIONS="--max-old-space-size=4096"
$STD corepack enable
$STD corepack yarn install --network-timeout 600000 $STD corepack yarn install --network-timeout 600000
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so $STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
export CI=1 export CI=1
+3 -1
View File
@@ -31,6 +31,8 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
if check_for_gh_release "twenty" "twentyhq/twenty"; then if check_for_gh_release "twenty" "twentyhq/twenty"; then
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop twenty-worker twenty-server systemctl stop twenty-worker twenty-server
@@ -47,7 +49,7 @@ function update_script() {
msg_info "Building Application" msg_info "Building Application"
cd /opt/twenty cd /opt/twenty
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
$STD corepack prepare yarn@4.9.2 --activate $STD corepack prepare yarn@4.9.2 --activate
export NODE_OPTIONS="--max-old-space-size=3072" export NODE_OPTIONS="--max-old-space-size=3072"
$STD yarn install --immutable || $STD yarn install $STD yarn install --immutable || $STD yarn install
+2 -2
View File
@@ -22,7 +22,7 @@ msg_ok "Installed Dependencies"
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="bookorbit" PG_DB_USER="bookorbit" PG_DB_EXTENSIONS="uuid-ossp,pg_trgm,vector" setup_postgresql_db PG_DB_NAME="bookorbit" PG_DB_USER="bookorbit" PG_DB_EXTENSIONS="uuid-ossp,pg_trgm,vector" setup_postgresql_db
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
setup_uv setup_uv
fetch_and_deploy_gh_release "bookorbit" "bookorbit/bookorbit" "tarball" fetch_and_deploy_gh_release "bookorbit" "bookorbit/bookorbit" "tarball"
@@ -30,7 +30,7 @@ fetch_and_deploy_gh_release "bookorbit" "bookorbit/bookorbit" "tarball"
msg_info "Building Application" msg_info "Building Application"
cd /opt/bookorbit cd /opt/bookorbit
PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json) PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json)
$STD corepack enable
$STD corepack prepare "pnpm@${PNPM_VERSION}" --activate $STD corepack prepare "pnpm@${PNPM_VERSION}" --activate
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm --filter client run build-only $STD pnpm --filter client run build-only
+2 -2
View File
@@ -23,7 +23,7 @@ msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql PG_VERSION="17" setup_postgresql
setup_go setup_go
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
msg_info "Installing Database Clients" msg_info "Installing Database Clients"
# Create PostgreSQL version symlinks for compatibility # Create PostgreSQL version symlinks for compatibility
@@ -56,7 +56,7 @@ fetch_and_deploy_gh_release "databasus" "databasus/databasus" "tarball" "latest"
msg_info "Building Databasus (Patience)" msg_info "Building Databasus (Patience)"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
cd /opt/databasus/frontend cd /opt/databasus/frontend
$STD corepack enable
$STD corepack prepare pnpm@latest --activate $STD corepack prepare pnpm@latest --activate
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm run build $STD pnpm run build
+2 -2
View File
@@ -19,14 +19,14 @@ $STD apt install -y \
gettext-base gettext-base
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
fetch_and_deploy_gh_release "feishin" "jeffvli/feishin" "tarball" fetch_and_deploy_gh_release "feishin" "jeffvli/feishin" "tarball"
msg_info "Building Feishin Web" msg_info "Building Feishin Web"
cd /opt/feishin cd /opt/feishin
#PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json) #PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/feishin/package.json)
$STD corepack enable
$STD corepack prepare "pnpm@10" --activate $STD corepack prepare "pnpm@10" --activate
$STD pnpm install $STD pnpm install
$STD pnpm run build:web $STD pnpm run build:web
+1 -1
View File
@@ -23,7 +23,7 @@ fetch_and_deploy_gh_release "foldergram" "foldergram/foldergram" "tarball"
msg_info "Configuring Foldergram" msg_info "Configuring Foldergram"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
cd /opt/foldergram cd /opt/foldergram
$STD pnpm install $STD pnpm install
$STD pnpm run build $STD pnpm run build
+2 -2
View File
@@ -38,7 +38,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="22" setup_nodejs NODE_VERSION="22" NODE_MODULE="corepack" setup_nodejs
fetch_and_deploy_gh_release "gramps-web-api" "gramps-project/gramps-web-api" "tarball" "latest" "/opt/gramps-web-api" fetch_and_deploy_gh_release "gramps-web-api" "gramps-project/gramps-web-api" "tarball" "latest" "/opt/gramps-web-api"
fetch_and_deploy_gh_release "gramps-web" "gramps-project/gramps-web" "tarball" "latest" "/opt/gramps-web/frontend" fetch_and_deploy_gh_release "gramps-web" "gramps-project/gramps-web" "tarball" "latest" "/opt/gramps-web/frontend"
@@ -92,7 +92,7 @@ msg_ok "Installed Gramps Addons"
cd /opt/gramps-web/frontend cd /opt/gramps-web/frontend
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
$STD npm install $STD npm install
$STD npm run build $STD npm run build
cd /opt/gramps-web-api cd /opt/gramps-web-api
+1 -2
View File
@@ -313,14 +313,13 @@ mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.7.5" "$SRC_DIR" fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.7.5" "$SRC_DIR"
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1] | split("+")[0]' ${SRC_DIR}/package.json)" 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 "Installing Immich (patience)" msg_info "Installing Immich (patience)"
cd "$SRC_DIR"/server cd "$SRC_DIR"/server
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
export CI=1 export CI=1
corepack enable
# server build # server build
export SHARP_IGNORE_GLOBAL_LIBVIPS=true export SHARP_IGNORE_GLOBAL_LIBVIPS=true
+2 -2
View File
@@ -19,7 +19,7 @@ msg_ok "Installed Dependencies"
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_pgsql,mbstring,curl,exif" setup_php PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_pgsql,mbstring,curl,exif" setup_php
setup_composer setup_composer
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
PG_DB_NAME="invoiceshelf" PG_DB_USER="invoiceshelf" setup_postgresql_db PG_DB_NAME="invoiceshelf" PG_DB_USER="invoiceshelf" setup_postgresql_db
@@ -40,7 +40,7 @@ sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" .env
COMPOSER_ALLOW_SUPERUSER=1 $STD composer install --no-dev --optimize-autoloader --no-interaction COMPOSER_ALLOW_SUPERUSER=1 $STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan key:generate --force $STD php artisan key:generate --force
if command -v corepack >/dev/null 2>&1; then if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack pnpm install $STD corepack pnpm install
$STD corepack pnpm run build $STD corepack pnpm run build
else else
+2 -2
View File
@@ -19,7 +19,7 @@ $STD apt install -y \
build-essential build-essential
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs NODE_VERSION="22" NODE_MODULE="corepack" setup_nodejs
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
RUST_CRATES="monolith" setup_rust RUST_CRATES="monolith" setup_rust
PG_DB_NAME="linkwardendb" PG_DB_USER="linkwarden" setup_postgresql_db PG_DB_NAME="linkwardendb" PG_DB_USER="linkwarden" setup_postgresql_db
@@ -44,7 +44,7 @@ if [[ -f package.json ]]; then
fi fi
fi fi
if command -v corepack >/dev/null 2>&1; then if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare "yarn@${yarn_ver}" --activate || true $STD corepack prepare "yarn@${yarn_ver}" --activate || true
fi fi
$STD yarn $STD yarn
+3 -3
View File
@@ -27,7 +27,7 @@ msg_ok "Installed Dependencies"
setup_imagemagick setup_imagemagick
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
PG_DB_NAME="manyfold" PG_DB_USER="manyfold" setup_postgresql_db PG_DB_NAME="manyfold" PG_DB_USER="manyfold" setup_postgresql_db
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack,yarn" setup_nodejs
fetch_and_deploy_gh_release "manyfold" "manyfold3d/manyfold" "tarball" "latest" "/opt/manyfold/app" fetch_and_deploy_gh_release "manyfold" "manyfold3d/manyfold" "tarball" "latest" "/opt/manyfold/app"
@@ -66,7 +66,7 @@ gem install bundler
bundle install bundle install
gem install sidekiq gem install sidekiq
gem install foreman gem install foreman
corepack enable yarn
rm -f /opt/manyfold/app/config/credentials.yml.enc rm -f /opt/manyfold/app/config/credentials.yml.enc
corepack prepare $YARN_VERSION --activate corepack prepare $YARN_VERSION --activate
corepack use $YARN_VERSION corepack use $YARN_VERSION
@@ -81,7 +81,7 @@ msg_ok "Configured Manyfold"
msg_info "Installing Manyfold" msg_info "Installing Manyfold"
chown -R manyfold:manyfold {/home/manyfold,/opt/manyfold} chown -R manyfold:manyfold {/home/manyfold,/opt/manyfold}
chmod +x /opt/manyfold/user_setup.sh chmod +x /opt/manyfold/user_setup.sh
$STD npm install --global corepack
$STD sudo -u manyfold bash /opt/manyfold/user_setup.sh $STD sudo -u manyfold bash /opt/manyfold/user_setup.sh
rm -f /opt/manyfold/user_setup.sh rm -f /opt/manyfold/user_setup.sh
msg_ok "Installed Manyfold" msg_ok "Installed Manyfold"
+2 -2
View File
@@ -23,7 +23,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
msg_info "Installing Deno" msg_info "Installing Deno"
export DENO_INSTALL="/usr/local" export DENO_INSTALL="/usr/local"
@@ -38,7 +38,7 @@ fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
msg_info "Installing MeTube" msg_info "Installing MeTube"
cd /opt/metube/ui cd /opt/metube/ui
if command -v corepack >/dev/null 2>&1; then if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare pnpm --activate || true $STD corepack prepare pnpm --activate || true
fi fi
echo 'onlyBuiltDependencies=*' >> .npmrc echo 'onlyBuiltDependencies=*' >> .npmrc
+2 -2
View File
@@ -20,7 +20,7 @@ $STD apt install -y \
redis redis
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
PG_DB_NAME="outline" PG_DB_USER="outline" setup_postgresql_db PG_DB_NAME="outline" PG_DB_USER="outline" setup_postgresql_db
@@ -39,7 +39,7 @@ sed -i "5s#URL=#URL=http://${LOCAL_IP}#g" /opt/outline/.env
sed -i 's/FORCE_HTTPS=true/FORCE_HTTPS=false/g' /opt/outline/.env sed -i 's/FORCE_HTTPS=true/FORCE_HTTPS=false/g' /opt/outline/.env
export NODE_OPTIONS="--max-old-space-size=3584" export NODE_OPTIONS="--max-old-space-size=3584"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
$STD yarn install --immutable $STD yarn install --immutable
export NODE_ENV=production export NODE_ENV=production
sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env
+2 -2
View File
@@ -32,7 +32,7 @@ $STD apt install -y \
rabbitmq-server rabbitmq-server
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
PG_DB_NAME="plane" PG_DB_USER="plane" setup_postgresql_db PG_DB_NAME="plane" PG_DB_USER="plane" setup_postgresql_db
@@ -90,7 +90,7 @@ for app in web admin space; do
done done
export NODE_OPTIONS="--max-old-space-size=4096" export NODE_OPTIONS="--max-old-space-size=4096"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable pnpm
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm turbo run build --filter=web --filter=admin --filter=space --filter=live $STD pnpm turbo run build --filter=web --filter=admin --filter=space --filter=live
msg_ok "Built Frontend Apps" msg_ok "Built Frontend Apps"
+2 -2
View File
@@ -15,7 +15,7 @@ update_os
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
PG_DB_NAME="reactive_resume" PG_DB_USER="reactive_resume" setup_postgresql_db PG_DB_NAME="reactive_resume" PG_DB_USER="reactive_resume" setup_postgresql_db
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt install -y \ $STD apt install -y \
@@ -28,7 +28,7 @@ fetch_and_deploy_gh_release "reactive-resume" "amruthpillai/reactive-resume" "ta
msg_info "Building Reactive Resume (Patience)" msg_info "Building Reactive Resume (Patience)"
cd /opt/reactive-resume cd /opt/reactive-resume
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
corepack enable
corepack prepare --activate corepack prepare --activate
export NODE_ENV="production" export NODE_ENV="production"
export CI="true" export CI="true"
+2 -2
View File
@@ -24,7 +24,7 @@ $STD apt install -y \
ffmpeg ffmpeg
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="22" NODE_MODULE="corepack,yarn" setup_nodejs
fetch_and_deploy_gh_release "readium" "readium/cli" "prebuild" "latest" "/opt/readium" "readium_linux_x86_64.tar.gz" fetch_and_deploy_gh_release "readium" "readium/cli" "prebuild" "latest" "/opt/readium" "readium_linux_x86_64.tar.gz"
ln -sf /opt/readium/readium /usr/local/bin/readium ln -sf /opt/readium/readium /usr/local/bin/readium
@@ -32,7 +32,7 @@ fetch_and_deploy_gl_release "storyteller" "storyteller-platform/storyteller" "ta
msg_info "Setting up Storyteller" msg_info "Setting up Storyteller"
cd /opt/storyteller cd /opt/storyteller
$STD corepack enable
$STD corepack yarn install --network-timeout 600000 $STD corepack yarn install --network-timeout 600000
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so $STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
STORYTELLER_SECRET_KEY=$(openssl rand -base64 32) STORYTELLER_SECRET_KEY=$(openssl rand -base64 32)
+2 -2
View File
@@ -17,13 +17,13 @@ msg_info "Installing Dependencies"
$STD apt install -y redis-server $STD apt install -y redis-server
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
PG_VERSION="18" setup_postgresql PG_VERSION="18" setup_postgresql
msg_info "Installing pnpm" msg_info "Installing pnpm"
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/connorgallopo/Tracearr/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]' | cut -d'+' -f1)" PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/connorgallopo/Tracearr/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]' | cut -d'+' -f1)"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable pnpm
$STD corepack prepare pnpm@${PNPM_VERSION} --activate $STD corepack prepare pnpm@${PNPM_VERSION} --activate
msg_ok "Installed pnpm" msg_ok "Installed pnpm"
+2 -2
View File
@@ -21,14 +21,14 @@ msg_ok "Installed Dependencies"
PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="twenty_db" PG_DB_USER="twenty" PG_DB_SCHEMA_PERMS="true" PG_DB_EXTENSIONS="vector" setup_postgresql_db PG_DB_NAME="twenty_db" PG_DB_USER="twenty" PG_DB_SCHEMA_PERMS="true" PG_DB_EXTENSIONS="vector" setup_postgresql_db
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" NODE_MODULE="corepack" setup_nodejs
fetch_and_deploy_gh_release "twenty" "twentyhq/twenty" "tarball" fetch_and_deploy_gh_release "twenty" "twentyhq/twenty" "tarball"
msg_info "Building Application" msg_info "Building Application"
cd /opt/twenty cd /opt/twenty
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
$STD corepack prepare yarn@4.9.2 --activate $STD corepack prepare yarn@4.9.2 --activate
yarn install --immutable >/dev/null 2>&1 || $STD yarn install yarn install --immutable >/dev/null 2>&1 || $STD yarn install
export NODE_OPTIONS="--max-old-space-size=4096" export NODE_OPTIONS="--max-old-space-size=4096"
+1 -1
View File
@@ -31,7 +31,7 @@ msg_info "Setting up wger"
mkdir -p /opt/wger/{static,media} mkdir -p /opt/wger/{static,media}
chmod o+w /opt/wger/media chmod o+w /opt/wger/media
cd /opt/wger cd /opt/wger
$STD corepack enable
$STD npm install $STD npm install
$STD npm run build:css:sass $STD npm run build:css:sass
$STD uv venv $STD uv venv
+51 -28
View File
@@ -7283,13 +7283,18 @@ EOF
# - Optionally installs or updates global npm modules # - Optionally installs or updates global npm modules
# #
# Variables: # Variables:
# NODE_VERSION - Node.js version to install (default: 24 LTS) # 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_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() { setup_nodejs() {
local NODE_VERSION="${NODE_VERSION:-24}" local NODE_VERSION="${NODE_VERSION:-24}"
local NODE_MODULE="${NODE_MODULE:-}" 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 # ALWAYS clean up legacy installations first (nvm, etc.) to prevent conflicts
cleanup_legacy_install "nodejs" cleanup_legacy_install "nodejs"
@@ -7316,18 +7321,17 @@ setup_nodejs() {
# Upgrade to the latest minor/patch release from NodeSource # Upgrade to the latest minor/patch release from NodeSource
$STD apt-get install -y --only-upgrade nodejs 2>/dev/null || true $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" cache_installed_version "nodejs" "$NODE_VERSION"
msg_ok "Update Node.js $NODE_VERSION" msg_ok "Update Node.js $NODE_VERSION"
else else
# Scenario 2: Different version installed - clean upgrade # Scenario 2: Different version installed - clean upgrade
if [[ -n "$CURRENT_NODE_VERSION" && "$CURRENT_NODE_VERSION" != "$NODE_VERSION" ]]; then if [[ -n "$CURRENT_NODE_VERSION" && "$CURRENT_NODE_VERSION" != "$NODE_VERSION" ]]; then
msg_info "Upgrade Node.js from $CURRENT_NODE_VERSION to $NODE_VERSION" 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" remove_old_tool_version "nodejs"
else else
msg_info "Setup Node.js $NODE_VERSION" msg_info "Setup Node.js $NODE_VERSION"
node_setup_ok_msg="Setup Node.js $NODE_VERSION"
fi fi
# Remove ALL Debian nodejs packages BEFORE adding NodeSource repo # 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 purge -y nodejs nodejs-doc libnode* node-* 2>/dev/null || true
$STD apt autoremove -y 2>/dev/null || true $STD apt autoremove -y 2>/dev/null || true
$STD apt clean 2>/dev/null || true $STD apt clean 2>/dev/null || true
msg_ok "Removed Debian-packaged Node.js"
fi fi
# Remove any APT pinning (not needed) # Remove any APT pinning (not needed)
@@ -7381,17 +7386,19 @@ setup_nodejs() {
return 127 return 127
fi 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" 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 fi
# Set a safe default heap limit for Node.js builds if not explicitly provided. # Set a safe default heap limit for Node.js builds if not explicitly provided.
@@ -7436,12 +7443,18 @@ setup_nodejs() {
} }
# Install global Node modules # 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" IFS=',' read -ra MODULES <<<"$NODE_MODULE"
# Pin pnpm to v10 to avoid breaking changes from newer major versions
for i in "${!MODULES[@]}"; do for i in "${!MODULES[@]}"; do
if [[ "${MODULES[$i]}" =~ ^pnpm(@.*)?$ ]]; then if [[ "${MODULES[$i]}" == "corepack" || "${MODULES[$i]}" == corepack@* ]]; then
wants_corepack=1
fi
if [[ "${MODULES[$i]}" == "pnpm" ]]; then
MODULES[$i]="pnpm@^10" MODULES[$i]="pnpm@^10"
fi fi
done done
@@ -7467,33 +7480,43 @@ setup_nodejs() {
if $STD npm list -g --depth=0 "$MODULE_NAME" 2>&1 | grep -q "$MODULE_NAME@"; then 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 '')" 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 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" msg_info "Updating $MODULE_NAME to v$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 "Updated $MODULE_NAME"
else
msg_warn "Failed to update $MODULE_NAME to version $MODULE_REQ_VERSION" msg_warn "Failed to update $MODULE_NAME to version $MODULE_REQ_VERSION"
((failed_modules++)) || true ((failed_modules++)) || true
continue
fi fi
elif [[ "$MODULE_REQ_VERSION" == "latest" ]]; then elif [[ "$MODULE_REQ_VERSION" == "latest" ]]; then
msg_info "Updating $MODULE_NAME to latest version" 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" msg_warn "Failed to update $MODULE_NAME to latest version"
((failed_modules++)) || true ((failed_modules++)) || true
continue
fi fi
fi fi
else else
msg_info "Installing $MODULE_NAME@$MODULE_REQ_VERSION" 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" msg_warn "Failed to install $MODULE_NAME@$MODULE_REQ_VERSION"
((failed_modules++)) || true ((failed_modules++)) || true
continue
fi fi
fi fi
done done
if [[ $failed_modules -eq 0 ]]; then if (( failed_modules > 0 )); then
msg_ok "Installed Node.js modules: $NODE_MODULE" 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 else
msg_warn "Installed Node.js modules with $failed_modules failure(s): $NODE_MODULE" msg_warn "corepack enable failed"
fi fi
fi fi
} }