Plex Media Server is a widely used software to store all your digital media content and access it via various client applications. It is popular among users for its ability to store TV Shows and Movie Libraries and share content with friends and family members. Plex Media Server has continuously grown in popularity and now supports many platforms. Some of the most popular client applications for accessing content from a Plex Media Server include NVIDIA Shield, Roku, Mobile App, and many more. The software organizes your files and content into categories, making it easy to find and use. In addition, the Plex Media Server provides security and privacy features that allow you to control who can access your content and when. The Plex Media Server is a great way to store and share digital media content.
In the following tutorial, you will learn how to install Plex Media Server on Ubuntu 22.10, 22.04, and 20.04 Linux LTS by securely importing the GPG key and official Plex repository and some tips on basic sets creating a reverse proxy with Nginx for users that wish to access Nginx remotely; this is not required for internal home networks.
Table of Contents
Update Ubuntu – Upgrade System Packages
Before proceeding with the tutorial, ensuring your system is up-to-date with all existing packages is good.
sudo apt update
Optionally, you can list the updates for users who require review or are curious.
apt list --upgradable
Proceed to upgrade any outdated packages using the following command.
sudo apt upgrade
Install Plex Media Server on Ubuntu Linux
For the Plex Media server installation, you must create a repository file that pulls directly from the Plex repository. This ensures you install and update straight from the official source using the apt package manager.
First, open your terminal (CTRL+ALT+T), then run the following command to ensure the required packages are installed; these will most likely already be installed for most users.
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl -y
Import the GPG key using the following terminal command.
curl -fsSL https://downloads.plex.tv/plex-keys/PlexSign.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/plex.gpg
Next, import the repository with the following command.
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
Before installing Plex, run the apt update command to reflect the new repository imported.
sudo apt update
Install the Plex Media Server on Ubuntu using the following apt install command.
sudo apt install plexmediaserver -y
You will see the following prompt advising you about your Plex source list during the installation.
Example:
Type “N” to proceed with the installation.
By default, the Plex Media service should be automatically started. To verify this, use the following systemctl status command.
systemctl status plexmediaserver
Example output:
If the service is not active, use the following command to start Plex Media Server:
sudo systemctl start plexmediaserver
Next, enable on system boot:
sudo systemctl enable plexmediaserver
To restart the service, use the following:
sudo systemctl restart plexmediaserver
Configure UFW Firewall on Ubuntu Linux
Before proceeding any further, you should configure your UFW firewall. For most users, this should be enabled by default or enable it using the following command.
sudo ufw enable
Add the Plex Media Server port 32400; you can customize the port later if you wish; ensure you delete this rule if you allow another and swap it in the Plex Media server dashboard.
sudo ufw allow 32400
Configure Ubuntu Server SSH on Ubuntu Linux
For users with Plex Media Server installed on a remote Ubuntu 22.04 server, you will need to set up an SSH tunnel on your local computer for initial setup to allow outside connections.
Replace {server-ip-address} with your own for example 192.168.50.1 etc.
Example:
ssh {server-ip-address} -L 8888:localhost:32400
For users new to SSH, you may need to install it.
sudo apt install openssh-server -y
Next, start the service.
sudo systemctl enable ssh -y
Now you can access the Plex Media Server by accessing the localhost in your web browser.
http://localhost:8888/web
Or the alternative if the above address does not work.
localhost:32400/web/index.html#!/setup
THROUGH AN SSH TUNNEL, the HTTP request will be redirected to http://localhost:32400/web, the remote server.
Once the initial setup is done, you will access your Plex Media Server with your remote server IP address.
https://{server-ip-address}:32400
Configure Plex Media Server in WebUI on Ubuntu Linux
Now that Plex is installed on your system, you must configure and finish the setup through the WebUI. To access this, open your preferred Internet Browser and navigate to http://127.0.0.1:32400/web or http://localhost:32400/web.
Example:

Now, you can log in using an existing social media account listed above or with your e-mail to register a new account if you are new to Plex. Once logged in, you will begin the initial configuration setup.
Step 1. How Plex Works
The first configuration page describes Plex and how it works in a concise example.
Navigate to GOT IT! and leave a click to proceed to the next page.
Example:
Note, depending on the Internet Browser you use. Firefox users will notice a message prompting them to enable DRM; this choice is needed; without it, Plex WebUI may not work correctly.
Step 2. Optional Plex Pass
Next, you will be prompted to upgrade to Plex Pass possibly. This is optional; however, Plex Pass benefits HDR options and access to Beta builds. You can always set this up later if you want to skip-click the “X” on the top right-hand corner.
Example:
Step 3. Server Setup
Configure your server name, and you can name this anything you desire and have the option to disable “Allow me to access my media outside my home.”
By default, access to outside media is enabled; if you are not going to do this, untick the feature.
Once configured, click the NEXT button.
Example:
Step 4. Media Library
The Media Library page gives you the option to pre-add your media directories. If you have a media drive or folder ready, click the ADD LIBRARY button.
Example:
Now select the type of media you want your folders to be organized into tv shows, movies, music, etc. Click the NEXT button to proceed to add folders.
Example:
Click the BROWSE FOR MEDIA FOLDER button and select the media directory.
Example:
The last option is that the Advanced options appear once the folder is added. Here, you can further customize Plex to your liking.
Once done, click ADD LIBRARY to continue back to the initial configuration setup installation.
Example:
Step 5. Finishing up
Next, hit the NEXT button to finish the initial setup with or without adding a Media Library.
Example:
The next screen informs you that you are all set. Click the DONE button to proceed to Plex Dashboard.
Example:
Now you will arrive at your Plex Dashboard.
Example:
Configure/Setup Media Files & Folders Permissions
During the initial setup, you may have noticed that your media did not appear or have problems adding content that won’t be picked up. Plex refused to find the content on your existing hard drive’s internal and external secondary. This is partly due to Plex creating a dedicated user account named plexuser, which needs to read and execute permission on your media directories.
Ubuntu permissions can be set using chown or setfalc; both are good. Some examples of how to apply are below.
setfalc way example:
sudo setfacl -R -m u:plex:rx /media/yourfolder/
sudo setfacl -R -m u:plex:rx /media/yourfolder/tv
sudo setfacl -R -m u:plex:rx /media/yourfolder/movies
These commands require the ACL package to be installed; if this is missing, use the following command to install.
sudo apt install acl -y
Chown way example:
sudo chown -R plex:plex /media/yourfolder/
Or individual files in the hard drive if other folders are present that you do not want Plex to touch/access.
sudo chown -R plex:plex /media/yourfolder/tv
sudo chown -R plex:plex /media/yourfolder/movies
Configure/Setup Nginx as a Reverse Proxy on Ubuntu Linux
You can set up a reverse proxy to access Plex Media Server from a remote computer or network. In this example, the tutorial will set up an Nginx proxy server.
First, install Nginx:
sudo apt install nginx -y
Nginx should be enabled by default if it is not activated using the following command.
sudo systemctl enable nginx --now
Now check to make sure Nginx is activated and has no errors:
systemctl status nginx
Example output:
Now, create a new server block as follows:
sudo nano /etc/nginx/conf.d/plex.conf
You will need an active domain name which can be purchased for as little as 1 to 2 dollars if you do not have one. NameCheap has the best cheap domains going around and if you prefer a .com, use Cloudflare.
After you have created your sub-domain, add the following to the server block file:
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;
#upgrade to WebSocket protocol when requested
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
Save the file (CTRL+O), then exit (CTRL+X).
Now do a dry run to make sure no errors in the Nginx configuration or your server block:
sudo nginx -t
If everything is working correctly, the example output should be:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload Nginx for the change to take effect:
sudo systemctl reload nginx
If you have set up your domain and DNS records to point to your server IP, you can now access your Plex Media Server at plex.example.com.
Secure Nginx with LeLet’sncrypt SSL Free Certificate
Ideally, you would want to run your Nginx on HTTPS using an SSL certificate. The best way to do this is to use Let’s Encrypt, a free, automated, and open certificate authority run by the nonprofit Internet Security Research Group (ISRG).
First, install the certbot package as follows.
sudo apt install python3-certbot-nginx -y
Once installed, run the following command to start the creation of your certificate:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
During the certificate installation, you will get a notice to receive e-mails from EFF(Electronic Frontier Foundation). Choose either Y or N then your TLS certificate will be automatically installed and configured for you.
This ideal setup includes force HTTPS 301 redirects, a Strict-Transport-Security header, and OCSP Stapling. Just make sure to adjust the e-mail and domain name to your requirements.
Now your URL will be HTTPS://www.example.com instead of HTTP://www.example.com.
If you use the old HTTP URL, it will automatically redirect to HTTPS.
Optionally, you can set a cron job to renew the certificates automatically. Certbot offers a script that does this automatically, and you can first test to ensure everything is working by performing a dry run.
sudo certbot renew --dry-run
If everything is working, open your crontab window using the following terminal command.
sudo crontab -e
Next, please specify the time when it should auto-renew. This should be checked daily at a minimum, and if the certificate needs to be renewed, the script will not update the certificate. If you need help finding a good time to set, use the crontab.guru free tool.
00 00 */1 * * /usr/sbin/certbot-auto renew
Update Plex Media Server on Ubuntu Linux
Plex can be updated as per the standard apt update command that you would use most of your time upgrading packages on your system.
To check for updates:
sudo apt update
If one is available, use the upgrade command:
sudo apt upgrade plexmediaserver -y
Remove Plex Media Server on Ubuntu Linux
If you no longer wish to use Plex and want to remove it from your Ubuntu system, execute the following command:
sudo apt autoremove plexmediaserver --purge -y
Note, if you installed the Nginx reverse proxy, do not forget to disable it and, if needed, delete the configuration file of your domain.
Lastly, remove the repository located in /etc/apt/sources.list.d/ if you do not need to re-install Plex again on your Ubuntu system.
sudo rm /etc/apt/sources.list.d/plexmediaserver.list
Lastly, for good maintenance and security, remove the GPG key located in the usr/share/keyrings/.
sudo rm usr/share/keyrings/plex.gpg