Plex is a media player system and software suite consisting of many player applications for 10-foot user interfaces and an associated media server that organizes personal media stored on local devices. Integrated Plex Channels provide users with access to a growing number of online content providers such as YouTube, Vimeo, TEDTalks, and CNN among others. Plex also provides integration for cloud services including Dropbox, Box, Google Drive, or Copy.
Plex for Linux is split into a closed-source server Plex Media Server, and an open-source client Plex Home Theater, a fork of the popular Kodi project.
- 1 Plex Media Server (PMS)
- 2 Plex Home Theater (PHT)
- 3 Plex Media Player (PMP)
- 4 Kodi and PleXBMC
Plex Media Server (PMS)
Install theAUR package, or the AUR package if you have a Plex Pass.
Enable and start
To begin configuring PMS, browse to
To configure PMS remotely, you must first create an SSH tunnel (setup can only be done from
ssh ip.address.of.server -L 8888:localhost:32400
and then browse to
PMS can be expanded with additional plugins. For example, PMS can be used as an IPTV client with the IPTV plugin.
Plugins can be installed inside
$PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR/Plex Media Server/Plug-ins.
Plex Live TV and DVR
Plex live TV requires a plexpass.
To enable live TV viewing and DVR support with plex, you must have one of the supported tuners listed on the support page and AUR installed. PMS will automatically recognize any connected tuners.
The plex user needs to be part of the video group in order to access local tuners. This can be done by running
usermod -a -G video plex
It is recommended to store your media files outside of your home directory, as making it accessible to PMS would mean lowering its security. Having a separate
/mnt/media partition is a good setup for use with PMS.
You can further increase security via systemd, by editing
plexmediaserver.service as follows:
[Service] ReadOnlyDirectories=/ ReadWriteDirectories=/var/lib/plex /tmp
Originally, PMS used ulimit to limit its allocated resources, however this is not compatible with running as a regular user. Instead, you can now set a maximum amount of memory via, again, systemd. For example, you can add:
to the file mentioned above.
PMS and its DLNA server require several ports to be open:
- Plex Media Server: TCP 32400
- Plex DLNA Server: TCP 32469, UDP 1900
- Network Discovery: UDP 32410, 32412, 32413, 32414
- Bonjour/Avahi Network Discovery (legacy): UDP 5353
A short example with iptables:
# iptables -A INPUT -p tcp -m multiport --dports 32400,32469 -j ACCEPT # iptables -A INPUT -p udp -m multiport --dports 1900,32410,32412,32413,32414 -j ACCEPT
Remote access through vpn
If you share your libraries with some friends, but want the data to go through your vpn connection, you will need two things:
- A vpn provider that allows static port forwarding
- Remote Access enabled on your plex server settings
- Go to your vpn provider settings and ask for a port. (We're going to assume ours gave us the port 11652)
- Then add the following command to your boot sequence (rc.local for example)
# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 11652 -j REDIRECT --to-ports 32400
- (We're going to assume you're using the tun0 interface for openvpn)
- Finally, go to your plex server settings, enable advanced settings and define the custom port at 11652
Plex Media Server has a setting "Update my library automatically" which can detect new media files as they're downloaded to your library. But as your library grows, these updates might stop working reliably. To fix, you need to increase the number of files non-root users are allowed to subscribe to via inotify. Create the file
sudo sysctl --system to apply without rebooting. Now plex should see any new files.
Logs are located in:
$PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR/Plex Media Server/Logs
In case there are no logs or they are not helpful, you might want to launch PMS manually to get some terminal output:
sudo -u plex /usr/bin/bash source /etc/conf.d/plexmediaserver export LD_LIBRARY_PATH=/opt/plexmediaserver /opt/plexmediaserver/Plex\ Media\ Server
Plex Home Theater (PHT)
Previously known as Plex Media Center, Plex Home Theater is the software component used for a long time as the front-end media player for Plex's back-end server component Plex Media Server. This component came from a fork of XBMC Media Center software on May 21, 2008.
Official support for Plex Home Theater (from Plex, Inc.) has been discontinued in favour of Plex Media Player (based on MPV). However, Plex Home Theater has been forked and is still under active development by the Open Source community under the name OpenPHT
Install the AUR package.
Plex Home Theater can be launched by running
plexhometheater.sh from your terminal.
Plex Media Player (PMP)
Plex Media Player is the current release of Plex's media client. It has officially replaced #Plex Home Theater (PHT) (which is still receiving bug fixes) and builds upon previous functionality, such as using mpv. Plex has made PMP available to all users and it has also become compatible with Kodi. Keep in mind, PMP is not open-source (unlike PHT).
Install the AUR package.
Kodi and PleXBMC
With the PleXBMC add-on, Kodi can be used as a replacement for PHT.
Install the here.package, then follow the instructions over