With Intel igpu pass-through
If you are just looking for a compose file I’ll keep it at the top here:
services:
plex:
image: plexinc/pms-docker:latest # Set specific: plexinc/pms-docker:1.40.2.8395-c67dce28e
container_name: plex
network_mode: host # Change this to 'bridge' to define ports, example ports below
#ports:
#- 32400:32400/tcp
#- 8324:8324/tcp
#- 32469:32469/tcp
#- 1900:1900/udp
#- 32410:32410/udp
#- 32412:32412/udp
#- 32413:32413/udp
#- 32414:32414/udp
# Uncomment the devices section for tv tuners and intel gpus
devices:
#- /dev/dvb:/dev/dvb # Uncomment this device for typical USB TV Tuner cards
- /dev/dri:/dev/dri # Uncomment this to use intel GPUs for Hardware Transcoding
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Dublin # Change this to match your server's timezone
- PLEX_CLAIM= # Uncomment this to setup Plex server, get your claim code from here - https://www.plex.tv/claim/
# Uncomment the lines below to use Nvidia GPUs for Hardware Transcoding
#- NVIDIA_VISIBLE_DEVICES=all
#- NVIDIA_DRIVER_CAPABILITIES=all
volumes:
- /etc/localtime:/etc/localtime:ro # Sync the container's time to the host's time
- ./plexmediaserver:/config # Plex server application data is stored in a folder called 'plexmediaserver' in the same directory as the docker-compose.yaml file
# Uncomment the lines below for each library,
# make sure the path on the left of the colon (:) exists on the host! `/mnt/tv`
#- /mnt/tv:/mnt/tv
#- /mnt/movies:/mnt/movies
#- /mnt/music:/mnt/music
#- /mnt/transcode:/mnt/transcode
restart: unless-stopped
# Uncomment the lines below to use Nvidia GPUs for Hardware Transcoding
#deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: 1
# capabilities: [gpu]
I found the above compose file https://www.gravee.dev/en/configs/docker-compose/plex/ but if you want to see the offical compose file it can be found https://docs.linuxserver.io/images/docker-plex/.
The Installation
If we navigate to our Portainer installation, on the homepage go to stacks
add a stack
add a stack
Call our stack plex (only lower case letters can be using in the naming, it will give a warning if you try to use any characters not allowed.
Copy and paste the the compose file from above into the “web editor” and then press the deploy this stack, that’s it we should now have Plex installed
I can confirm the above compose file works and passes the intel igpu through for Plex to use, I was initially worried because I couldn’t see my igpu in the Truenas GUI:
I had see some screenshots and where I have no options above, others had Intel UHD xxx listed etc, but I did have some hope, in the truenas shell
lspci |grep VGA
gave the output
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c) - this is my IGPU
07:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 52)- this is my IPMI card
I was still somewhat worried as the igpu still doesn’t specify UHD770 etc but this atleast confirmed the OS can see my igpu and everything worked fine after the container loaded, don’t forget to enable hardware acceleration in Plex Account Settings – under Transcoder options, then select your gpu from the dropdown menu:
Here is a quick screenshot of 2 transcodes – 1 on my mobile device and another within a web browser, the (hw) on both confirms that plex is using the Intel UHD 770 igpu, on the mobile device I let Plex auto transcode and on the web browser I manually specified a resolution.
That’s it, quick and simple setup.
Leave a Reply