I’ve been running Plex on a Synology NAS for the last year, with a Google Chromecast handling display. It’s worked well enough, but my DS 216 struggles at times to keep up with the movie (I’m not transcoding; that would never work). I decided to get into the Raspberry Pi game and build a Plex server on it, while keeping my media on the NAS. These are my notes on setup.
Image
I’m comfortable in Debian so I started with a stock Raspbian image on a 32 GB SD card. I used Etcher on OSX for this and didn’t encounter problems. I’d say it took 8-10 minutes.
Keyboard
Raspberry Pi’s come with the keyboard set to the UK, which works for most things but can trip you up. I changed it to Generic 105-key PC
and selected a US keyboard layout.
DHCP
I created a reservation on my router for the Pi’s hardware address so that the IP would be consistent. The procedure for doing so will vary depending on your home networking environment. You’ll need to know the hardware address of the interface you’re using (wired or wireless).
I opted for the wired interface. As an additional step, I changed the configuration in /etc/network/interfaces
from iface eth0 inet manual
to iface eth0 inet dhcp
. This is a little misleading; the interface still gets an IP address via DHCP when set to manual
, but it happens later in the boot process. This causes problems with mouting an NFS share.
SSH
SSH access is disabled by default; I enabled it and setup key-based authentication as an extra security measure. You can disable password authentication by setting PasswordAuthentication
to no
in /etc/ssh/sshd_config
and restarting ssh.
NFS
That was all preliminaries for the interesting part—making my existing media libraries available to the Pi. On my Synology NAS I enabled NFS as a service and then enabled NFS sharing for my media library.
On the Pi I installed and enabled the rpcbind service:
1 | pi@raspberrypi:/mnt $ sudo update-rc.d rpcbind enable |
I then created a mount point for the media:
1 | sudo mkdir /mnt/media |
Finally, I added an entry for this mount in /etc/fstab
and mounted it:
1 | {IP ADDRESS}:/volume1/Media /mnt/media nfs rw 0 0 |
Plex
Much of the foregoing is based on the excellent tutorial on installing Plex on a Pi from element14. At this point I’m ready to install the various packages:
1 | sudo apt-get install apt-transport-https -y --force-yes wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add - echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list |
I rebooted the Pi and was good to go.
Issues
These aren’t specific to the Pi but just things I encountered.
- I had created down-scaled “versions” of some of my media for playback purposes. The new Plex found these, but they got commingled with the actual media leading to Plex detecting the wrong audio type (e.g. AAC instead of DTS). The Chromecast refused to play said media. I resolved it by deleting the “versions”, re-matching the media in question, and re-creating the version.
- I’d forgotten that my setup is a “Double NAT“; to allow remote access I had to pass traffic from my cable modem to my internal router and then on to the Pi.