Refactor Sabnzbd

This commit is contained in:
CanbiZ 2025-04-29 13:33:39 +02:00
parent 08549eb0c9
commit 759a7f24b1
2 changed files with 57 additions and 42 deletions

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -30,15 +30,18 @@ function update_script() {
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}" msg_info "Updating $APP to ${RELEASE}"
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
systemctl stop sabnzbd.service systemctl stop sabnzbd.service
tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz) tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz)
cp -rf SABnzbd-${RELEASE}/* /opt/sabnzbd cp -rf SABnzbd-${RELEASE}/* /opt/sabnzbd
rm -rf SABnzbd-${RELEASE} rm -rf SABnzbd-${RELEASE}
cd /opt/sabnzbd
$STD python3 -m pip install -r requirements.txt source /opt/sabnzbd/venv/bin/activate
pip install --upgrade pip
pip install -r /opt/sabnzbd/requirements.txt
deactivate
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
systemctl start sabnzbd.service systemctl start sabnzbd
msg_ok "Updated ${APP} to ${RELEASE}" msg_ok "Updated ${APP} to ${RELEASE}"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@ -14,46 +14,58 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y par2 $STD apt-get install -y \
$STD apt-get install -y p7zip-full par2 \
p7zip-full
msg_ok "Installed Dependencies"
msg_info "Setup Python3"
$STD apt-get install -y \
python3-dev \
python3-pip \
python3-venv \
python3-setuptools
msg_ok "Setup Python3"
msg_info "Setup Unrar"
cat <<EOF >/etc/apt/sources.list.d/non-free.list cat <<EOF >/etc/apt/sources.list.d/non-free.list
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
EOF EOF
$STD apt-get update $STD apt-get update
$STD apt-get install -y unrar $STD apt-get install -y unrar
rm /etc/apt/sources.list.d/non-free.list rm /etc/apt/sources.list.d/non-free.list
msg_ok "Installed Dependencies" msg_ok "Setup Unrar"
msg_info "Setup Python3"
$STD apt-get install -y \
python3-dev \
python3-pip
$STD apt-get install -y python3-setuptools
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing SABnzbd" msg_info "Installing SABnzbd"
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
$STD tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz) $STD tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz)
mv SABnzbd-${RELEASE} /opt/sabnzbd mv SABnzbd-${RELEASE} /opt/sabnzbd
cd /opt/sabnzbd
$STD python3 -m pip install -r requirements.txt python3 -m venv /opt/sabnzbd/venv
source /opt/sabnzbd/venv/bin/activate
pip install --upgrade pip
pip install -r /opt/sabnzbd/requirements.txt
deactivate
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed SABnzbd" msg_ok "Installed SABnzbd"
msg_info "Creating Service" msg_info "Creating Service"
service_path="/etc/systemd/system/sabnzbd.service" cat <<EOF >/etc/systemd/system/sabnzbd.service
echo "[Unit] [Unit]
Description=SABnzbd Description=SABnzbd
After=network.target After=network.target
[Service] [Service]
WorkingDirectory=/opt/sabnzbd WorkingDirectory=/opt/sabnzbd
ExecStart=python3 SABnzbd.py -s 0.0.0.0:7777 ExecStart=/opt/sabnzbd/venv/bin/python SABnzbd.py -s 0.0.0.0:7777
Restart=always Restart=always
User=root User=root
[Install] [Install]
WantedBy=multi-user.target" >$service_path WantedBy=multi-user.target
systemctl enable --now -q sabnzbd.service EOF
systemctl enable -q --now sabnzbd
msg_ok "Created Service" msg_ok "Created Service"
motd_ssh motd_ssh