{"id":36,"date":"2017-10-21T15:00:00","date_gmt":"2017-10-21T14:00:00","guid":{"rendered":"https:\/\/blog.hslracing.com\/myhome\/2017\/10\/21\/media-server-part-3-software-installations\/"},"modified":"2021-06-08T18:52:38","modified_gmt":"2021-06-08T17:52:38","slug":"media-server-part-3-software","status":"publish","type":"post","link":"https:\/\/blog.hslracing.com\/myhome\/2017\/10\/media-server-part-3-software.html","title":{"rendered":"Media Server Part 3 &#8211; Software Installations"},"content":{"rendered":"<p><br class=\"Apple-interchange-newline\" \/>Having installed all of my hard drives and upgraded CPU in the HP Microserver, I needed to install an OS.<\/p>\n<p>I initially installed&nbsp;<a href=\"https:\/\/www.debian.org\/\">Debian<\/a>&nbsp;Jessie, but after noting that this was not supported by&nbsp;<a href=\"https:\/\/www.docker.com\/\">Docker<\/a>&nbsp;as a base build, I re-installed with&nbsp;<a href=\"https:\/\/www.ubuntu.com\/download\/server\">Ubuntu<\/a>&nbsp;Server 16.04.02 LTS.<\/p>\n<p>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.<\/p>\n<p>The intention is that the HP Microserver will run completely headless as a stand-alone box.<\/p>\n<p>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.<\/p>\n<p>Once I had a running OS on the server, it was then time to start installing&nbsp;<a href=\"https:\/\/www.docker.com\/\">Docker<\/a>&nbsp;and some containers.<\/p>\n<div style=\"clear: both;text-align: center\"><a href=\"https:\/\/1.bp.blogspot.com\/-ZNNBwVOzZlg\/WQycfs-JJXI\/AAAAAAAADcY\/N_ROcScXLmEWiNi6pRELG3FJuo0ZIO_swCLcB\/s1600\/docker.png\" style=\"margin-left: 1em;margin-right: 1em\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" height=\"285\" src=\"https:\/\/1.bp.blogspot.com\/-ZNNBwVOzZlg\/WQycfs-JJXI\/AAAAAAAADcY\/N_ROcScXLmEWiNi6pRELG3FJuo0ZIO_swCLcB\/s320\/docker.png\" width=\"320\" \/><\/a><\/div>\n<p>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&nbsp;<a href=\"https:\/\/www.docker.com\/\">Docker<\/a>&nbsp;container, as well as dedicated file systems for each media type. These file systems can also be pulled into the various containers as required.<\/p>\n<p>I chose to create configuration files for each of my&nbsp;<a href=\"https:\/\/www.docker.com\/\">Docker<\/a>&nbsp;containers, so that I can modify and rebuild them as I decide on better configurations without having to remember how each one was created.<\/p>\n<p>I currently have running containers for <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/plex\/\">Plex<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/pducharme\/plexconnect\/\">PlexConnect<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/plexpy\/\">Plexpy<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/portainer\/portainer\/\">Portainer<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/muximux\/\">Muximux<\/a> and <a href=\"https:\/\/hub.docker.com\/r\/itzg\/minecraft-server\/\">Minecraft<\/a>.<\/p>\n<p>I have a lifetime premium <a href=\"http:\/\/www.plex.tv\/\">Plex<\/a> pass, so I have access to my media on any device supported by&nbsp;<a href=\"http:\/\/www.plex.tv\/\">Plex<\/a>,&nbsp;including my tablets, Macs, phones, Smart TVs, and Apple TV devices.<\/p>\n<p>The&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/pducharme\/plexconnect\/\">PlexConnect<\/a>&nbsp;container allows the Apple TV version 3 unit in my daughter&#8217;s room to use the Trailers app to trick it into talking to the&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/plex\/\">Plex<\/a>&nbsp;container on my media server.<\/p>\n<p>The&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/plexpy\/\">Plexpy<\/a>&nbsp;container allows me to see who has watched what on the&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/plex\/\">Plex<\/a>&nbsp;server.<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/muximux\/\">Muximux<\/a>&nbsp;acts as a single front end to all of the various web interfaces.<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/r\/portainer\/portainer\/\">Portainer<\/a>&nbsp;allows me to remotely manage the&nbsp;<a href=\"https:\/\/www.docker.com\/\">Docker<\/a>&nbsp;engine from a web interface.<\/p>\n<p><a href=\"https:\/\/hub.docker.com\/r\/itzg\/minecraft-server\/\">Minecraft<\/a>&nbsp;is a local server for my children and their friends to connect to.<\/p>\n<p>I also have containers for <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/couchpotato\/\">CouchPotato<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/sickrage\/\">Sickrage<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/headphones\/\">Headphones<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/rednoah\/filebot\/\">Filebot<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/deluge\/\">Deluge<\/a>, <a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/rutorrent\/\">Rutorrent<\/a> and <a href=\"https:\/\/hub.docker.com\/_\/nginx\/\">Nginx<\/a>, but I first want to perfect talking through my <a href=\"https:\/\/hub.docker.com\/r\/colinhebert\/pia-openvpn\/\">OpenVPN<\/a> container before I start using these in anger.<\/p>\n<p>In the mean time I continue to use <a href=\"https:\/\/sickrage.github.io\/\">Sickrage<\/a> on my Mac with <a href=\"http:\/\/www.utorrent.com\/\">utorrent<\/a> behind a VPN and then transfer the files over to the media server via sftp.<\/p>\n<p>Here is an example of the configuration file for my&nbsp;<a href=\"https:\/\/hub.docker.com\/r\/linuxserver\/plex\/\">Plex<\/a>&nbsp;container:<\/p>\n<pre>sudo docker create <br \/>--name=plex <br \/>--net=host <br \/>--restart=always <br \/>-e VERSION=latest <br \/>-e PUID=1001 -e PGID=1001 <br \/>-e TZ=Europe\/London <br \/>-v \/Media\/Docker\/plex\/config:\/config <br \/>-v \"\/Media\/TV Shows\":\/data\/tvshows <br \/>-v \/Media\/Movies:\/data\/movies <br \/>-v \/Media\/Music:\/data\/music <br \/>-v \/Media\/Docker\/plex\/transcode:\/transcode <br \/>linuxserver\/plex<br \/><\/pre>\n<p>This shows all of the file systems that are imported, the userid, timezone, etc that are setup when the container is first created.<\/p>\n<p>After changing the permissions on the configuration file, I can then run this configuration file to create the container, and then type &#8216;docker start plex&#8217; to start the container.<\/p>\n<p>The &#8216;&#8211;restart=always&#8217; setting ensures that the container is restarted automatically if the server reboots for whatever reason.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Having installed all of my hard drives and upgraded CPU in the HP Microserver, I needed to install an OS. I initially installed&nbsp;Debian&nbsp;Jessie, but after noting that this was not supported by&nbsp;Docker&nbsp;as a base build, I re-installed with&nbsp;Ubuntu&nbsp;Server 16.04.02 LTS. Whilst I currently have a screen and keyboard attached to the server, which were useful&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5,3],"class_list":["post-36","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-homelab","tag-networking"],"_links":{"self":[{"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/posts\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/comments?post=36"}],"version-history":[{"count":1,"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/posts\/36\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/posts\/36\/revisions\/270"}],"wp:attachment":[{"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/media?parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/categories?post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hslracing.com\/myhome\/wp-json\/wp\/v2\/tags?post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}