Docker Compose
Switched to using Docker compose for web services. It’s a lot easier to manage compared to using systemd config files. Using docker makes it very easy to recreate services as well and wipe everything to start from scratch.
Docker Compose for Jellyfin
Here’s an example compose.yml
file for Jellyfin. After
installing Docker, just use docker compose up
to bring up the service.
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
network_mode: 'host'
volumes:
- ./services/jellyfin/config:/config
- ./services/jellyfin/cache:/cache
- ./services/jellyfin/media:/media
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
restart: always
This will store all Jellyfin related files in ./services/jellyfin/*
. Using
these bind points will ensure our config files are persistent.
Hardware Acceleration with Intel QuickSync
The devices
section in the docker compose is to enable the docker container to
access the Intel GPU. This is to enable hardware acceleration on Jellyfin. I had
to spend some time getting Intel QuickSync up and running for the N100 processor
on Ubuntu Jammy so briefly documenting the steps I took.
Install the latest kernel
I didn’t have to compile a newer version of the kernel. Just had to do
sudo apt install --install-recommends linux-generic-hwe-22.04
and that kernel seems to support the N100 and quicksync.
Install jellyfin-ffmpeg
This step is optional but was very helpful to try and debug all the various issues I was seeing
Install intel-gpu-tools
Also optional but very useful to test if video transcoding is actually working
with the intel_gpu_top
application.
Follow Jellyfin HWA guide
Follow the Jellyfin HWA guide. It’s probably better to test everything and make sure it works on the host machine before moving on to docker.
Update docker compose
Add the devices
section to the jellyfin
docker compose service config. It’s
important to do docker compose down && docker compose up
instead of docker compose restart
to make sure the changes are picked up`
TL;DR (auto-generated with llama3.2:1b)
🏠💻📊 Docker Compose for Jellyfin 🌐
The post provides a summary of using Docker Compose to manage web services, including the use of Docker for container orchestration and management. It also discusses how to use Docker Compose with Jellyfin, a media server, to enable hardware acceleration using Intel QuickSync and optional video transcoding features like FFmpeg and Intel GPU tools. The post aims to provide a step-by-step guide on installing and configuring Docker Compose and Jellyfin for improved performance.