You have four possibilities when it comes to running a home server, listed here in order of increasing complexity and flexibility:
- Running server-side software on a computer you already have
- Running the server as a virtual machine
- Repurposing an old computer
- Building or buying a new computer
In this part of the Home Server Series, I want to discuss the first two options. In the next part, we’ll look at the last two.
Once you’ve picked the hardware, you’ll need to install an operating system. While there are dozens of options, I’ve opted to build the series around Ubuntu Server. For those unfamiliar, Ubuntu is a Linux distribution – it’s open source and free software – and if you are unfamiliar with the Linux environment it may seem a bit daunting. I’ll include step-by-step guides on getting everything set up as we get to that part of the series.
Choosing a Computer
Running Server-Side Software on Your Computer
This is by far the easiest option of all. A lot of software can run directly on your computer, and you can use software to help isolate the server software from everything else you run. With this method, you can skip the next few tutorials as you won’t need to set up a new machine at all.
One limitation of this approach is that you are limited to your hardware as it currently is. You will be adding more demand on your machine. Without a dedicated machine, you’ll also multiply the possibilities for errors by using one machine for two distinct purposes; hardware or operating system failures can affect both your “server” and the computer as a whole.
I recommend this method if you don’t want to spend any money, aren’t comfortable dealing with hardware or installing an operating system, or want to jump in right away. You can always move the data to another setup later.
Running the Server as a Virtual Machine
Before I had a dedicated computer to be my home server, a virtual machine served the same purpose. Virtual machines require some additional software and some background knowledge, but if you don’t need a lot of power, they are a good option.
Virtual machines are limited by the host computer and they can take up a lot of space. You’ll also need to get familiar with the virtualization software you are using (Windows 10 has one built-in in some editions called Hyper-V, but there’s also VMWare and Virtual Box, which you can install for free) if you want to do anything more than the most basic things.
Just as with running server software on your computer directly, you can always move the data later if you decide to upgrade to a dedicated machine, which is what I did.
I’ve found Windows Hyper-V and other virtualization software doesn’t always play well together, so if you have Hyper-V, I’d stick with that. Setting up a VM is going to be fairly consistent no matter which software you choose:
- Create a machine and set a name and directory to store it
- Create a virtual hard disk and a directory to store it
- Ensure you have your network bridged so the machine has network access
- Attach an image of the server operating system disk you want to install
- Run the VM and follow the prompts to install the operating system
For an example, in Hyper-V for Windows 10, you can create a machine in the Hyper-V manager:
You’ll first want to create a Virtual Switch. This will be used later to give internet and network access to your virtual machine. Here’s my setup; it’s pretty simple:
From the manager, click New:
You’ll be able to specify a name and a different location if you choose:
Select Generation 1 for now:
Give at least 1GB of RAM to the VM:
You can point to the switch (for network and internet access) you created earlier here:
Create a virtual hard disk. Put it somewhere where you’ll have enough space when it fully expands; it won’t use all of this disk space immediately.
You can point the virtual machine to the OS disk image of the server you want to use: