131 lines
3.6 KiB
Markdown
131 lines
3.6 KiB
Markdown
# 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.
|