#!/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}" var_ram="${var_ram:-4096}" var_disk="${var_disk:-35}" var_os="${var_os:-ubuntu}" var_version="${var_version:-24.04}" var_gpu="${var_gpu:-yes}" # 🔥 YOUR MIRROR OLLAMA_MIRROR="https://file.wifibills.com/ollama-linux-amd64.tar.zst" header_info "$APP" variables color catch_errors function download_ollama() { TMP_TAR=$(mktemp --suffix=.tar.zst) 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 echo "${TMP_TAR}" } function install_ollama() { msg_info "Installing Ollama" ensure_dependencies curl zstd 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}" cat </etc/systemd/system/ollama.service [Unit] Description=Ollama Service After=network.target [Service] ExecStart=/usr/local/bin/ollama serve Restart=always User=root Group=root [Install] 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 msg_info "Running Ollama installer inside container" pct exec $CTID -- bash -c "$(declare -f install_ollama download_ollama); install_ollama" msg_ok "Completed successfully!" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:11434${CL}"