Browse Source

Update 'ollama.sh'

master
alamin 3 weeks ago
parent
commit
e2c8aea324
  1. 100
      ollama.sh

100
ollama.sh

@ -1,9 +1,6 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 tteck
# Modified for custom mirror download
APP="Ollama"
var_tags="${var_tags:-ai}"
var_cpu="${var_cpu:-4}"
@ -21,40 +18,40 @@ variables
color
catch_errors
function download_ollama() {
TMP_TAR=$(mktemp --suffix=.tar.zst)
start
build_container
description
msg_info "Trying local mirror..."
if curl -fL# -o "${TMP_TAR}" "${OLLAMA_MIRROR}"; then
msg_ok "Downloaded from mirror"
else
msg_info "Mirror failed, trying GitHub..."
curl -fL# -o "${TMP_TAR}" \
"https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tar.zst" || {
msg_error "Download failed from both mirror and GitHub!"
exit 1
}
fi
msg_info "Installing Ollama inside container"
echo "${TMP_TAR}"
}
pct exec $CTID -- bash -c "
set -e
function install_ollama() {
msg_info "Installing Ollama"
echo 'Installing dependencies...'
apt update -qq
apt install -y curl zstd
ensure_dependencies curl zstd
TMP_TAR=\$(mktemp --suffix=.tar.zst)
TAR_FILE=$(download_ollama)
echo 'Trying mirror download...'
if curl -fL -o \$TMP_TAR ${OLLAMA_MIRROR}; then
echo 'Downloaded from mirror'
else
echo 'Mirror failed. Trying GitHub...'
curl -fL -o \$TMP_TAR https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tar.zst
fi
rm -rf /usr/local/lib/ollama
rm -rf /usr/local/bin/ollama
echo 'Installing Ollama...'
rm -rf /usr/local/lib/ollama
rm -f /usr/local/bin/ollama
mkdir -p /usr/local/lib/ollama
tar --zstd -xf "${TAR_FILE}" -C /usr/local/lib/ollama
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
rm -f "${TAR_FILE}"
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
cat <<EOF >/etc/systemd/system/ollama.service
echo 'Creating systemd service...'
cat <<EOF >/etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network.target
@ -69,47 +66,12 @@ Group=root
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable ollama
systemctl start ollama
msg_ok "Ollama Installed Successfully"
}
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /usr/local/lib/ollama ]]; then
msg_error "No Ollama Installation Found!"
exit
fi
msg_info "Stopping Ollama service"
systemctl stop ollama
TAR_FILE=$(download_ollama)
rm -rf /usr/local/lib/ollama
rm -rf /usr/local/bin/ollama
mkdir -p /usr/local/lib/ollama
tar --zstd -xf "${TAR_FILE}" -C /usr/local/lib/ollama
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
rm -f "${TAR_FILE}"
systemctl start ollama
msg_ok "Ollama Updated Successfully"
exit
}
start
build_container
description
systemctl daemon-reload
systemctl enable ollama
systemctl start ollama
msg_info "Running Ollama installer inside container"
pct exec $CTID -- bash -c "$(declare -f install_ollama download_ollama); install_ollama"
echo 'Ollama installation complete.'
"
msg_ok "Completed successfully!"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

Loading…
Cancel
Save