THE GRAND PLAN

Within the Host Machine are housed two Virtual Machines:
- The Media Server – Downloads and Sorts Television shows, and serves them to the household through DLNA/UPnP. This also serves as the File Share for the house, a central repository for documents and photos.
- The Web Server – Serves as a LAMP Server (serves websites), and a Mail Server.
The actual Media is housed on a separate partition of the host machine, which is made available through VirtualBox's “shared folder” functionality. This is so that when I wipe a VM or clone it, I don't have to copy over the close to 500GB of media I have from Virtual Machine to Virtual Machine. The “shared folder” functionality allows almost native access speeds, so there is little overhead in the streaming.
The Benefits of Virtualizing:
- The two servers are modular. This means one can be rebooted or taken offline without affecting the other. This also means if one fails, it doesn't take the other with it.
- If you clone the VM, you can save a stable version while you tinker (Which I do, a lot).
- Keeping the Web Server in a separate machine adds a lot of security. You can give the Web Server extremely minimal access to your network and make intrusion from the Web much more difficult.
- You can virtualize other things, too. I have a couple VM's running just for fun so that I can play with various linux distributions, and test websites and programs on various Windows Operating Systems.
My Hard Drive is partitioned like this:

Notice that I leave unformatted space on the hard disk. LVM (Logical Volume Management) allows us to easily resize partitions into any available space, even while the partition is being used. To shrink a volume you do have to take it off-line however. If you leave a bunch of unformatted space in the Logical Volume, you can expand whichever partition you need to easily from Webmin.
A Bit about the Packages:
- Deluge – Deluge is a fairly light-weight BitTorrent Client. What's unique about it is that the actual BitTorrent daemon (the thing that actually downloads and seeds the files) is completely separate from the GUIs. This means that I can have the daemon on the server, and control it from any computer in the house. It also has multiple GUI types available: a WebGUI, which lets you control it from your browser, an Actual Program that can be installed, and a console, which can be used from the command-line. And you don't have to choose just one, you can use all three, which I'll show you how to do.
- FlexGet – FlexGet is an extremely versatile script which will look for virtually any type of file in an RSS feed or a couple other sources, and download them for you. It can automatically pass these files off to another program, in our case Deluge, with certain parameters. In our case we can tell it exactly how to sort our files by show and season, and then to rename the files based on a TVDB.com lookup.
- PS3MediaServer – PS3MediaServer is a DLNA server that can transcode your files on-the-fly into a format that your client can support. For example, any time I want to play a .mkv file on my xbox, ps3 media server automatically converts it to avi as it's streaming so that my xbox can read it. It's especially nice because it does this with very little configuration.
- TwonkyServer – Twonky Server is another DLNA server. It doesn't handle transcoding nearly as well, but I like the way it handles playlists better, and it handles new files better than PS3MediaServer. It automatically watches folders for changes, where sometimes you have to issue commands to PS3MediaServer to get it to recognize new content.
- FireFly DAAP – the DAAP protocol is used by iTunes to share music between computers. FireFly will serve all your music up to any computer running iTunes, which means you can easily transfer music in and out of iPods without having to have your music on every computer.
- LAMP Server – LAMP stands for “Linux, Apache, MySQL, and PHP” it is the standard stack of packages used by any web server. Even major corporations use this exact set of software for web hosting.
- Mail Server – The particular group of packages I chose will host a very basic mail server with your domain name. It will allow connections from IMAP clients such as ThunderBird or Outlook, as well as having a WebMail interface through the package roundcube. Later I will add a couple packages to automatically block spam and viruses as well.
No comments:
Post a Comment