New Script: Huntarr

This commit is contained in:
bilulib 2025-05-13 00:57:00 +02:00
parent 5f52d633a9
commit aca0badf76
4 changed files with 215 additions and 0 deletions

5
ct/headers/huntarr Normal file
View File

@ -0,0 +1,5 @@
__ __ __
/ / / /_ ______ / /_____ ___________
/ /_/ / / / / __ \/ __/ __ `/ ___/ ___/
/ __ / /_/ / / / / /_/ /_/ / / / /
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/

106
ct/huntarr.sh Normal file
View File

@ -0,0 +1,106 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: BiluliB
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/plexguide/Huntarr.io
APP="Huntarr"
var_tags="${var_tags:-arr}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/huntarr/main.py ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ "${RELEASE}" != "$(cat /opt/huntarr_version.txt 2>/dev/null)" ]] || [[ ! -f /opt/huntarr_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop huntarr
msg_ok "Stopped $APP"
msg_info "Checking system dependencies"
$STD apt-get update
$STD apt-get install -y \
curl \
tar \
unzip \
jq \
python3 \
python3-pip \
python3-venv
msg_ok "System dependencies updated"
msg_info "Creating Backup"
if ls /opt/${APP}_backup_*.tar.gz &>/dev/null; then
rm -f /opt/${APP}_backup_*.tar.gz
msg_info "Removed previous backup"
fi
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" /opt/huntarr
msg_ok "Backup Created"
msg_info "Updating $APP to v${RELEASE}"
curl -fsSL -o "/opt/huntarr/${RELEASE}.zip" "https://github.com/plexguide/Huntarr.io/archive/refs/tags/${RELEASE}.zip"
unzip -q -o "/opt/huntarr/${RELEASE}.zip" -d /tmp
cp -rf "/tmp/Huntarr.io-${RELEASE}"/* /opt/huntarr/
msg_info "Updating Python dependencies"
cd /opt/huntarr || exit
if [[ -f "/opt/huntarr/.requirements_checksum" ]]; then
CURRENT_CHECKSUM=$(md5sum requirements.txt | awk '{print $1}')
STORED_CHECKSUM=$(cat .requirements_checksum)
if [[ "$CURRENT_CHECKSUM" != "$STORED_CHECKSUM" ]]; then
msg_info "Requirements have changed. Performing full upgrade."
/opt/huntarr/venv/bin/pip install --upgrade -r requirements.txt
else
msg_info "Requirements unchanged. Verifying installation."
/opt/huntarr/venv/bin/pip install -r requirements.txt
fi
else
/opt/huntarr/venv/bin/pip install --upgrade -r requirements.txt
fi
md5sum requirements.txt | awk '{print $1}' >.requirements_checksum
msg_ok "Updated Python dependencies"
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start huntarr
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -f "/opt/huntarr/${RELEASE}.zip"
rm -rf "/tmp/Huntarr.io-${RELEASE}"
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/huntarr_version.txt
msg_ok "Update Successful"
fi
exit
}
start
build_container
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}:9705${CL}"

View File

@ -0,0 +1,34 @@
{
"name": "Huntarr",
"slug": "huntarr",
"categories": [
0
],
"date_created": "2025-05-12",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9705,
"documentation": "https://github.com/plexguide/Huntarr.io/wiki",
"website": "https://github.com/plexguide/Huntarr.io",
"logo": "https://raw.githubusercontent.com/plexguide/Huntarr.io/refs/heads/main/frontend/static/logo/Huntarr.svg",
"description": "Huntarr is a tool that automates the search for missing or low-quality media content in your collection. It works seamlessly with applications like Sonarr, Radarr, Lidarr, Readarr, and Whisparr, enhancing their functionality with continuous background scans to identify and update missed or outdated content. Through a user-friendly web interface accessible on port 9705, Huntarr provides real-time statistics, log views, and extensive configuration options. The software is especially useful for users who want to keep their media library up to date by automatically searching for missing episodes or higher-quality versions. Huntarr is well-suited for self-hosted environments and can easily run in LXC containers or Docker setups.",
"install_methods": [
{
"type": "default",
"script": "ct/huntarr.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -0,0 +1,70 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: BiluliB
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/plexguide/Huntarr.io
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
APPLICATION="huntarr"
REPO_NAME="Huntarr.io"
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
tar \
unzip \
jq \
python3 \
python3-pip \
python3-venv
msg_ok "Installed System Dependencies"
msg_info "Setup ${APPLICATION}"
RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL -o "${RELEASE}.zip" "https://github.com/plexguide/Huntarr.io/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip"
mv "${REPO_NAME}-${RELEASE}/" "/opt/${APPLICATION}"
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup ${APPLICATION}"
msg_info "Setting up Python Environment"
$STD python3 -m venv /opt/${APPLICATION}/venv
msg_ok "Created Python Virtual Environment"
msg_info "Installing Python Dependencies"
$STD /opt/${APPLICATION}/venv/bin/pip install --upgrade pip
$STD /opt/${APPLICATION}/venv/bin/pip install -r /opt/${APPLICATION}/requirements.txt
msg_ok "Installed Python Dependencies"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/${APPLICATION}.service
[Unit]
Description=Huntarr Service
After=network.target
[Service]
WorkingDirectory=/opt/${APPLICATION}
ExecStart=/opt/${APPLICATION}/venv/bin/python /opt/${APPLICATION}/main.py
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ${APPLICATION}
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -f "${RELEASE}.zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"