So you’ve got a computer and you want to setup a home lab server? But before you get started, you need to make a decision.
You can either install a highly flexible stack or a small set of purpose specific services. The power of your computer should heavily influence this decision.
Using a Hypervisor and Docker Stack makes for a very flexible solution. There’s a bigger learning curve and it requires more resources, but for scalability that can grow with you, this is what you need.
You’ll be able to install almost anything you want and change them around without affecting your other services.
If you have a lower powered computer you should stick to a small software stack like a version of Linux (Ubuntu or Debian) and Docker with a small set of services or alternatively install a custom/purpose built Operating System (OS) such as Home Assistant OS.
This will keep things simple and easy to maintain.
Hypervisor
For a flexible and scalable experience you’ll need to install a Hypervisor onto your computer. A Hypervisor will allow you to install multiple Operating Systems and divide the hardware resources between them. This is done by creating Virtual Machines.
This is advantageous because it allows you to have lots and lots of services, and they won’t adversely affect each other. If you’re also a tinkerer then another great aspect is you can load up temporary Virtual Machines to test on, compare services or trial run something, before deciding whether to host it longer term.
If one of your services is using too many resources or you need to restart after an update, it’s easy to shut it down without shutting down all of your other services.
There’s many Hypervisors out there you could install, two of the most popular are Proxmox and VMware ESXi (Note ESXi is no longer free).
Once you’ve installed your hypervisor you can then start creating virtual machines and installing Operating Systems on them.
Create a Virtual Machine
Once your Hypervisor is installed and setup, it’s time to install an Operating System. Before you do, you’ll need to create a Virtual Machine.
Each Hypervisor’s process will be slightly different, but the general goal will be the same.
- Download installation media for your choice of Operating System
- Decide how much storage space, CPU and RAM you will allot to it
- Then go through a Create Virtual Machine wizard, assigning the resources
- Then it’s time to install the OS
Operating System
If you have a Raspberry Pi, SBC or other low power computer – it’s probably best to skip the above steps and jump straight to this step of installing an Operating System.
I like to install an operating system for a purpose; I have one for my Media Centre, one for Home Automation and another for the kid’s Minecraft server for example. But you can group them (or not) however you like.
One of the best things you can do when selecting an OS, is consider performance. If you install an OS with a desktop then it’s going to require more updates and more resources, maybe that’s preferable because it’s very familiar to you – but worth considering.
Most server distributions do not have a desktop by default. This makes it very lightweight and will use minimal resources, so if you think you’ll be comfortable using a terminal instead of point and clicking with a mouse, I would definitely recommend.
Docker
Regardless of what Operating System you choose, there’s a good chance Docker will run on it. Docker is fantastic because it allows you to install many services on an OS.
With Docker Compose you can configure the services you need in a single text file. You then copy the file to the OS that you want to host the services on, run a single command, and everything will install and/or update. Magic
Many of the services you’ll use will have a Docker compatible image readily available.
Services
These could be anything, you’ll find big services that do things like automations or backup your pictures and documents and you’ll find smaller services that collect weather forecasts or utilities. The possibilities are endless.
These could be anything, and you can find hundreds, maybe thousands of services that do all sorts of things. Some will automate things for you, back up your pictures and documents. You’ll find services that collect weather forecasts, utilities, personal accounting. The list is huge and always growing.
One of the best places to find new services is on GitHub Awesome Selfhosted list.
What next?
We’ve previously investigated what type of computer to use for a home lab server. Now we have gone over what needs to be installed to get a foundation in place.
Next we’ll look at how to install each of these layers and then afterwards we