# Jellyfin Latest RC (Preview) Docker Image This repository contains a `Dockerfile` and `docker-compose.yml` to automatically build and run the latest Release Candidate (Preview) version of **Jellyfin Server**, **Jellyfin Web**, and **Jellyfin FFmpeg** for Ubuntu Noble (24.04). Instead of pinning specific `.deb` package versions, the build process dynamically queries the official Jellyfin APT repository and GitHub Releases API to retrieve and install the newest available RC packages on every build. T Some settings are specific to Intel ARC support. --- ## 🛠️ Features - **Always Up-to-Date RC**: Fetches the latest candidate binaries from `repo.jellyfin.org` and `jellyfin-ffmpeg` GitHub releases automatically. - **Hardware Acceleration Ready**: Configured for NVIDIA and VA-API GPU Passthrough. - **LinuxServer.io Base**: Uses `ghcr.io/linuxserver/baseimage-ubuntu:noble` for reliable init scripts, user mapping (`PUID`/`PGID`), and clean process handling. --- ## 🚀 Quick Start with Docker Compose ### 1. File Structure Ensure your directory contains the following files: ``` . ├── Dockerfile ├── docker-compose.yml └── README.md ``` ### 2. `docker-compose.yml` ```yaml services: jellyfin-rc: build: context: . dockerfile: Dockerfile args: BUILD_DATE: "${BUILD_DATE:-}" VERSION: "latest-rc" container_name: jellyfin-rc network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - NVIDIA_VISIBLE_DEVICES=all # Optional: for NVIDIA GPU - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility volumes: - ./config:/config - /path/to/media/tvshows:/data/tvshows - /path/to/media/movies:/data/movies # Optional: Intel / AMD VA-API Hardware Transcoding # devices: # - /dev/dri:/dev/dri restart: unless-stopped ``` ### 3. Build & Run To build the image and start the container: ```bash docker compose up -d --build ``` --- ## 🏗️ Building manually with Docker CLI If you prefer building and running with standard Docker CLI commands: ### Build Image To ensure Docker fetches the latest RC packages rather than using build-cache, use the `--no-cache` flag: ```bash docker build --no-cache -t jellyfin-rc:latest . ``` ### Run Container ```bash docker run -d \ --name=jellyfin-rc \ --net=host \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -v ./config:/config \ -v /path/to/media:/data \ --restart unless-stopped \ jellyfin-rc:latest ``` --- ## 🔄 Updating to the Newest Release Candidate Because the Dockerfile dynamically fetches the latest `.deb` packages during the build step, you can pull and build new RC updates anytime by running: ```bash docker compose build --no-cache docker compose up -d ``` --- ## ⚙️ Environment Variables & Configuration | Variable | Default | Description | | :--- | :--- | :--- | | `PUID` | `1000` | User ID for file permissions | | `PGID` | `1000` | Group ID for file permissions | | `TZ` | `Etc/UTC` | Container Timezone | | `NVIDIA_VISIBLE_DEVICES` | `all` | Exposes GPUs for NVIDIA transcode | | `NVIDIA_DRIVER_CAPABILITIES` | `compute,video,utility` | Enables NVENC/NVDEC capabilities | --- ## 🍿 Hardware Acceleration (VA-API / NVENC) - **Intel / AMD (VA-API / QuickSync)**: Uncomment the `devices:` mapping in `docker-compose.yml`: ```yaml devices: - /dev/dri:/dev/dri ``` - **NVIDIA GPU**: Ensure the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) is installed on your host system and keep the `NVIDIA_*` environment variables enabled.