How to Install Plex Media Server on Ubuntu 18.04 LTS Server or Desktop

This tutorial will be showing you how to install Plex media server on Ubuntu 18.04 LTS server/desktop. Plex is a free piece of software that allows you to organize your movies, TV shows, music and photos in one beautiful interface and stream those media files on your PC, tablet, phone, TV, Roku, etc on the network or over the Internet. Plex can be installed on Linux, FreeBSD, MacOS, Windows and various NAS systems.

Install Plex Media Server on Ubuntu 18.04

First, go to Plex server download page, select Linux and choose Ubuntu 14.04 or newer.

plex ubuntu 18.04

If you are going to install Plex on a headless Ubuntu 18.04 server, then you can go to your browser’s download history, then copy the Plex download link and use wget to download Plex from command line like below.

wget https://downloads.plex.tv/plex-media-server/1.13.5.5332-21ab172de/plexmediaserver_1.13.5.5332-21ab172de_amd64.deb

Once the Plex deb package is downloaded, cd to the download directory. For example, my Plex is downloaded to the Downloads directory under Home, so I run the following command. The tilde (~) represents home directory.

cd ~/Downloads

On Debian based Linux distros (Ubuntu, Linux Mint, etc), dpkg  is the standard command line tool to install deb packages. So run the following command to install the Plex deb package.

sudo dpkg -i plexmediaserver_1.13.5.5332-21ab172de_amd64.deb

The -i is short for --install. Note that when you type the following

sudo dpkg -i plex

You can press the Tab key, which will autocomplete the filename.

plex ubuntu install

Now Plex media server is installed. We can check its status with:

systemctl status plexmediaserver

As you can see, it’s running on my Ubuntu 18.04 system. (Press q to take back control of terminal.)

ubuntu server plex guide

If Plex media server isn’t running, you can start it with:

sudo systemctl start plexmediaserver

Enable Plex Repository

By enabling the official Plex repo, you can update Plex on Ubuntu with apt package manager. The Plex deb package ships with a source list file. To see a list of files installed from a package, run dpkg with -L flag.

dpkg -L plexmediaserver

Open this file with the following command.

sudo nano /etc/apt/sources.list.d/plexmediaserver.list

By default, its content is commented out. Uncomment the last line. (Remove the beginning # symbol).

plex ubuntu repo

Then save and close the file. To save a file in Nano text editor, press Ctrl+O, the press Enter to confirm. To exit, press Ctrl+X.  After that, run the following command to import Plex public key to apt package manager.

wget -q https://downloads.plex.tv/plex-keys/PlexSign.key -O - | sudo apt-key add -

Now update software repository index.

sudo apt update

If you see the following message.

W: Conflicting distribution: https://downloads.plex.tv/repo/deb public InRelease (expected public but got )

You can safely ignore it because it’s a warning, not an error. Plex repository is working fine for Ubuntu 16.04. You will see this message if you use Ubuntu 18.04. You need to wait for Plex developers to fix this problem. If you don’t like to see this message, then disable the Plex repository. You can re-enable this repo when a new version of Plex comes out.

Plex Media Server Initial Setup

If you run the following command:

sudo netstat -lnpt | grep Plex

You can see that Plex media server is listening on 0.0.0.0:32400 and 127.0.0.1:32401.

install plex media server ubuntu ppa

The web-based management interface is available at port 32400. The first time you configure Plex, you must visit Plex via 127.0.0.1:32400/web or localhost:32400/web. If you installed Plex on your Ubuntu 18.04 desktop, then you can search Plex Media Manager in your application menu. It will take you to Plex web interface, which in turn will take you to https://app.plex.tv because you need to sign in with a plex.tv account.

plex on ubuntu server

Note that if Plex is installed on a remote Ubuntu 18.04 server, you need to set up a SSH tunnel by executing the following command on your local computer. Replace 12.34.56.78 with the IP address of the remote Ubuntu server.

ssh 12.34.56.78 -L 8888:localhost:32400

Then you can access Plex web interface via the following URL. This HTTP request will be redirected to http://localhost:32400/web on the remote server through SSH tunnel. After the intitial setup, you can access Plex web interface in the usual way.

http://localhost:8888/web

Once signed in, you will be redirected to localhost:32400 to do the initial setup.

install plex media server ubuntu 18.04

On the next screen, enter a name for your Plex server. Make sure Allow me to access my media outside my home is checked. Then click Next.

plex ubuntu 18.04 repository

Now you can add libraries. Click Add Library button.

plex ubuntu 18.04 server

Select a library type, then click browse for media folder button to add your media folders.

plex media server ubuntu 18.04 setup guide

Note that the plex user need to have read and execute permission on your media directories. For example, my 2T external hard drive is mounted under /media/linuxbabe/ , which is owned by root. Users not in group root can’t access it, so I run the following command to give user plex read and execute permission. (I do not recommend changing ownership with chown or chgrp command. Using the setfacl command will suffice.)

sudo setfacl -m u:plex:rx /media/linuxbabe/

You may also need to assign permission on individual media directories like below.

sudo setfacl -m u:plex:rx /media/linuxbabe/directory-name

It can be tempting to add the recursive flag (-R), which gives plex read and execute permission on every file and sub-directory on the drive.

sudo setfacl -R -m u:plex:rx /media/linuxbabe/

If your external hard drive is only used for storing media files, then you can do so, but if you have sensitive files on the external hard drive, don’t do it.

Once you finish adding your media folders, click Next and then click Done.  You can always add more libraries later.

Redo the Initial Setup

If you made a mistake in the initial setup, you can delete the Preferences.xml file and start it over.

sudo rm /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Preferences.xml

sudo systemctl restart plexmediaserver

Now visit localhost:32400/web again. Plex will tell you there’s an unclaimed server. Click claim it now.

Create Nginx Reverse Proxy.

If you prefer to use a domain name rather than typing http://localhost:32400 to access your Plex media server, then you need to set up a reverse proxy. We can use Nginx for this purpose. Install Nginx from the default Ubuntu software repository.

sudo apt install nginx

Then create a server block file for Plex.

sudo nano /etc/nginx/conf.d/plex.conf

Put the following lines into the file. Replace plex.example.com with your own domain name. Remember to create an A record for the sub-domain in your DNS manager. (If your ISP gives you a dynamic IP address rather than a static IP address, you need to set up dynamic DNS and port forwarding, or use PageKite. )

server {
      listen 80;
      server_name plex.example.com;

      location / {
          proxy_pass http://127.0.0.1:32400;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
}

Save and close this file. Then test Nginx configuration.

sudo nginx -t

If the test is successful, reload Nginx for the change to take effect.

sudo systemctl reload nginx

Now you can access Plex media server via plex.example.com.

Enable HTTPS

To encrypt the HTTP traffic when you visit Plex server from outside, we can enable HTTPS by installing a free TLS certificate issued from Let’s Encrypt. Install Let’s Encrypt client (certbot) on Ubuntu 18.04. Python3-certbot-nginx is the Nginx plugin.

sudo apt install certbot python3-certbot-nginx

Then run the following command to obtain and install TLS certificate.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d plex.example.com

Explanation:

  • --nginx: Use the nginx plugin.
  • --agree-tos: Agree to terms of service.
  • --redirect: Force HTTPS by 301 redirect.
  • --hsts: Add the Strict-Transport-Security header to every HTTP response. Forcing browser to always use TLS for the domain. Defends against SSL/TLS Stripping.
  • --staple-ocsp: Enables OCSP Stapling. A valid OCSP response is stapled to the certificate that the server offers during TLS.

The certificate should now be obtained and automatically installed.

home media server plex

And you can access Plex web interface via HTTPS.

install plex media server ubuntu 18.04 linux

How to Upgrade Plex on Ubuntu 18.04

When a new version of Plex media server comes out, you can upgrade it by executing the following commands.

sudo apt update

sudo apt upgrade

Then restart Plex.

sudo systemctl restart plexmediaserver

I hope this tutorial helped you install Plex media server on Ubuntu 18.04. Take care.

Rate this tutorial
[Total: 15 Average: 4]

Leave a Comment

  • Comments with links are moderated by admin before published.
  • Your email address will not be published.
  • Use <pre> ... </pre> HTML tag to quote the output from your terminal/console.
  • If my answer helped you, please consider supporting this site. Thanks :)