mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-19 08:23:01 +01:00
* fix(tdarr): use curl_with_retry and verify binaries before enabling service 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 * Improve Tdarr installer error handling Refine post-update validation and failure behavior in tdarr-install.sh: remove a redundant status message, simplify the updater check to only require the Tdarr_Server binary, and replace the previous fatal path with msg_error plus an explicit exit 250. This makes failures (for example when tdarr.io is blocked by local DNS) clearer and avoids false negatives from the Tdarr_Node existence check. * Use curl_with_retry and handle updater failure Replace direct curl calls with curl_with_retry for fetching versions.json and downloading Tdarr_Updater.zip to improve network reliability. Add a post-update check that verifies /opt/tdarr/Tdarr_Server/Tdarr_Server exists; if missing, log an error suggesting possible DNS blocking and exit with code 250. Minor cleanup of updater artifacts remains unchanged. * Reorder hwaccel setup and adjust GPU group usermod Move setup_hwaccel invocations in emby, jellyfin, ollama, and plex installers to occur after package installation/configuration so GPU drivers/repos are present before enabling hardware acceleration. Update _setup_gpu_permissions to call usermod directly (remove $STD wrapper) when adding service users to render/video groups. Includes minor whitespace/ordering cleanups in the installer scripts.
63 lines
1.6 KiB
Bash
63 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
||
|
||
# Copyright (c) 2021-2026 community-scripts ORG
|
||
# Author: MickLesk (CanbiZ)
|
||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||
# Source: https://jellyfin.org/
|
||
|
||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||
color
|
||
verb_ip6
|
||
catch_errors
|
||
setting_up_container
|
||
network_check
|
||
update_os
|
||
|
||
msg_custom "ℹ️" "${GN}" "If NVIDIA GPU passthrough is detected, you'll be asked whether to install drivers in the container"
|
||
|
||
msg_info "Installing Dependencies"
|
||
ensure_dependencies libjemalloc2
|
||
if [[ ! -f /usr/lib/libjemalloc.so ]]; then
|
||
ln -sf /usr/lib/x86_64-linux-gnu/libjemalloc.so.2 /usr/lib/libjemalloc.so
|
||
fi
|
||
msg_ok "Installed Dependencies"
|
||
|
||
msg_info "Setting up Jellyfin Repository"
|
||
setup_deb822_repo \
|
||
"jellyfin" \
|
||
"https://repo.jellyfin.org/jellyfin_team.gpg.key" \
|
||
"https://repo.jellyfin.org/$(get_os_info id)" \
|
||
"$(get_os_info codename)"
|
||
msg_ok "Set up Jellyfin Repository"
|
||
|
||
msg_info "Installing Jellyfin"
|
||
$STD apt install -y jellyfin jellyfin-ffmpeg7
|
||
ln -sf /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/bin/ffmpeg
|
||
ln -sf /usr/lib/jellyfin-ffmpeg/ffprobe /usr/bin/ffprobe
|
||
msg_ok "Installed Jellyfin"
|
||
|
||
setup_hwaccel "jellyfin"
|
||
|
||
msg_info "Configuring Jellyfin"
|
||
# Configure log rotation to prevent disk fill (keeps fail2ban compatibility) (PR: #1690 / Issue: #11224)
|
||
cat <<EOF >/etc/logrotate.d/jellyfin
|
||
/var/log/jellyfin/*.log {
|
||
daily
|
||
rotate 3
|
||
maxsize 100M
|
||
missingok
|
||
notifempty
|
||
compress
|
||
delaycompress
|
||
copytruncate
|
||
}
|
||
EOF
|
||
chown -R jellyfin:adm /etc/jellyfin
|
||
sleep 10
|
||
systemctl restart jellyfin
|
||
msg_ok "Configured Jellyfin"
|
||
|
||
motd_ssh
|
||
customize
|
||
cleanup_lxc
|