commit
1fa603436d
5
ct/headers/huntarr
Normal file
5
ct/headers/huntarr
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
__ __ __
|
||||||
|
/ / / /_ ______ / /_____ ___________
|
||||||
|
/ /_/ / / / / __ \/ __/ __ `/ ___/ ___/
|
||||||
|
/ __ / /_/ / / / / /_/ /_/ / / / /
|
||||||
|
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/
|
94
ct/huntarr.sh
Normal file
94
ct/huntarr.sh
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/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/${APP}/main.py ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
setup_uv
|
||||||
|
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 [[ -f /opt/${APP}_version.txt ]] && [[ "${RELEASE}" == "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop ${APP}
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
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/"${APP}"
|
||||||
|
msg_ok "Backup Created"
|
||||||
|
|
||||||
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL -o "$temp_file" "https://github.com/plexguide/Huntarr.io/archive/refs/tags/${RELEASE}.zip"
|
||||||
|
unzip -q -o "$temp_file" -d /tmp
|
||||||
|
cp -rf "/tmp/Huntarr.io-${RELEASE}"/* /opt/"${APP}"/
|
||||||
|
|
||||||
|
msg_info "Updating Python dependencies"
|
||||||
|
cd /opt/"${APP}" || exit
|
||||||
|
if [[ -f "/opt/${APP}/.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."
|
||||||
|
$STD uv pip install -r requirements.txt --python /opt/"${APP}"/venv/bin/python
|
||||||
|
else
|
||||||
|
msg_info "Requirements unchanged. Verifying installation."
|
||||||
|
$STD uv pip install -r requirements.txt --python /opt/"${APP}"/venv/bin/python
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
$STD uv pip install -r requirements.txt --python /opt/"${APP}"/venv/bin/python
|
||||||
|
fi
|
||||||
|
md5sum requirements.txt | awk '{print $1}' >.requirements_checksum
|
||||||
|
msg_ok "Updated Python dependencies"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start ${APP}
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
rm -rf "/tmp/Huntarr.io-${RELEASE}"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
|
|
||||||
|
echo "${RELEASE}" >/opt/"${APP}"_version.txt
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
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": [
|
||||||
|
14
|
||||||
|
],
|
||||||
|
"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": []
|
||||||
|
}
|
66
install/huntarr-install.sh
Normal file
66
install/huntarr-install.sh
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
#!/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 jq
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Installing Python"
|
||||||
|
$STD apt-get install -y \
|
||||||
|
python3 \
|
||||||
|
python3-venv
|
||||||
|
msg_ok "Installed Python"
|
||||||
|
|
||||||
|
msg_info "Setup uv"
|
||||||
|
setup_uv
|
||||||
|
msg_ok "Setup uv"
|
||||||
|
|
||||||
|
msg_info "Setting Up Huntarr"
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
$STD curl -fsSL -o "$temp_file" "https://github.com/plexguide/Huntarr.io/archive/refs/tags/${RELEASE}.zip"
|
||||||
|
$STD unzip -q "$temp_file"
|
||||||
|
$STD mv "${REPO_NAME}-${RELEASE}/" "/opt/${APPLICATION}"
|
||||||
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
|
$STD uv venv /opt/${APPLICATION}/venv
|
||||||
|
$STD uv pip install --python /opt/${APPLICATION}/venv/bin/python -r /opt/${APPLICATION}/requirements.txt
|
||||||
|
msg_ok "Setup Huntrarr Complete"
|
||||||
|
|
||||||
|
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 "$temp_file"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
Loading…
x
Reference in New Issue
Block a user