In this tutorial, I go through all the steps to getting your very own Raspberry Pi plex server up and running.
This project is perfect for anyone who wants to have a media server that can be accessed by anyone within a household. You can also set it up to be accessed outside your local network.
Plex is a client-server setup where the client directly streams data from the Plex media server. This setup means you can have all your movies, music, and photos located on the one device, the server. In this case, we will be using the Raspberry Pi.
You can then have multiple clients connect to the same server. It is great as you don’t need to have multiple copies of the same media across several devices.
The Plex client is supported on a ton of devices including Windows, Apple, Android, Amazon Fire TV, Chromecast, Xbox, PlayStation, Linux, and so much more. It really is a fantastic home media solution.
If you just want a single client without the whole server setup, then something like the Raspberry Pi Kodi media center might interest you more.
You will need the following equipment to be able to complete this Raspberry Pi Plex server tutorial.
Raspberry Pi 2, 3 or newer
NOTE: This will not work at all on older versions of the Pi. A Raspberry Pi 2 or later will work.
Setting up the Raspberry Pi Plex Server
In this tutorial, I will be using Raspbian so if you haven’t got it installed then check out my guide on how to setup Raspbian here. If you want to run a slim version of Raspbian, then you should take a look at installing Raspbian Lite.
It’s important to make sure you have expanded the SD card to the full size, this setting is found in the Raspi-config. If you installed via the NOOB installer then you don’t need to do this.
1. Now before we install the Plex Media Server software to the Raspberry Pi, we need first to ensure our operating system is entirely up to date by running the following two commands.
sudo apt-get update sudo apt-get upgrade
2. To install the Plex packages to the Raspberry Pi, we will need to add the official Plex package repository.
Before we do that we need to install the “apt-transport-https” package, this package allows the “apt” package manager to retrieve packages over the “https” protocol that the Plex repository uses.
Install the package by running the command below.
sudo apt-get install apt-transport-https
3. Let’s now add the Plex repositories to the “apt” package managers key list. This key is used to ensure the files that you are downloading are in fact from that repository and signed by that key.
Run the following command to download and add the key to the package manager.
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
4. With the Plex GPG key now added, we can finally add the official plex repository to the sources list by running the following command.
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
5. As we have just added a new repository to our sources, we will need to run the “update” command again to refresh the package list.
sudo apt-get update
If you get the error “
/usr/lib/apt/methods/https could not be found.” Then the https transport package hasn’t been installed. Double check that it has been installed correctly.
6. Now that we have set up our Raspberry Pi so that it can read from Plex’s official package repositories we can go ahead and finally install the Plex Media server package to the Pi.
To install the “plexmediaserver” package, go ahead and run the command below.
sudo apt-get install plexmediaserver
7. By default, the Plex Media Server package will utilize a user named “plex“.
To reduce the chances of dealing with annoying permission issues, we will change the server’s default file so that it utilizes the “pi” user instead.
To do this, open the file with the nano editor by using the following command.
sudo nano /etc/default/plexmediaserver
8. Within this file change the PLEX_MEDIA_SERVER_USER line from plex to pi as we have shown in our example below.
Once done, save and exit the file by pressing Ctrl + X then pressing Y and pressing ENTER.
9. As we have made changes to the “default” file, we will need to restart the “plexmediaserver” service. Restarting the service ensures that it loads in our changes and starts using the “pi” user.
You can restart the service by running the command below
sudo systemctl restart plexmediaserver
10. Now it should all be installed, but before we get started, we should make sure the Pi has a static IP, so it’s easy to remember the IP address.
To get your current IP address, enter the following command.
11. Now open up thecmdline.txt file.
sudo nano /boot/cmdline.txt
12. At the bottom of this file, add the following line: (Replacing “YOUR IP” with the IP you got from using hostname -I)
13. Once done, exit by pressing
ctrl x and then
y to save.
14. Now simply restart the Pi by running the following command.
15. The Pi should now always start with the same IP. You can also set this on most routers by tying the mac address of your network device (WiFi or Ethernet) to an IP.
Now the Raspberry Pi Plex media server should be all set up and ready to scan your media and stream it any client that wishes to connect. I will go through some basics of setting everything up below.
Storing Media on the Raspberry Pi
Now there are several ways to store your media on the Raspberry Pi. I will mention each of the methods below.
You can hook up an external hard drive with all your music, movies and whatever else you may have. Setting the Plex program to run as the Pi user means you can plug a USB hard drive in and access the media in Plex without any issues.
You’re also able to mount drives permanently; I have already covered this in a previous tutorial, so be sure to check out my guide on how to mount a USB hard drive to the Raspberry Pi. Make sure you set the user & group owner of the drive to Pi.
Another option is to your Pi up to act as a NAS so you can transfer your media across to it without needing to disconnect and reconnect a hard drive. You can set this all up by following my tutorial on setting up a Raspberry Pi network attached storage. Again make sure you set the group & user owner to Pi or the user that will be running the Plex software.
Lastly, you can use the SD card for storage, but as you could imagine, this will quickly run out of space. You can set up a folder on the SD card to be accessed via the network.
Connecting Clients to The Plex Media Server on the Raspberry Pi
If you’re using an app on your phone, computer, Xbox, PlayStation, or any other device, then the Plex client should be able to pick up on the server automatically.
You will, unfortunately, find the official mobile Plex applications are behind a paywall. For example, you will need to pay money to get full access to all the features. However, all other apps, including the web app, should be free with only a small set of features requiring a subscription.
To connect to the browser, enter the IP followed by the port
/web/. For example, mine is.
You will be prompted to log in, simply sign up or sign in to an existing plex account. You can skip this by just entering by entering the address above again.
Next, you will need to set up your music, movie, and TV show libraries. This process is incredibly easy and shouldn’t be too hard in getting it set up correctly.
1. First select add library in the left-hand side column.
2. Next, select the type of media that is in the folder. If you have more than one type, then you will need to add a new library for each type of media.
3. Next, you will need to select the folder that has all your media in it. For example, mine is on a USB drive that is displayed in the left-hand side column or can be found at
4. Once you add the library, it will now organize your clips in a nice easy to browse interface.
If you need more information on how to setup, name and organize your media library, then Plex has an amazing amount of documentation on naming and organization.
I hope that you have been able to get the Raspberry Pi Plex server up and running without any trouble. If you come across any issues or have some feedback, then please don’t hesitate to leave a comment below.