5 KiB
Jellyfin Docker Setup with Hardware Acceleration
This repository contains Docker configurations for running Jellyfin with hardware-accelerated transcoding support for various GPU types.
Features
- Hardware-accelerated transcoding support for:
- Intel ARC GPUs
- Intel integrated graphics (iGPU)
- NVIDIA GPUs
- AMD GPUs
- HDR to SDR tonemapping
- Configurable environment variables
- Optimized for performance
Prerequisites
- Docker and Docker Compose
- One of the supported GPUs
- Linux host system (recommended)
- Proper GPU drivers installed
Quick Start
-
Create a new directory and download the required files:
# Create and enter directory mkdir jellyfin-docker && cd jellyfin-docker # Download base docker-compose.yml curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/docker-compose.yml # Download sample.env curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/sample.env # Download transcoding file for your GPU: # For Intel ARC: curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/intel-arc.transcoding.yml # OR for Intel iGPU: curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/intel-igpu.transcoding.yml -
Copy the sample environment file:
cp sample.env .env -
Edit the
.envfile with your settings:nano .env -
Verify your GPU setup:
# Check render group ID getent group render | cut -d: -f3 # Verify GPU devices ls -l /dev/dri -
Start Jellyfin with the appropriate configuration:
# For Intel ARC docker compose -f docker-compose.yml -f intel-arc.transcoding.yml up -d # For Intel iGPU docker compose -f docker-compose.yml -f intel-igpu.transcoding.yml up -d -
Access Jellyfin at:
- HTTP: http://localhost:8096
- HTTPS: https://localhost:8920
Quick Start
Useful Commands
List only named Docker volumes:
docker volume ls | grep -v "^local.*[0-9a-f]\{64\}$"
This will show:
DRIVER VOLUME NAME
local cifs-volume_downloads
local cifs-volume_music
local cifs-volume_videos
local cifs_immich
local portainer_data
Hardware Acceleration Setup
Verify GPU Access
# Check render group ID
getent group render | cut -d: -f3
# Verify GPU devices
ls -l /dev/dri
Check Driver Installation
For Intel
vainfo
For NVIDIA
nvidia-smi
For AMD
rocm-smi
Configuration Files
docker-compose.yml: Base configurationintel-arc.transcoding.yml: Intel ARC specific settingsintel-igpu.transcoding.yml: Intel iGPU specific settings.env: Environment variables (copy from sample.env)tonemapping.md: Detailed explanation of HDR tonemapping options
docker-compose.yml
Base configuration file that includes:
- Container name and image settings
- Volume mappings for media, config, and cache
- Network ports (HTTP/HTTPS)
- Basic environment variables
intel-arc.transcoding.yml
Intel ARC GPU specific settings:
- Hardware acceleration configuration
- GPU device mappings
- Optimized tonemapping settings
- Intel ARC specific drivers and libraries
intel-igpu.transcoding.yml
Intel integrated GPU settings:
- Hardware acceleration for QuickSync
- iGPU device mappings
- Compatible tonemapping settings
- Required driver configurations
.env
Environment variables file containing:
- Port configurations (8096 for HTTP, 8920 for HTTPS)
- Domain settings for remote access
- Timezone configuration
- Render group ID for GPU access
- Cache and config directory paths
tonemapping.md
Comprehensive guide covering:
- What tonemapping is and why it's needed
- Available algorithms and their use cases
- Performance implications
- Hardware-specific recommendations
- Troubleshooting tips
Environment Variables
See sample.env for available options:
JELLYFIN_PORT_HTTP: HTTP port (default: 8096)JELLYFIN_PORT_HTTPS: HTTPS port (default: 8920)DOMAIN: Your domain nameTZ: TimezoneRENDER_GID: Render group ID (get withgetent group render)
Tonemapping
For detailed information about HDR tonemapping options, see tonemapping.md
Troubleshooting
-
Hardware Acceleration Not Working
- Verify GPU devices are properly mapped
- Check render group ID matches your system
- Ensure proper drivers are installed
-
Performance Issues
- Try different tonemapping algorithms
- Check CPU/GPU usage
- Limit concurrent transcoding sessions
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Jellyfin Project
- Docker
- Hardware acceleration guides from various sources
Support
If you encounter any issues, please open an issue on GitHub.