mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-04-18 08:22:16 +00:00
Tdarr_Updater downloads the actual server/node binaries from tdarr.io at runtime. If tdarr.io is blocked by local DNS (e.g. OPNsense OISD blocklists), the updater exits silently with code 0, leaving no binaries on disk. The subsequent systemctl enable then fails with 'Operation not permitted' (exit 1) because the ExecStart paths don't exist. Changes: - Replace bare curl with curl_with_retry for versions.json and Tdarr_Updater.zip downloads to gain retry logic, DNS pre-check and exponential backoff - Add msg_info before Tdarr_Updater run so users see this step in the log - Check that Tdarr_Server and Tdarr_Node binaries exist after the updater runs; fail immediately with a clear message pointing to tdarr.io connectivity instead of letting systemctl fail with a confusing 'Operation not permitted' Fixes: #13030
84 lines
2.0 KiB
Bash
84 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2026 tteck
|
|
# Author: tteck (tteckster)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://home.tdarr.io/
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
msg_info "Installing Dependencies"
|
|
$STD apt install -y handbrake-cli
|
|
msg_ok "Installed Dependencies"
|
|
|
|
msg_info "Installing Tdarr"
|
|
mkdir -p /opt/tdarr
|
|
cd /opt/tdarr
|
|
RELEASE=$(curl_with_retry "https://f000.backblazeb2.com/file/tdarrs/versions.json" "-" | grep -oP '(?<="Tdarr_Updater": ")[^"]+' | grep linux_x64 | head -n 1)
|
|
curl_with_retry "$RELEASE" "Tdarr_Updater.zip"
|
|
$STD unzip Tdarr_Updater.zip
|
|
chmod +x Tdarr_Updater
|
|
msg_info "Running Tdarr_Updater (downloading server/node binaries from tdarr.io)"
|
|
$STD ./Tdarr_Updater
|
|
rm -rf /opt/tdarr/Tdarr_Updater.zip
|
|
[[ -f /opt/tdarr/Tdarr_Server/Tdarr_Server && -f /opt/tdarr/Tdarr_Node/Tdarr_Node ]] \
|
|
|| fatal "Tdarr_Updater did not download server binaries — tdarr.io may be blocked by local DNS"
|
|
msg_ok "Installed Tdarr"
|
|
|
|
setup_hwaccel
|
|
|
|
msg_info "Creating Service"
|
|
cat <<EOF >/etc/systemd/system/tdarr-server.service
|
|
[Unit]
|
|
Description=Tdarr Server Daemon
|
|
After=network.target
|
|
# Enable if using ZFS, edit and enable if other FS mounting is required to access directory
|
|
#Requires=zfs-mount.service
|
|
|
|
[Service]
|
|
User=root
|
|
Group=root
|
|
Type=simple
|
|
WorkingDirectory=/opt/tdarr/Tdarr_Server
|
|
ExecStartPre=/opt/tdarr/Tdarr_Updater
|
|
ExecStart=/opt/tdarr/Tdarr_Server/Tdarr_Server
|
|
TimeoutStopSec=20
|
|
KillMode=process
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
cat <<EOF >/etc/systemd/system/tdarr-node.service
|
|
[Unit]
|
|
Description=Tdarr Node Daemon
|
|
After=network.target
|
|
Requires=tdarr-server.service
|
|
|
|
[Service]
|
|
User=root
|
|
Group=root
|
|
Type=simple
|
|
WorkingDirectory=/opt/tdarr/Tdarr_Node
|
|
ExecStart=/opt/tdarr/Tdarr_Node/Tdarr_Node
|
|
TimeoutStopSec=20
|
|
KillMode=process
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl enable --now -q tdarr-server tdarr-node
|
|
msg_ok "Created Service"
|
|
|
|
motd_ssh
|
|
customize
|
|
cleanup_lxc
|