2023-03-22 20:48:20 -04:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
2026-01-06 13:28:12 +01:00
|
|
|
|
# Copyright (c) 2021-2026 tteck
|
2023-03-22 20:48:20 -04:00
|
|
|
|
# Author: tteck (tteckster)
|
2025-03-04 17:54:20 +01:00
|
|
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
|
|
|
|
# Source: https://jellyfin.org/
|
2023-03-22 20:48:20 -04:00
|
|
|
|
|
2025-03-24 14:20:56 +01:00
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
2023-03-22 20:48:20 -04:00
|
|
|
|
color
|
|
|
|
|
|
verb_ip6
|
|
|
|
|
|
catch_errors
|
|
|
|
|
|
setting_up_container
|
|
|
|
|
|
network_check
|
|
|
|
|
|
update_os
|
|
|
|
|
|
|
2026-01-27 23:40:47 +02:00
|
|
|
|
msg_custom "ℹ️" "${GN}" "If NVIDIA GPU passthrough is detected, you'll be asked whether to install drivers in the container"
|
use setup_hwaccel for robust hardware acceleration (#10054)
* fix(jellyfin): use setup_hwaccel for robust hardware acceleration
Replaces manual hardware acceleration setup with the centralized
setup_hwaccel function from tools.func.
This fixes the installation failure in privileged containers where
/dev/dri does not exist (e.g., when no GPU is passed through).
The setup_hwaccel function includes:
- Proper error handling for missing /dev/dri
- GPU vendor detection (Intel, AMD, NVIDIA)
- Graceful fallback when no GPU is available
Fixes: Installation fails with 'chgrp: cannot access /dev/dri'
when creating privileged containers without GPU passthrough.
* refactor(hwaccel): standardize hardware acceleration across all install scripts
Migrated all install scripts to use the centralized setup_hwaccel function:
- plex-install.sh
- emby-install.sh
- ersatztv-install.sh
- frigate-install.sh
- tdarr-install.sh
- unmanic-install.sh
- channels-install.sh
- ollama-install.sh
- immich-install.sh (added error handling)
Enhanced setup_hwaccel function in tools.func:
- Added -d /dev/dri check before setting permissions
- Added error handling (2>/dev/null || true) for all /dev/dri operations
- Added adduser error handling for video/render groups
- No longer fails if no GPU is detected (graceful skip)
- Added intel-media-va-driver for newer Intel GPUs
- Improved AMD APU support with firmware packages
- Better NVIDIA handling (warning instead of failure)
This fixes installation failures in privileged containers without GPU
passthrough, where /dev/dri does not exist.
Supports: Ubuntu, Debian 12 (Bookworm), Debian 13 (Trixie)
GPU Support: Intel, AMD, NVIDIA (manual driver)
* refactor(hwaccel): complete migration for all GPU apps
Migrated remaining GPU apps to setup_hwaccel:
- fileflows-install.sh
- openwebui-install.sh (added setup_hwaccel - was missing)
- tunarr-install.sh
Also fixed tools/pve/hw-acceleration.sh:
- Added error handling for /dev/dri operations
- Added chmod 660 /dev/dri/* that was missing
- Added error suppression for adduser commands
All 13 GPU apps (var_gpu=yes) now use centralized setup_hwaccel:
jellyfin, plex, emby, ersatztv, frigate, tdarr, unmanic,
channels, ollama, immich, fileflows, openwebui, tunarr
* feat(hwaccel): complete Intel non-free driver support and GID sync
Enhanced setup_hwaccel function:
- Auto-detect Intel GPU generation (Gen 9+ for non-free drivers)
- Debian 12 (Bookworm): Add non-free repo + intel-media-va-driver-non-free
- Debian 13 (Trixie): Add non-free repo + libvpl2 + mesa-opencl-icd
- Ubuntu: Use ubuntu repos with intel-media-va-driver
- Fallback to open drivers if non-free fails
- GID sync for video/render groups (moved from install scripts)
OpenWebUI: Added Intel oneAPI support when installing Ollama
- Intel Level Zero GPU support
- Intel oneAPI Base Toolkit
- Same setup as standalone Ollama install
Cleanup:
- Removed duplicate GID sync from tdarr-install.sh
- Removed duplicate GID sync from unmanic-install.sh
* fix(ersatztv): remove duplicate HW acceleration code
Removed manual Intel HW acceleration setup that remained after
setup_hwaccel migration. The non-free driver prompt is no longer
needed as setup_hwaccel auto-detects Intel GPU generation.
2025-12-17 14:37:31 +01:00
|
|
|
|
setup_hwaccel
|
2023-03-22 20:48:20 -04:00
|
|
|
|
|
|
|
|
|
|
msg_info "Installing Jellyfin"
|
2025-03-24 14:20:56 +01:00
|
|
|
|
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
|
2025-10-20 08:28:22 +02:00
|
|
|
|
if ! dpkg -s libjemalloc2 >/dev/null 2>&1; then
|
|
|
|
|
|
$STD apt install -y libjemalloc2
|
|
|
|
|
|
fi
|
|
|
|
|
|
if [[ ! -f /usr/lib/libjemalloc.so ]]; then
|
|
|
|
|
|
ln -sf /usr/lib/x86_64-linux-gnu/libjemalloc.so.2 /usr/lib/libjemalloc.so
|
|
|
|
|
|
fi
|
2023-04-05 06:41:33 -04:00
|
|
|
|
if [[ ! -d /etc/apt/keyrings ]]; then
|
2025-03-24 14:20:56 +01:00
|
|
|
|
mkdir -p /etc/apt/keyrings
|
2023-04-05 06:41:33 -04:00
|
|
|
|
fi
|
|
|
|
|
|
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor --yes --output /etc/apt/keyrings/jellyfin.gpg
|
|
|
|
|
|
cat <<EOF >/etc/apt/sources.list.d/jellyfin.sources
|
|
|
|
|
|
Types: deb
|
|
|
|
|
|
URIs: https://repo.jellyfin.org/${PCT_OSTYPE}
|
|
|
|
|
|
Suites: ${VERSION}
|
|
|
|
|
|
Components: main
|
|
|
|
|
|
Architectures: amd64
|
|
|
|
|
|
Signed-By: /etc/apt/keyrings/jellyfin.gpg
|
|
|
|
|
|
EOF
|
2025-10-20 08:28:22 +02:00
|
|
|
|
|
|
|
|
|
|
$STD apt update
|
|
|
|
|
|
$STD apt install -y jellyfin
|
2026-01-29 13:40:32 +01:00
|
|
|
|
# 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
|
2024-08-28 11:28:46 -04:00
|
|
|
|
chown -R jellyfin:adm /etc/jellyfin
|
2024-08-28 11:42:30 -04:00
|
|
|
|
sleep 10
|
2024-08-28 11:35:08 -04:00
|
|
|
|
systemctl restart jellyfin
|
2024-04-25 14:42:39 -04:00
|
|
|
|
if [[ "$CTTYPE" == "0" ]]; then
|
|
|
|
|
|
sed -i -e 's/^ssl-cert:x:104:$/render:x:104:root,jellyfin/' -e 's/^render:x:108:root,jellyfin$/ssl-cert:x:108:/' /etc/group
|
|
|
|
|
|
else
|
|
|
|
|
|
sed -i -e 's/^ssl-cert:x:104:$/render:x:104:jellyfin/' -e 's/^render:x:108:jellyfin$/ssl-cert:x:108:/' /etc/group
|
|
|
|
|
|
fi
|
2023-03-22 20:48:20 -04:00
|
|
|
|
msg_ok "Installed Jellyfin"
|
|
|
|
|
|
|
|
|
|
|
|
motd_ssh
|
2023-05-15 07:39:30 -04:00
|
|
|
|
customize
|
Bump K to H-Scripts to Debian 13 (Trixie) (#8597)
* Update scripts to use Debian 13 and improve update logic
Bump default container OS version from Debian 12 to 13 across multiple LXC setup scripts. Refactor update_script functions for consistency, improve messaging, and standardize apt usage. Update Kimai install and update scripts to use setup_php, setup_composer, and fetch_and_deploy_gh_release helpers, and switch from MySQL to MariaDB. Update Kometa to use Python 3.13. Minor improvements to backup, cleanup, and service management steps in several scripts.
* Refactor install scripts: unify cleanup and apt usage
Replaces repeated apt-get commands with apt for installing dependencies, and consolidates cleanup steps into a single cleanup_lxc function across all install scripts. Also updates repository setup to use setup_deb822_repo where applicable, and makes minor improvements to dependency installation and service setup.
* Update default Debian version to 13 and refactor updates
Set the default Debian version to 13 across all container scripts. Standardize apt command usage by replacing 'apt-get' with 'apt' where appropriate. Remove redundant cleanup steps from update scripts and streamline update logic for consistency. Also, call 'cleanup_lxc' after 'update_script' in the build function.
* Update default OS version to Debian 13 in JSON configs
Updated the 'version' field from '12' to '13' for Debian-based install methods across multiple application JSON files. Also set default OS and version for inspircd. This ensures new containers use the latest supported Debian release.
* fix kimai Update Check
* grammar
* Correct typo in success message
* Fix typo in success message for update
* refactor
* fixed jenkins / improve komodo
---------
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-11-12 10:56:18 +01:00
|
|
|
|
cleanup_lxc
|