I was looking at setting up a Plex Media Server on the cloud for a couple of reasons. It allows me to have my Plex server permanently on, and not having to leave my computer on all the time at home. The other reason was to access US-based content as Plex would be running on a foreign IP, and could access to Plex channels. I was looking at a few of the more common cloud options, AWS, Azure, DigitalOcean and a few others came to mind but I settled for DigitalOcean thanks to the free $100 credit for education-linked sign up through Github. The below steps would largely apply to other VPS / cloud providers but I decided to go with DigitalOcean because of the free credit. At $5 a month, I could operate the server for close to two years! I initially thought I could configure the on/off time for the server to reduce my monthly bill even further. Powering off the server will see you still consume computer resources and be charged accordingly. I guess you could create a snapshot and destroy the server when not needed.
In this guide I will be focusing on how to set up Plex on a DigitalOcean Droplet. DigitalOcean may not be the best choice for Plex, largely because of the limited storage space it offers. For the basic tier, it is only 20GB of storage. That’s barely enough for a season of TV Shows or a few movies. You could include access to another web-based storage, like AWS S3 or Bitcasa which will increase the monthly charges though. I will update if there’s a way to link say OneDrive or Google Drive to the Plex media server. I wanted to use my Plex media server to distribute media streaming content. Therefore, the built in storage was not important to me.
First, go to DigitalOcean’s website to create your account. You would need to provide your credit card details on signing up even if you are using free credits. I used the Github credits as mentioned. Alternatively, you can sign up using my referral link to DigitalOcean which gives you $10 credit. At least that will give you some time to play around with it (2 months) to see if you want to stick with it. As mentioned, I only need it for streaming and I think the basic server is good enough for streaming channels. I don’t intend to use it for transcoding purposes which probably would not be sufficient.
Step 1 – Configure the Droplet
Pick your server location, I went for San Francisco as this would allow me to use it as a direct proxy to US content. Such as e.g. Hulu, Pandora, Netflix. For the droplet, I went with Ubuntu 14.04 x64 due to my familiarity with Ubuntu, and the 14.04 while not the latest, would benefit from long term support, whereas 14.10 is more of an interim release.
Step 2 – Configure your SSH Client (PuTTY)
If you use Windows, get the PuTTY client. Enter the DigitalOCean server IP provided (check your email). You would also need to configure the port access settings, for directly accessing the Plex Media Server configuration later.
Scroll down to Connection -> SSH -> Tunnels.
Add new forwarded port: Source Port 32400
Scroll back to the top session and save.
Once done, click on connect and login with the user and password provided.
Step 3 – Configure user access
Set up a new user.
Grant the user sudo access, you can choose to remove this later with the deluser command.
adduser plex gpasswd -a plex sudo
Step 4 – Install Plex.
- Download the Plex debian package from the Plex website. Visit the Plex Website for the latest version.
- Link below is for version Version 0.9.11.7.803-87d0708.
wget https://downloads.plex.tv/plex-media-server/0.9.11.7.803-87d0708/plexmediaserver_0.9.11.7.803-87d0708_amd64.deb sudo dpkg -i https://downloads.plex.tv/plex-media-server/0.9.11.7.803-87d0708/plexmediaserver_0.9.11.7.803-87d0708_amd64.deb
Step 5 – Configuring Plex
If you had carried out the tunneling instructions earlier. on your computer, open up a browser and go to http://127.0.0.1:32400/web. You should be able to see the Plex Window and you can do your configuration which includes either uploading your content, or installing a few channels to see if it is working.
Channels can be installed via the web interface or for those not on the Plex store, can be installed by copying it directly to the folder. See below for an example using the bundle I wrote, SG!TV which I have uploaded as a tar file instead of zip as it is a built-in archive format in Linux. You can use zip too but requires you to install the unzip program.
cd Library/Application Support/Plex Media Server/Plug-ins/ wget wget https://dl.dropboxusercontent.com/u/3122511/sgtv.bundle.tar tar -xvf sgtv.bundle.tar
After logging in to MyPlex and configuring the rest of your settings, go to the “Connect” tab and click “Show Advanced” and manually specify a port. You can use any port you want, in this case I used the default port of 32400.
Close the new terminal window you opened to disconnect the tunnel.
Now attempt to access the port from http://plex.tv/web. You should be able to access the VPN Digitalocean server now.
Some channels may not work if you are using the web player, especially if you are attempting to circumvent geographical location checks. You can go the Plex player settings and disable direct play and direct stream.
Step 6 – Clean Up
It is not advisable to leave sudo rights to your plex created user account. To remove it, return to the PuTTY console and type the following command.
deluser plex sudo
Here’s the fruits to my labour, a Plex Media server that can run at relatively low cost (or free if on the coupon). While it has only 20gb of storage, I don’t really need the storage space, and could use it to host the latest content, if reuqired. More importantly, I am now able to play back previously geographically blocked content from any of my devices using the Plex channel access. Thanks to the NBC Live Sports Extra XBMC addon, which I converted to Plex, I am now able to get my weekly footy fix from any of my devices. I am thinking other uses of the Plex cloud server could be for Netflix or Hulu content for users out of the United States.