diff --git a/ct/docmost.sh b/ct/docmost.sh
index d037c4ae0..de9d31e10 100644
--- a/ct/docmost.sh
+++ b/ct/docmost.sh
@@ -26,22 +26,19 @@ function update_script() {
     msg_error "No ${APP} Installation Found!"
     exit
   fi
-  if command -v node >/dev/null; then
-    NODE_MAJOR=$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')
-    if [[ "$NODE_MAJOR" != "22" ]]; then
-      $STD apt-get purge -y nodejs
-      rm -f /etc/apt/sources.list.d/nodesource.list
-      rm -f /etc/apt/keyrings/nodesource.gpg
-    else
-      return
-    fi
+  if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then
+    msg_info "Installing Node.js 22"
+    $STD apt-get purge -y nodejs
+    rm -f /etc/apt/sources.list.d/nodesource.list
+    rm -f /etc/apt/keyrings/nodesource.gpg
+    mkdir -p /etc/apt/keyrings
+    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
+    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
+    $STD apt-get update
+    $STD apt-get install -y nodejs
+    $STD npm install -g pnpm@10.4.0
+    msg_ok "Node.js 22 installed"
   fi
-  mkdir -p /etc/apt/keyrings
-  curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
-  echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
-  $STD apt-get update
-  $STD apt-get install -y nodejs
-  $STD npm install -g pnpm@10.4.0
   export NODE_OPTIONS="--max_old_space_size=4096"
   RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
   if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
diff --git a/ct/tianji.sh b/ct/tianji.sh
index b5f0887dd..319a3b606 100644
--- a/ct/tianji.sh
+++ b/ct/tianji.sh
@@ -26,22 +26,19 @@ function update_script() {
     msg_error "No ${APP} Installation Found!"
     exit
   fi
-  if command -v node >/dev/null; then
-    NODE_MAJOR=$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')
-    if [[ "$NODE_MAJOR" != "22" ]]; then
-      $STD apt-get purge -y nodejs
-      rm -f /etc/apt/sources.list.d/nodesource.list
-      rm -f /etc/apt/keyrings/nodesource.gpg
-    else
-      return
-    fi
+  if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then
+    msg_info "Installing Node.js 22"
+    $STD apt-get purge -y nodejs
+    rm -f /etc/apt/sources.list.d/nodesource.list
+    rm -f /etc/apt/keyrings/nodesource.gpg
+    mkdir -p /etc/apt/keyrings
+    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
+    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
+    $STD apt-get update
+    $STD apt-get install -y nodejs
+    $STD npm install -g pnpm@9.7.1
+    msg_ok "Node.js 22 installed"
   fi
-  mkdir -p /etc/apt/keyrings
-  curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
-  echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
-  $STD apt-get update
-  $STD apt-get install -y nodejs
-  $STD npm install -g pnpm@9.7.1
   RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
   if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
     msg_info "Stopping ${APP} Service"