Run Plex on an Ubuntu Server at Home

Sep 3, 2019

System Administration Tutorial

By: Brandon Quakkelaar

Recently I’ve decided that having limited high quality entertainment choices is better than having endless choices that are of questionable quality. So my household decided to end our Netflix subscription. This decision motivated me to build a private streaming media server for our home. Here is how I created a home media server with Plex and a home server tower.

Choosing the Media Server

There are two popular software options for home media server. Plex and Kodi. They are both free to use, though Plex does have a premium subscription option to unlock advanced features. These two media servers are very similar, and I believe they’ve been forked from the same original open source project.

I knew my household would be using our PS4 as a client of the media server. This ended up being the detail that helped me make the decision between the two. When I saw that Kodi recommended using the Plex app for streaming on the PS4, I decided to use Plex directly.

Choosing the Hardware

This Plex media server will need some hardware to run on. In my case, this meant I’d need to acquire new computers because everything I have are either not suited to the job (e.g. laptops), are already dedicated to something else (e.g. Raspberry Pi, PS4), or don’t exist (i.e. I don’t have any other computers).

So, I needed to get a server, of some type, to run Plex on. I didn’t want to spend the time building a server myself. Rather than dealing with potential hardware hiccups, I wanted to focus on the software and networking parts of this project. So I considered these three options:

  1. Raspberry Pi
  2. NAS
  3. Some kind of home server or PC

The Raspberry Pi was initially the more attractive option. But, I doubt that the little ARM processor will be able to keep up. I could see it getting really bogged down if there’s more than one stream, or if any transcoding is needed.

Next to check out was a NAS. These seemed ideal at first. But their shine dimmed as I dug into prices and specifications. Price was the key factor. I could easily spend around four hundred dollars on an entry level NAS that had no hard disks.

A quick web search for “Home Server” brought me to the Dell PowerEdge T30 on sale at Amazon for $376.20. This seemed like a good option. It came with a Intel Xeon E3-1225 v5 3.3GHz processor, 8GB of RAM, and a 1TB HD. This looked like a great value.

To make sure the T30 would work, I started investigating CPU requirements in more depth. I wanted my server to handle transcoding two 1080p video files simultaneously. Plex recommended that transcoding one 1080p (10Mbps, H.264) file would need a CPU with a 2000 PassMark score. So, getting a CPU with a 4000 score should theoretically be able to double that number to two. The Xeon E3-1225 v3 has a score of 7,830. That meets my requirements and has plenty of cushion.

The T30 had the processing power, had the 1TB disk, was budget friendly, and already built. It didn’t need anything more. I just had to un-box it, plug in power and some initial peripherals (to handle OS installation) and connect it to my network via Ethernet.

Choosing the Operating System

I didn’t have any desire to mess with Windows for this project. I’ve been using Linux for most of my recent projects and I’d like to continue that trend. There’s also nothing about Plex that requires Windows software.

I settled on using Ubuntu Server. It’s a widely used distribution of Linux that has a lot of documentation available.

Install Ubuntu Server

Download the ISO from their website.

Once it has finished downloading, make a boot disk with it. This is very simple with Windows 10.

  1. Place a write-able disk in your disk drive.
  2. Right click on the Ubuntu ISO file and select “Burn disk image.”

Get the boot disk in to the DVD drive of your server. Then with the disk in the drive, turn on the server.

As the server boots, smash that F12 key to enter BIOS to Boot from the DVD drive.

Another option is to create a bootable thumb drive using a tool like Balena Etcher to image the drive. I used writeable DVDs because I have so many left over from the 2000s that I just might as well use them up.

Ubuntu’s documentation is very good. Follow these directions for installing Ubuntu Server. They have screenshots and instructions of their installation screens, so I’m not going to go into too many details here.

When asked, be sure to install SSH for remote access. This allows you to manage the server from your regular workstation. So you can put your server out of the way. And, you don’t have to worry about connecting monitors or keyboards to work on it. Finish off the installation by restarting the box.

Once you’ve finished installing Ubuntu Server it should:

So, now look in your router’s connected devices to find your server’s IP address on your network.

Log in to your server from your main workstation via SSH:

$ ssh 192.168.1.11 -l quakkels

Use your server’s local network IP address and your user’s username in the command above.

The next thing we need to do is install Samba on the server.

Install Samba

I want to be able to access the media folder that’s on my server from my laptop. I need Samba installed in Ubuntu to do that.

$ sudo apt-get install samba

Then add a user to Samba. I’ll use the quakkels user.

$ sudo smbpasswd -a quakkels

Then, create a folder to share.

$ cd ~
$ mkdir library

Now, edit the configuration file with your preferred editor. I’m using Nano.

sudo nano /etc/samba/smb.conf

Scroll down to the end of the file and add these lines.

[library]
   path = /home/quakkels/library
   available = yes
   valid users = quakkels
   read only = no
   browsable = yes
   public = yes
   writeable = yes

Replace library with the name of your own shared folder and quakkels with your own user.

Save the file and exit the editor.

Restart the smb daemon to apply the configuration changes.

sudo service smbd restart

So at this point the share should be working and accessible on your network. Use Windows File Explorer to test it.

I navigated to \media\library and logged in with the Samba user quakkels and placed a file. Test succeeded!

Install the Plex Media Server

Unfortunately, Plex is not available via apt-get in Ubuntu. But the Plex website does lay out a process for installing the server on Linux.

Start by downloading the .deb file for Plex. I found the .deb file available here: https://downloads.plex.tv/plex-media-server-new/1.16.5.1554-1e5ff713d/debian/plexmediaserver_1.16.5.1554-1e5ff713d_amd64.deb and I’ll be using that URL with wget in Ubuntu to download it directly to the server.

$ cd ~
$ wget https://downloads.plex.tv/plex-media-server-new/1.16.5.1554-1e5ff713d/debian/plexmediaserver_1.16.5.1554-1e5ff713d_amd64.deb

Then, once the .deb packaged has finished downloading, we can install it with dpkg.

$ sudo dpkg -i plexmediaserver_1.16.5.1554-1e5ff713d_amd64.deb

Now you can navigate to the Plex web site from a computer on your network by going to http://{your-servers-ip}:32400/web/.

Plex is now running. You can follow Plex documentation to add Plex repositories for future updates, and for adding your media to Plex libraries.

Further Reading