From 1de7e428cdcd1020a1e8c49ac523fce1f05a1459 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 10 Mar 2025 17:18:45 +0100 Subject: [PATCH] Rework SnipeIT: Tarball & Tempfile (#2963) * SnipeIT: Change Release to tarball * Update snipeit.sh * Update snipeit-install.sh * Update snipeit.sh --- ct/snipeit.sh | 23 +++++++++++++++++------ install/snipeit-install.sh | 17 ++++++----------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/ct/snipeit.sh b/ct/snipeit.sh index bfc6ad32d..592e920bf 100644 --- a/ct/snipeit.sh +++ b/ct/snipeit.sh @@ -6,7 +6,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m # Source: https://snipeitapp.com/ APP="SnipeIT" -var_tags="assat-management;foss" +var_tags="asset-management;foss" var_cpu="2" var_ram="2048" var_disk="4" @@ -27,13 +27,20 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -s https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + RELEASE=$(curl -s https://api.github.com/repos/snipe/snipe-it/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/') if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Services" + systemctl stop nginx + msg_ok "Services Stopped" + msg_info "Updating ${APP} to v${RELEASE}" $STD apt-get update $STD apt-get -y upgrade mv /opt/snipe-it /opt/snipe-it-backup - cd /opt + temp_file=$(mktemp) + wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file + tar zxf $temp_file + mv snipe-it-${RELEASE} /opt/snipe-it $STD wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip" unzip -q v${RELEASE}.zip mv snipe-it-${RELEASE} /opt/snipe-it @@ -53,9 +60,13 @@ function update_script() { chmod -R 755 /opt/snipe-it rm -rf /opt/v${RELEASE}.zip rm -rf /opt/snipe-it-backup - msg_ok "Updated ${APP} LXC" + msg_ok "Updated ${APP}" + + msg_info "Starting Service" + systemctl start nginx + msg_ok "Started Service" else - msg_ok "No update required. ${APP} is already at v${RELEASE}." + msg_ok "No update required. ${APP} is already at v${RELEASE}" fi exit } @@ -67,4 +78,4 @@ description msg_ok "Completed Successfully!\n" 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}${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/install/snipeit-install.sh b/install/snipeit-install.sh index a878d4732..f53455772 100644 --- a/install/snipeit-install.sh +++ b/install/snipeit-install.sh @@ -41,13 +41,11 @@ mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVI msg_ok "Set up database" msg_info "Installing Snipe-IT" -cd /opt -RELEASE=$(curl -s https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" -wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip" -unzip -q v${RELEASE}.zip +temp_file=$(mktemp) +RELEASE=$(curl -s https://api.github.com/repos/snipe/snipe-it/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/') +wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file +tar zxf $temp_file mv snipe-it-${RELEASE} /opt/snipe-it - cd /opt/snipe-it cp .env.example .env IPADDRESS=$(hostname -I | awk '{print $1}') @@ -59,17 +57,14 @@ sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \ chown -R www-data: /opt/snipe-it chmod -R 755 /opt/snipe-it - - export COMPOSER_ALLOW_SUPERUSER=1 $STD composer update --no-plugins --no-scripts $STD composer install --no-dev --prefer-source --no-plugins --no-scripts - $STD php artisan key:generate --force +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" msg_ok "Installed SnipeIT" msg_info "Creating Service" - cat </etc/nginx/conf.d/snipeit.conf server { listen 80; @@ -100,7 +95,7 @@ motd_ssh customize msg_info "Cleaning up" -rm -rf /opt/v${RELEASE}.zip +rm -f $temp_file $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"