Major refactoring to fix mergerfs dependency issues and modernize the installation:
Changes in ct/cosmos.sh:
- Updated from Debian 12 to Debian 13 (Trixie)
- Fixed APP name capitalization: cosmos Cosmos
- Improved tags formatting: os,docker cloud;docker
Changes in install/cosmos-install.sh:
- Install mergerfs via apt (available in Debian 13 repos)
* Automatically handles fuse dependencies
* Removes need for manual .deb installation
* No more hardcoded Bullseye package
- Added ca-certificates and openssl (per official Dockerfile)
- Replaced manual Docker installation with setup_docker helper
- Replaced manual GitHub release download with fetch_and_deploy_gh_release
* Uses prebuild mode with cosmos-cloud-*-amd64.zip pattern
* Automatic version detection and extraction
* Proper error handling and retry logic
- Standardized apt-get apt usage
- Added unzip to dependencies (required by fetch_and_deploy_gh_release)
Benefits:
- Fixes mergerfs dependency errors (issue #TMD44)
- More maintainable (uses helper functions instead of manual curl/unzip)
- Better error handling and version tracking
- Automatic architecture detection via apt
- Matches official Cosmos Dockerfile dependency list
- Future-proof for Debian version changes
Fixes dependency issues where mergerfs failed to install due to missing fuse
package. In Debian 13, mergerfs is available via apt and properly declares its
dependencies, so apt handles everything automatically.
* [ENHANCEMENT] Immich: Support for newer Intel GPUs
- Add support for newer Intel GPUs: Battlemage, Arrow Lake and Panther
Lake by adding v2.22.2 Intel IGC packages
- Fix: ensure libigdgmm12 is installed before other packages during
update
- Fix: Download and install Intel packages in `/tmp` to allow apt to
drop root privileges during installation
* Bump Immich to v2.4.0
- Zabbix 7.0 uses different repository layout without release/ directory
- Package name includes version suffix for 7.0: zabbix-release_latest_7.0+debian13_all.deb
- Zabbix 7.4+ uses release/ directory with no version suffix
- Applied fix to both ct/zabbix.sh and install/zabbix-install.sh
* 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.
The PHP_VERSION was passed inline to setup_php which uses it as a local
variable. This caused 'unbound variable' error in the nginx heredoc.
Setting PHP_VERSION before the function call keeps it in global scope
for use in the nginx configuration.
* fix(2fauth): use default PHP version instead of hardcoded 8.3
- Remove hardcoded PHP_VERSION=8.3, let setup_php use default (8.4)
- Remove invalid modules 'session' and 'openssl' (part of php-common)
- Remove duplicate 'cli' module (already in DEFAULT_MODULES)
- Make nginx fastcgi_pass use dynamic PHP_VERSION variable
Fixes installation on Debian 13 (Trixie) which ships PHP 8.4.
* Update 2fauth-install.sh