How to Install Plex Media Server on a Proxmox Ubuntu VM

Running Plex Media Server inside a Proxmox Ubuntu virtual machine is one of the more flexible ways to self-host your media library. It keeps Plex isolated from your host system, makes snapshots and backups straightforward, and lets you allocate resources precisely. The process involves a few distinct layers — Proxmox VM creation, Ubuntu configuration, and Plex installation — each with its own variables that affect how well everything runs together.

What You're Actually Building

When you install Plex this way, you're running a full Ubuntu virtual machine on top of Proxmox VE (the bare-metal hypervisor). Plex Media Server runs inside that VM as a background service. Your media files can live on the Proxmox host and be passed through to the VM, or they can sit on network-attached storage (NAS) mounted inside the VM itself.

This is different from running Plex in a Proxmox LXC container, which is lighter but more complicated to configure for hardware transcoding. A VM gives you better compatibility and a more familiar Linux environment at the cost of slightly higher resource overhead.

Step 1: Create the Ubuntu VM in Proxmox

In the Proxmox web UI:

  1. Upload an Ubuntu Server ISO (22.04 LTS is a stable, widely-supported choice) to your Proxmox ISO storage.

  2. Click Create VM and work through the wizard:

    • OS tab: Select your uploaded ISO
    • System tab: Keep defaults; enable the QEMU Guest Agent option
    • Disks tab: Allocate at least 32 GB for the VM OS disk — Plex's metadata and database grow over time
    • CPU tab: Assign at least 2 cores; 4 is more comfortable for active transcoding
    • Memory tab:4 GB minimum; 8 GB if you expect simultaneous streams or large libraries
    • Network tab: Use the default VirtIO network adapter
  3. Start the VM and complete the standard Ubuntu Server installation. Set a static IP or configure a DHCP reservation so the VM's address doesn't change — Plex clients need a consistent target.

Step 2: Prepare the Ubuntu VM

Once Ubuntu is installed and you're logged in via SSH or the Proxmox console:

Update the system first:

sudo apt update && sudo apt upgrade -y 

Install the QEMU Guest Agent (enables cleaner Proxmox integration):

sudo apt install qemu-guest-agent -y sudo systemctl enable qemu-guest-agent sudo systemctl start qemu-guest-agent 

If you plan to pass media through from the Proxmox host, you'll either set up a VirtIO filesystem passthrough or mount a network share (NFS or SMB) inside the VM. NFS tends to be simpler for Proxmox-to-VM media sharing on the same physical host.

Step 3: Install Plex Media Server 🖥️

Plex isn't in the default Ubuntu repositories, so you add it via Plex's own package repository.

Add the Plex repository and install:

# Install required dependencies sudo apt install curl apt-transport-https -y # Add Plex's GPG key curl https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plex.gpg > /dev/null # Add the Plex repository echo "deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list # Update and install sudo apt update sudo apt install plexmediaserver -y 

Enable and start the Plex service:

sudo systemctl enable plexmediaserver sudo systemctl start plexmediaserver 

Verify it's running:

sudo systemctl status plexmediaserver 

Step 4: Initial Plex Setup

Plex's setup wizard runs in a browser and — critically — must be accessed from the same machine running the server on first launch, or via an SSH tunnel.

If you're accessing from another machine on your network, set up an SSH tunnel:

ssh -L 8888:localhost:32400 your_ubuntu_username@VM_IP_ADDRESS 

Then open http://localhost:8888/web in your browser. Sign in with your Plex account and follow the setup wizard to add your media libraries. Point Plex to whatever directory your media files are mounted or stored in inside the VM.

The Variables That Determine Your Experience

How well this setup performs depends on several factors that vary by user:

VariableLower EndHigher End
CPU cores assigned2 cores (1–2 streams)4–8 cores (multiple streams)
RAM allocated4 GB (small library)8–16 GB (large library, metadata)
Transcoding typeSoftware (CPU-heavy)Hardware (requires passthrough setup)
Storage for mediaLocal Proxmox disk passthroughNAS via NFS/SMB
Network configBasic bridged networkingVLAN-segmented, dedicated NIC

Hardware transcoding deserves special mention. If you want Plex to use a GPU or Intel Quick Sync for transcoding (rather than burning CPU cycles), you'll need to configure PCIe passthrough or GPU passthrough in Proxmox — a non-trivial process that depends on your specific CPU and motherboard's IOMMU support. Some users opt for an LXC container specifically for easier hardware transcoding access, accepting the trade-off in compatibility.

Keeping Plex Updated 🔄

Because you added the official Plex repository, updates come through the standard Ubuntu package manager:

sudo apt update && sudo apt upgrade -y 

This is one advantage of the repository method over downloading .deb files manually — updates are handled consistently alongside your other system packages.

Where Individual Setups Diverge

A single-user household streaming direct-play content over a local network has very different requirements than someone running four simultaneous transcoded streams for remote family members. Media file formats matter too — a library of HEVC 4K files demands far more from the transcoding pipeline than H.264 1080p content. The Proxmox host's underlying hardware, how media storage is attached, and whether hardware transcoding is configured all shape what your specific installation will actually deliver in practice.