Close

Media Server Part 3 – Software Installations


Having installed all of my hard drives and upgraded CPU in the HP Microserver, I needed to install an OS.

I initially installed Debian Jessie, but after noting that this was not supported by Docker as a base build, I re-installed with Ubuntu Server 16.04.02 LTS.

Whilst I currently have a screen and keyboard attached to the server, which were useful for the initial operating system install, I did not install any graphical user interface and I make all of my updates to the server via SSH connections on terminal sessions from my MAC Mini.

The intention is that the HP Microserver will run completely headless as a stand-alone box.

I also located an ILO 4.0 license to install to give me remote console access to my server via a dedicated network port should I need to access the console at any time. This also makes it possible for me to remote mount ISO images as required without needing to burn them to a USB stick.

Once I had a running OS on the server, it was then time to start installing Docker and some containers.

I also decided to install ZFS for managing all of the non OS related file systems, this way I can quickly create separate ZFS file systems for each Docker container, as well as dedicated file systems for each media type. These file systems can also be pulled into the various containers as required.

I chose to create configuration files for each of my Docker containers, so that I can modify and rebuild them as I decide on better configurations without having to remember how each one was created.

I currently have running containers for Plex, PlexConnect, Plexpy, Portainer, Muximux and Minecraft.

I have a lifetime premium Plex pass, so I have access to my media on any device supported by Plex, including my tablets, Macs, phones, Smart TVs, and Apple TV devices.

The PlexConnect container allows the Apple TV version 3 unit in my daughter’s room to use the Trailers app to trick it into talking to the Plex container on my media server.

The Plexpy container allows me to see who has watched what on the Plex server.

Muximux acts as a single front end to all of the various web interfaces.

Portainer allows me to remotely manage the Docker engine from a web interface.

Minecraft is a local server for my children and their friends to connect to.

I also have containers for CouchPotato, Sickrage, Headphones, Filebot, Deluge, Rutorrent and Nginx, but I first want to perfect talking through my OpenVPN container before I start using these in anger.

In the mean time I continue to use Sickrage on my Mac with utorrent behind a VPN and then transfer the files over to the media server via sftp.

Here is an example of the configuration file for my Plex container:

sudo docker create 
--name=plex
--net=host
--restart=always
-e VERSION=latest
-e PUID=1001 -e PGID=1001
-e TZ=Europe/London
-v /Media/Docker/plex/config:/config
-v "/Media/TV Shows":/data/tvshows
-v /Media/Movies:/data/movies
-v /Media/Music:/data/music
-v /Media/Docker/plex/transcode:/transcode
linuxserver/plex

This shows all of the file systems that are imported, the userid, timezone, etc that are setup when the container is first created.

After changing the permissions on the configuration file, I can then run this configuration file to create the container, and then type ‘docker start plex’ to start the container.

The ‘–restart=always’ setting ensures that the container is restarted automatically if the server reboots for whatever reason.

Leave a Reply