Use Cases

Setting Up Plex Media Server on Proxmox VE

A complete guide to running Plex Media Server on Proxmox VE, covering LXC vs VM deployment, GPU passthrough for hardware transcoding, storage mounting, and media library organization.

ProxmoxR app icon

Managing Proxmox? Try ProxmoxR

Monitor and control your VMs & containers from your phone.

Try Free

Why Run Plex on Proxmox?

Plex Media Server turns your personal media collection into a polished streaming service accessible from any device. Running it on Proxmox VE gives you the flexibility to allocate precise resources, pass through a GPU for hardware transcoding, and keep your media server isolated from other workloads. Whether you choose an LXC container for efficiency or a full VM for maximum compatibility, Proxmox makes the deployment straightforward.

LXC vs VM: Which Should You Choose?

For most users, an LXC container is the better choice. It uses far less memory and CPU overhead than a VM, boots in seconds, and still provides full isolation for the Plex process. A container running Plex typically consumes 512 MB to 1 GB of RAM at idle, compared to 2 GB or more for a VM with a full OS.

Choose a VM if you need to pass through a dedicated GPU (like an NVIDIA card) that requires kernel-level driver access, or if you want to run Plex on Windows. For Intel Quick Sync or integrated GPU passthrough, LXC works perfectly.

Creating the LXC Container

Start by downloading an Ubuntu 22.04 or Debian 12 container template from the Proxmox template repository. Then create the container with adequate resources:

# Create LXC container via CLI
pct create 110 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
  --hostname plex \
  --memory 2048 \
  --cores 2 \
  --rootfs local-lvm:16 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --unprivileged 1 \
  --features nesting=1 \
  --start 1

GPU Passthrough for Hardware Transcoding

Hardware transcoding dramatically reduces CPU usage during playback. For Intel Quick Sync (iGPU), you need to pass the render device into the container. First, verify the device exists on the host:

# On the Proxmox host, check for the render device
ls -la /dev/dri/
# You should see renderD128

# Get the device group ID
stat -c '%g' /dev/dri/renderD128

Edit the container configuration to pass through the GPU device:

# Edit /etc/pve/lxc/110.conf and add:
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0 0

Inside the container, install the driver packages and add the Plex user to the appropriate group:

# Inside the container
apt update && apt install -y intel-media-va-driver-non-free vainfo

# Verify hardware acceleration
vainfo

# Add plex user to render group
usermod -aG render plex

Installing Plex Media Server

Install Plex inside the container using the official repository:

# Add the Plex repository
curl https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor -o /usr/share/keyrings/plex-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/plex-archive-keyring.gpg] https://downloads.plex.tv/repo/deb public main" > /etc/apt/sources.list.d/plexmediaserver.list

apt update && apt install -y plexmediaserver

# Enable and start the service
systemctl enable plexmediaserver
systemctl start plexmediaserver

Mounting Media Storage

Your media files likely live on a separate storage pool — a ZFS dataset, an NFS share, or a dedicated disk. Proxmox lets you mount host directories directly into containers using bind mounts, which avoids copying data and provides near-native I/O performance.

# On the Proxmox host, add a bind mount to the container config
# Edit /etc/pve/lxc/110.conf
mp0: /mnt/media,mp=/media

# If using NFS, mount it on the host first
# /etc/fstab on host:
192.168.1.50:/volume1/media /mnt/media nfs defaults 0 0

Inside the container, verify the mount is accessible and set permissions so Plex can read the files:

# Inside the container
ls -la /media/
chown -R plex:plex /media/

Organizing Your Media Library

Plex relies on a specific folder structure to correctly identify and fetch metadata for your content. A well-organized library prevents mismatches and speeds up scanning:

/media/
├── movies/
│   ├── The Matrix (1999)/
│   │   └── The Matrix (1999).mkv
│   └── Inception (2010)/
│       └── Inception (2010).mkv
├── tv/
│   ├── Breaking Bad/
│   │   ├── Season 01/
│   │   │   ├── Breaking Bad - S01E01.mkv
│   │   │   └── Breaking Bad - S01E02.mkv
│   │   └── Season 02/
│   └── The Office/
└── music/
    └── Artist Name/
        └── Album Name/

Performance Tuning

A few adjustments can make a noticeable difference in Plex performance on Proxmox:

  • Allocate enough cores — Give Plex at least 2 cores. If you rely on software transcoding, 4 or more cores are recommended for simultaneous streams.
  • Use SSD for metadata — Plex stores thumbnails, metadata, and database files in its data directory. Placing the container root on SSD storage significantly improves library browsing speed.
  • Enable hardware transcoding — Even a basic Intel iGPU can handle 10+ simultaneous 1080p transcodes with minimal CPU usage. This requires a Plex Pass subscription.
  • Set CPU type to host — If using a VM, set the CPU type to host to expose all instruction sets to Plex.

Backup Strategy

Back up the Plex container regularly using Proxmox Backup Server or the built-in vzdump tool. The critical data to protect is Plex's application data directory, which contains your watch history, playlists, and metadata — not the media files themselves.

# Manual backup of the container
vzdump 110 --storage backup-storage --mode snapshot --compress zstd

If you manage multiple Proxmox nodes or want a quick way to monitor your Plex container's resource usage remotely, tools like ProxmoxR let you check VM and container status from your phone — useful for verifying that Plex is running after a host reboot without needing to open a laptop.

Conclusion

Running Plex on Proxmox VE gives you a reliable, efficient media server with fine-grained control over resources and hardware access. An LXC container with Intel Quick Sync passthrough is the sweet spot for most homelabs — low overhead, fast transcoding, and simple maintenance. Once configured, your Plex server will run quietly in the background, streaming your media collection to every device in your home.

Take Proxmox management mobile

All the features discussed in this guide — accessible from your phone with ProxmoxR. Real-time monitoring, power control, firewall management, and more.

ProxmoxR

Manage Proxmox from your phone

Monitor, control, and manage your clusters on the go.

Free 7-day trial · No credit card required