Plex Media Server is a powerful software that allows you to store all your digital media content in one place. It is extremely popular with people who have large TV and movie libraries, as it allows them to share their content with friends and family. Plex Media Server organizes your files and content into categories, making it easy to find what you are looking for. It also supports a wide range of client applications to access your content on your TV, NVIDIA Shield, Roku, Mobile App, and many more platforms. Fedora is an excellent platform for running Plex Media Server, providing stable and reliable performance, especially with the six-month release schedule; it suits personal home use perfectly.
In the following tutorial, you will learn how to install Plex Media Server on Fedora Linux 37/36/35 Linux workstation desktop or headless server using the command line terminal, along with some basic guidance on first-time setup.
Recommended Steps Before Installation
First, update your system to ensure all existing packages are up to date.
sudo dnf upgrade --refresh
Install Plex Media Server on Fedora Linux
The best method is installing Plex directly from its repositories, giving you the latest version when released, and not waiting for third-party maintainers to update the packages.
Import Plex Media Server Repository
The first task is to import the repository using the following command.
sudo tee /etc/yum.repos.d/plex.repo<<EOF
[Plexrepo]
name=plexrepo
baseurl=https://downloads.plex.tv/repo/rpm/\$basearch/
enabled=1
gpgkey=https://downloads.plex.tv/plex-keys/PlexSign.key
gpgcheck=1
EOF
Install Plex Media Server
Install the Plex Media Server on Fedora using the following dnf install command.
sudo dnf install plexmediaserver -y
By default, the Plex Media service should be automatically started. To verify this, use the following systemctl status command.
systemctl status plexmediaserver
If the service is inactive, use the following command to start Plex Media Server.
sudo systemctl start plexmediaserver
Next, enable system boot.
sudo systemctl enable plexmediaserver
How to Configure Fedora Server SSH on Fedora Linux
SKIP THIS PART IF YOU ARE NOT GOING TO ACCESS YOUR PLEX MEDIA SERVER REMOTELY.
For users with Plex Media Server installed on a remote Fedora server, you will first 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.
ssh {server-ip-address} -L 8888:localhost:32400
For users new to SSH, you may need to install it.
sudo dnf install openssh-server -y
Next, start the service.
sudo systemctl enable sshd --now
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
The above HTTP request will be redirected to http://localhost:32400/web, the remote server, through an SSH tunnel.
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 FirewallD for Plex Media Server on Fedora Linux
By default, no rules are set up for Plex. This means you will need to create allow rules which are essential to stop attacks, failure to secure will lead to issues down the track, so do not skip this unless you have other means to protect your installation.
First, add a new dedicated zone for Plex firewalld policy.
sudo firewall-cmd --permanent --new-zone=plex
Next, specify the allowed IP addresses permitted to access.
sudo firewall-cmd --permanent --zone=plex --add-source=1.2.3.4
Replace 1.2.3.4 with the IP address that will be added to the allow list.
Once you have finished adding the IP addresses, open the port of the Plex. By default, this is TCP port 32400.
sudo firewall-cmd --permanent --zone=plex --add-port=32400/tcp
Note that you can change the default port in your configuration file if you change the firewall port open rule above to the new value.
After running those commands, reload the firewall to implement the new rules.
sudo firewall-cmd --reload
Configure Plex Media Server in WebUI on Fedora 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
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.
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. If you use Chrome or a similar Chromium browser, this prompt will not occur.
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.
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.
Step 4. Media Library
The Media Library page allows you to pre-add your media directories if you have a media drive or folder ready.
Click the ADD LIBRARY button.
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.
Click the BROWSE FOR MEDIA FOLDER button and select the media directory.
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.
Step 5. Finishing up
Next, hit the NEXT button to finish the initial setup with or without adding a Media Library.
The next screen informs you that you are all set. Click the DONE button to proceed to Plex Dashboard.
Lastly, you will be prompted to set up pins, leave them as default, or edit them to your preference, which can be adjusted later.
Once done, click the FINISH SETUP button.
Now you will arrive at your Plex Dashboard.
Media Files & Folders Permissions on Fedora Linux
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.
Fedora permissions can be set using chown or setfalc; both are good. Some examples of how to apply are below.
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
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
Setup Nginx as a Reverse Proxy on Fedora 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 dnf install nginx -y
By default, Nginx should be enabled if it is not activated. use:
sudo systemctl start nginx
To allow Nginx to be started on boot, use the following command:
sudo systemctl enable nginx
Now check to make sure Nginx is activated and has no errors:
systemctl status nginx
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 Let’s Encrypt 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 dnf 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 [email protected] -d plex.example.com
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://plex.example.com instead of HTTP://plex.example.com.
If you use the old HTTP URL, it will automatically redirect to HTTPS.
Update Plex Media Server on Fedora Linux
Plex can be updated as per the standard dnf update command that you would use most of your time upgrading packages on your system.
sudo dnf update --refresh
Ideally, in the browser Plex Media Server GUI, you will be noticed when updates are available. Just run the above command to update.
Remove Plex Media Server on Fedora Linux
If you no longer wish to use Plex and want to remove it from your Fedora system, execute the following command.
sudo dnf autoremove plexmediaserver -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 using the following command.
sudo rm /etc/yum.repos.d/plex.repo