From 38b664fa850f12938b9fa7631309016ac21a1b56 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Sat, 16 May 2026 00:45:51 +0200 Subject: [PATCH] Ollama/OpenWebUI: use fetch_and_deploy_gh_release and check_for_gh_release from tools.func (#14501) --- ct/ollama.sh | 28 +++++++++--------------- ct/openwebui.sh | 41 ++++++++++++------------------------ install/ollama-install.sh | 21 +++++------------- install/openwebui-install.sh | 17 ++++++++------- 4 files changed, 37 insertions(+), 70 deletions(-) diff --git a/ct/ollama.sh b/ct/ollama.sh index 0864040b3..ebd2092f6 100644 --- a/ct/ollama.sh +++ b/ct/ollama.sh @@ -27,34 +27,26 @@ function update_script() { msg_error "No Ollama Installation Found!" exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk -F '"' '{print $4}') - if [[ ! -f /opt/Ollama_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/Ollama_version.txt)" ]]; then - if [[ ! -f /opt/Ollama_version.txt ]]; then - touch /opt/Ollama_version.txt - fi + if check_for_gh_release "ollama" "ollama/ollama"; then ensure_dependencies zstd msg_info "Stopping Services" systemctl stop ollama msg_ok "Services Stopped" - TMP_TAR=$(mktemp --suffix=.tar.zst) - curl -fL# -C - -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tar.zst" - msg_info "Updating Ollama to ${RELEASE}" - rm -rf /usr/local/lib/ollama - rm -rf /usr/local/bin/ollama - mkdir -p /usr/local/lib/ollama - tar --zstd -xf "${TMP_TAR}" -C /usr/local/lib/ollama - ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama - rm -f "${TMP_TAR}" - echo "${RELEASE}" >/opt/Ollama_version.txt - msg_ok "Updated Ollama to ${RELEASE}" + OLLAMA_INSTALL_DIR="/usr/local/lib/ollama" + rm -rf "$OLLAMA_INSTALL_DIR" /usr/local/bin/ollama + mkdir -p "$OLLAMA_INSTALL_DIR" + if ! fetch_and_deploy_gh_release "ollama" "ollama/ollama" "prebuild" "latest" "$OLLAMA_INSTALL_DIR" "ollama-linux-amd64.tar.zst"; then + msg_error "Download or deployment failed – check network connectivity and GitHub API availability" + exit 250 + fi + ln -sf "$OLLAMA_INSTALL_DIR/bin/ollama" /usr/local/bin/ollama + msg_ok "Updated Ollama" msg_info "Starting Services" systemctl start ollama msg_ok "Started Services" msg_ok "Updated successfully!" - else - msg_ok "No update required. Ollama is already at ${RELEASE}" fi exit } diff --git a/ct/openwebui.sh b/ct/openwebui.sh index cce154863..9276f2262 100644 --- a/ct/openwebui.sh +++ b/ct/openwebui.sh @@ -91,37 +91,22 @@ EOF if [ -x "/usr/bin/ollama" ]; then msg_info "Checking for Ollama Update" - OLLAMA_VERSION=$(ollama -v | awk '{print $NF}') - RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') - if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then - msg_info "Ollama update available: v$OLLAMA_VERSION -> v$RELEASE" - msg_info "Downloading Ollama v$RELEASE \n" - curl -fS#LO https://github.com/ollama/ollama/releases/download/v${RELEASE}/ollama-linux-amd64.tar.zst - msg_ok "Download Complete" + if check_for_gh_release "ollama" "ollama/ollama"; then + msg_info "Stopping Ollama Service" + systemctl stop ollama + msg_ok "Stopped Service" - if [ -f "ollama-linux-amd64.tar.zst" ]; then - - msg_info "Stopping Ollama Service" - systemctl stop ollama - msg_ok "Stopped Service" - - msg_info "Installing Ollama" - rm -rf /usr/lib/ollama - rm -rf /usr/bin/ollama - tar --zstd -C /usr -xf ollama-linux-amd64.tar.zst - rm -rf ollama-linux-amd64.tar.zst - msg_ok "Installed Ollama" - - msg_info "Starting Ollama Service" - systemctl start ollama - msg_ok "Started Service" - - msg_ok "Ollama updated to version $RELEASE" + rm -rf /usr/lib/ollama /usr/bin/ollama + if ! fetch_and_deploy_gh_release "ollama" "ollama/ollama" "prebuild" "latest" "/usr/lib/ollama" "ollama-linux-amd64.tar.zst"; then + msg_error "Ollama download or deployment failed – check network connectivity and GitHub API availability" else - msg_error "Ollama download failed. Aborting update." + ln -sf /usr/lib/ollama/bin/ollama /usr/bin/ollama + msg_ok "Updated Ollama to ${CHECK_UPDATE_RELEASE}" fi - else - msg_ok "Ollama is already up to date." + + msg_info "Starting Ollama Service" + systemctl start ollama + msg_ok "Started Service" fi fi diff --git a/install/ollama-install.sh b/install/ollama-install.sh index 161d354fa..3f0284e85 100644 --- a/install/ollama-install.sh +++ b/install/ollama-install.sh @@ -62,26 +62,15 @@ $STD apt install -y --no-install-recommends intel-basekit-2024.1 msg_ok "Installed Intel® oneAPI Base Toolkit" msg_info "Installing Ollama (Patience)" -RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk -F '"' '{print $4}') OLLAMA_INSTALL_DIR="/usr/local/lib/ollama" BINDIR="/usr/local/bin" -mkdir -p $OLLAMA_INSTALL_DIR -OLLAMA_URL="https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tar.zst" -TMP_TAR="/tmp/ollama.tar.zst" -echo -e "\n" -if curl -fL# -C - -o "$TMP_TAR" "$OLLAMA_URL"; then - if tar --zstd -xf "$TMP_TAR" -C "$OLLAMA_INSTALL_DIR"; then - ln -sf "$OLLAMA_INSTALL_DIR/bin/ollama" "$BINDIR/ollama" - echo "${RELEASE}" >/opt/Ollama_version.txt - msg_ok "Installed Ollama ${RELEASE}" - else - msg_error "Extraction failed – archive corrupt or incomplete" - exit 251 - fi -else - msg_error "Download failed – $OLLAMA_URL not reachable" +mkdir -p "$OLLAMA_INSTALL_DIR" +if ! fetch_and_deploy_gh_release "ollama" "ollama/ollama" "prebuild" "latest" "$OLLAMA_INSTALL_DIR" "ollama-linux-amd64.tar.zst"; then + msg_error "Failed to download or deploy Ollama – check network connectivity and GitHub API availability" exit 250 fi +ln -sf "$OLLAMA_INSTALL_DIR/bin/ollama" "$BINDIR/ollama" +msg_ok "Installed Ollama" msg_info "Creating ollama User and Group" if ! id ollama >/dev/null 2>&1; then diff --git a/install/openwebui-install.sh b/install/openwebui-install.sh index 1344a88c6..02369e80d 100644 --- a/install/openwebui-install.sh +++ b/install/openwebui-install.sh @@ -73,11 +73,11 @@ EOF msg_ok "Installed Intel® oneAPI Base Toolkit" msg_info "Installing Ollama" - OLLAMA_RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk -F '"' '{print $4}') - curl -fsSLO -C - https://github.com/ollama/ollama/releases/download/${OLLAMA_RELEASE}/ollama-linux-amd64.tar.zst - tar --zstd -C /usr -xf ollama-linux-amd64.tar.zst - rm -rf ollama-linux-amd64.tar.zst - cat </etc/systemd/system/ollama.service + if ! fetch_and_deploy_gh_release "ollama" "ollama/ollama" "prebuild" "latest" "/usr/lib/ollama" "ollama-linux-amd64.tar.zst"; then + msg_error "Failed to download or deploy Ollama – check network connectivity and GitHub API availability" + else + ln -sf /usr/lib/ollama/bin/ollama /usr/bin/ollama + cat </etc/systemd/system/ollama.service [Unit] Description=Ollama Service After=network-online.target @@ -93,9 +93,10 @@ RestartSec=3 [Install] WantedBy=multi-user.target EOF - systemctl enable -q --now ollama - echo "ENABLE_OLLAMA_API=true" >/root/.env - msg_ok "Installed Ollama" + systemctl enable -q --now ollama + echo "ENABLE_OLLAMA_API=true" >/root/.env + msg_ok "Installed Ollama" + fi fi msg_info "Creating Service"