From cfc5dfc762fdc8e672432ae16b05b560eed72456 Mon Sep 17 00:00:00 2001
From: Dominik Siebel <dominik.siebel@trivago.com>
Date: Tue, 22 Oct 2024 22:04:36 +0200
Subject: [PATCH] fix(zoraxy): install stable release instead of building from
 main branch

---
 ct/zoraxy.sh              | 28 ++++++++++++----------------
 install/zoraxy-install.sh | 23 ++++++-----------------
 2 files changed, 18 insertions(+), 33 deletions(-)

diff --git a/ct/zoraxy.sh b/ct/zoraxy.sh
index a9694ac7..7c5a23e3 100644
--- a/ct/zoraxy.sh
+++ b/ct/zoraxy.sh
@@ -20,7 +20,7 @@ header_info
 echo -e "Loading..."
 APP="Zoraxy"
 var_disk="6"
-var_cpu="4"
+var_cpu="2"
 var_ram="2048"
 var_os="debian"
 var_version="12"
@@ -54,20 +54,19 @@ function default_settings() {
 
 function update_script() {
 header_info
-if [[ ! -d /opt/zoraxy/src ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
-whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75
-msg_info "Updating $APP"
-systemctl stop zoraxy
-cd /opt/zoraxy/src
-systemctl stop zoraxy
-if git pull | grep -q 'Already up to date.'; then
-  msg_ok "Already up to date. No update required."
+if [[ ! -f /etc/systemd/system/zoraxy.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+RELEASE="$(curl -s https://api.github.com/repos/tobychui/zoraxy/releases | grep -oP '"tag_name":\s*"\K[\d.]+?(?=")' | sort -V | tail -n1)"
+msg_info "Updating ${APP} LXC to ${RELEASE}"
+if [[ "${RELEASE}" != "$(cat "/opt/${APP}_version.txt")" ]] || [[ ! -f "/opt/${APP}_version.txt" ]]; then
+  wget -q "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64"
+  install zoraxy_linux_amd64 /usr/bin/zoraxy
+  rm zoraxy_linux_amd64
+  echo "${RELEASE}" > "/opt/${APP}_version.txt"
+  systemctl restart traefik.service
+  msg_ok "Updated ${APP} LXC"
 else
-  go mod tidy
-  go build
-  msg_ok "Updated $APP"
+  msg_ok "No update required. ${APP} is already at ${RELEASE}"
 fi
-systemctl start zoraxy
 exit
 }
 
@@ -75,9 +74,6 @@ start
 build_container
 description
 
-msg_info "Setting Container to Normal Resources"
-pct set $CTID -cores 2
-msg_ok "Set Container to Normal Resources"
 msg_ok "Completed Successfully!\n"
 echo -e "${APP} should be reachable by going to the following URL.
          ${BL}http://${IP}:8000${CL} \n"
diff --git a/install/zoraxy-install.sh b/install/zoraxy-install.sh
index 73787ed1..0427c9d7 100644
--- a/install/zoraxy-install.sh
+++ b/install/zoraxy-install.sh
@@ -20,20 +20,11 @@ $STD apt-get install -y mc
 $STD apt-get install -y git
 msg_ok "Installed Dependencies"
 
-msg_info "Installing Golang"
-set +o pipefail
-RELEASE=$(curl -s https://go.dev/dl/ | grep -o "go.*\linux-amd64.tar.gz" | head -n 1)
-wget -q https://golang.org/dl/$RELEASE
-$STD tar -xzf $RELEASE -C /usr/local
-$STD ln -s /usr/local/go/bin/go /usr/local/bin/go
-set -o pipefail
-msg_ok "Installed Golang"
-
-msg_info "Installing Zoraxy (Patience)"
-$STD git clone https://github.com/tobychui/zoraxy /opt/zoraxy
-cd /opt/zoraxy/src
-$STD go mod tidy
-$STD go build
+RELEASE="$(curl -s https://api.github.com/repos/tobychui/zoraxy/releases | ggrep -oP '"tag_name":\s*"\K[\d.]+?(?=")' | sort -V | tail -n1)"
+msg_info "Installing Zoraxy v${RELEASE}"
+wget -q "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64"
+install zoraxy_linux_amd64 /usr/bin/zoraxy
+echo "${RELEASE}" > "/opt/${APPLICATION}_version.txt"
 msg_ok "Installed Zoraxy"
 
 msg_info "Creating Service"
@@ -43,8 +34,7 @@ Description=General purpose request proxy and forwarding tool
 After=syslog.target network-online.target
 
 [Service]
-ExecStart=/opt/zoraxy/src/./zoraxy
-WorkingDirectory=/opt/zoraxy/src/
+ExecStart=/usr/bin/zoraxy
 Restart=always
 
 [Install]
@@ -57,7 +47,6 @@ motd_ssh
 customize
 
 msg_info "Cleaning up"
-rm -rf $RELEASE
 $STD apt-get -y autoremove
 $STD apt-get -y autoclean
 msg_ok "Cleaned"