Files
portainer-core/stacks/jellyfin.yml
T

70 lines
2.2 KiB
YAML

version: '3.8'
# Jellyfin - Media Server with GPU Transcoding
# Backlog: Application Deployment
# Ports: 8096 (HTTP), 8920 (HTTPS), 7359 (Auto-discovery), 1900 (DLNA)
# GPU: YES - Requires NVIDIA Container Toolkit
# Storage: SSD (config/cache), HDD (media files)
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: 1000:1000 # Replace with your UID:GID (run: id)
network_mode: host
restart: unless-stopped
volumes:
# Config and cache on SSD (performance-critical)
- /home/jpmschweitzer/docker-data/jellyfin/config:/config
- /home/jpmschweitzer/docker-data/jellyfin/cache:/cache
# Media files on HDD (read-only for safety)
- /mnt/media/jellyfin/movies:/media/movies:ro
- /mnt/media/jellyfin/series:/media/series:ro
environment:
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
- TZ=Europe/Amsterdam
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu, video, compute, utility]
# GPU Transcoding Setup:
# 1. Deploy stack
# 2. Verify GPU access: docker exec jellyfin nvidia-smi
# 3. Access http://localhost:8096
# 4. Complete initial setup wizard
# 5. Navigate to: Dashboard → Playback → Transcoding
# 6. Configure hardware acceleration:
# - Hardware acceleration: NVIDIA NVENC
# - Enable hardware decoding: Check all applicable formats
# - Enable hardware encoding: Enabled
# - Encoding preset: Auto or High Quality
# 7. Test with video playback
# 8. Monitor GPU: watch -n 1 nvidia-smi
#
# Expected Results:
# - Dashboard shows "(hw)" during transcoding
# - nvidia-smi shows Video Engine usage
# - CPU usage remains low during transcoding
# - RTX 2080 Ti can handle multiple 4K transcodes simultaneously
#
# Media Organization:
# /mnt/media/jellyfin/
# ├── movies/
# │ ├── Movie Title (Year)/
# │ │ └── Movie Title (Year).mkv
# ├── tv/
# │ ├── TV Show Name/
# │ │ ├── Season 01/
# │ │ │ ├── S01E01.mkv
# │ │ │ └── S01E02.mkv
# └── music/
# ├── Artist/
# │ ├── Album/
# │ │ └── Track.mp3