New Script: Huntarr
This commit is contained in:
parent
5f52d633a9
commit
aca0badf76
5
ct/headers/huntarr
Normal file
5
ct/headers/huntarr
Normal file
@ -0,0 +1,5 @@
|
||||
__ __ __
|
||||
/ / / /_ ______ / /_____ ___________
|
||||
/ /_/ / / / / __ \/ __/ __ `/ ___/ ___/
|
||||
/ __ / /_/ / / / / /_/ /_/ / / / /
|
||||
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/
|
106
ct/huntarr.sh
Normal file
106
ct/huntarr.sh
Normal 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}"
|
34
frontend/public/json/huntarr.json
Normal file
34
frontend/public/json/huntarr.json
Normal 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": []
|
||||
}
|
70
install/huntarr-install.sh
Normal file
70
install/huntarr-install.sh
Normal 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"
|
Loading…
x
Reference in New Issue
Block a user