Skip to content

Self-host Plex

updated Jul 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

Polished self-hosted media server for movies, TV, and music — the most hands-off way to stream your own library to any device, with painless remote access.

Key facts

CategoryMedia server
LicenseProprietary
StackProprietary core
Min RAM2048 MB
Official imageyes
Measured idle RAM164 MB
Difficulty
Our recommendation

Pick Plex when you want the most hands-off client experience — apps on nearly every TV, console and phone with a hosted account, claim-token setup and automatic remote access — and you accept that the server is proprietary: the GitHub repo is only the Docker packaging, and the `beta`/`public` image tags download the Plex binary at start. The official image is one container with `/config`, `/transcode` and `/data` mounts, normally on host networking. Plex's requirements page says 4 GB "is typically more than sufficient" and Linux "can often happily run with even less", which is where our 2 GB floor sits. If you want an open-source server with no subscription gating, Jellyfin is the alternative in this catalog.

What you need

  • Any VPS with at least 2048 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install with Docker Compose

Save this as compose.yml and run docker compose up -d:

# Plex Media Server — host networking for DLNA/remote
services:
  plex:
    image: plexinc/pms-docker
    network_mode: host
    environment: { PLEX_CLAIM: claim-xxxx }   # from plex.tv/claim
    volumes: ["./config:/config", "/srv/media:/data"]
# docker compose up -d  →  http://SERVER_IP:32400/web

What you take on

Plex is easy to run and hard to misjudge commercially; its own support pages spell out the gates:

non-negotiableSince 29 April 2025 remote video playback from your own server requires that either the server's admin account or the viewing account has Plex Pass, or the viewer has a Remote Watch Pass ($2.99/month or $29.99/year list price, after an introductory $1.99/$19.99 that ran until 1 June 2026; Plex Pass $6.99/month or $69.99/year, and a new Lifetime Plex Pass rose from $249.99 to $749.99 on 1 July 2026). Local-network streaming, Plexamp music and Plex Photos are exempt. Hardware (Quick Sync) transcoding in the container also needs Plex Pass plus --device=/dev/dri:/dev/dri.
non-negotiableThe /config volume can grow to hundreds of GB for large libraries and its filesystem must support file locking — upstream says NFS/SMB mounts "will result in database corruption". /transcode expects tens of GB of scratch; omit it and container storage is used.
non-negotiablePLEX_CLAIM (from plex.tv/claim) only logs the server in on first run and "is ignored" if the server is already claimed. Without host networking the server "is essentially behind two routers" and needs ADVERTISE_IP plus manual forwarding of 32400/tcp (and 1900, 8324, 32410, 32412–32414, 32469 for discovery/DLNA); Remote Access itself is a forward of a public port to internal 32400, with UPnP/NAT-PMP as the automatic path and double NAT the usual blocker.
non-negotiableThe latest tag ships a fixed binary; public and beta images contain no server binary and fetch the current release on every restart, so a restart is also an upgrade. The beta tag falls back to public builds unless the server is logged in with Plex Pass. As of September 2026 the Linux release is 1.43.4.
non-negotiableOur 2 GB floor is below upstream's "4GB of RAM is typically more than sufficient" line but inside its "Linux-based installs can often happily run with even less"; the real constraint is CPU — the minimum is an Intel Core i3 or equivalent, and transcoding for several users "may well need something faster".

Head-to-head

More in Media server

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.