A few days ago I created a page to keep track of various computer projects I’m working on. I figure this’ll help me keep track of what’s going on and what I’ve written about it and it’ll also maybe serve as a one-stop shop for visitors to the blog who want to see how I implement various projects.
This is the first post documenting my research so far on my Home Server Project. Here’s how I describe it at the moment:
A project to use some sandboxing – Project Atomic, VMs, Docker Containers (all, some, or none) to run home DNS, MySQL, game servers, and file server. Currently many of these all run on one Pogoplug computer which can cause issues during updates) Also eventually proxy when the little one starts using the net.
Its current status is “research”. For someone as technical as me, it ends up being more useful and promotes ease of use in the long run to run a home server. Currently I run DNS because nearly every diagnostic step when it comes to network problems involves resetting routers. This was especially true when I was on Verizon FiOS and using their router. I got tired of losing track of computers every time that happened. MySQL and file server functions run on BabyLuigi in order to have one, updated library for Kodi (formerly XBMC). Game server is for Team Fortress 2. Finally, a proxy would be nice for when Scarlett starts using the net.
So I started looking around earlier this year and one of the things that seemed like it was meant to be perfect for this is the Docker Container. It basically creates a application-level VM (as a simplification) that would allow each of the types of functions I’m looking looking at doing to be individualized. They don’t affect each other, don’t use too many resources, and can be moved from computer to computer. Of course, the best way to run this on the fewest resources is Project Atomic. Project Atomic is meant to be a minimum install (currently CentOS, Red Hat, or Fedora) upon which the Docker Containers can run.
I spent a few days looking at Project Atomic after having spent a few days looking at Docker Containers. It would be the most correct way to implement what I want. But it’s also unnecessarily complicated. While it would take me just a couple hours to set everything up on a barebones computer or in a VM, it would take me days to get everything configured with Project Atomic and Containers. And the way these things have to interact, including networking, are just way too complex for me. It’d make sense to setup at work, but at home….no.
So, the question is whether I’d rather run it in a VM or on a barebones computer. Or, to be more accurate, should I run it barebones, in a VM, or in multiple VMs. That’s the question I’ll be next tackling as part of the research.