paint-brush
Homelab: Why You Need It and Where To Startby@ikanyuka
218 reads

Homelab: Why You Need It and Where To Start

by Igor KanyukaApril 15th, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

A homelab is essentially a personalized tech playground set up in one's home. It's like having a mini data center at home, ranging from basic setups with just a single server to more elaborate configurations. Homelabs provide a hands-on environment for individuals to explore different tech concepts, refine their skills. Run Proxmox or VMWare on your home PC and start playing with different software in VMs.
featured image - Homelab: Why You Need It and Where To Start
Igor Kanyuka HackerNoon profile picture

Are you a computer enthusiast? Want to learn new things like Virtualization, Docker, Kubernetes, touch HW and networking; or sharpen your skills? Or maybe run your own home infrastructure like NAS, Media server for family members, Ubiquity network controller, run a heart of your smart home - HomeAssistant? The answer is - Homelab


Ok, what's that again?

A homelab is essentially a personalized tech playground set up in one's home, where enthusiasts experiment, learn, and tinker with various technologies without the fear of causing damage to critical systems. It's like having a mini data center at home, ranging from basic setups with just a single server to more elaborate configurations comprising multiple servers, networking gear, and storage solutions. Homelabs provide a hands-on environment for individuals to explore different tech concepts, refine their skills, and simulate real-world scenarios, fostering both personal growth and professional development in fields like IT, networking, and software development.


What do I need to start?

Typically, people run multiple Virtual Machines in their homelabs. If you don't plan to run different operating systems, you may not use Virtualization, but it gives you flexibility, so even if you don't plan to run multiple OS right now, this may be a good idea to use it in the long run.


Hardware

We will run multiple VMs.


To do so - you need a server capable of running those. Wait, do I need a real server? Not necessarily, at least not at the very beginning. Let's start with something affordable.


Do you have a PC? A 5-year-old PC can work, even older.


It just needs to meet the following requirements:

  • CPU should support virtualization would work. One of my home servers is based on AMD Ryzen 1600X launched back in 2017 and it runs just fine.
  • RAM. there are no strong requirements, but since you plan to run VMs, you would like to have at least 16 GB of RAM (8GB would work, but you really want to have more), in the future, you may like to expand to 32 GB. A typical Motherboard has 4 slots, so if you plan to buy 16GB, buy 2 sticks, so the other 2 will be available in the future.
  • Motherboard. Does not really matter, whatever you have supporting your CPU and RAM is fine.
  • Storage. You may start with 1 drive, though I would suggest starting with at least 2 drives - this way you will be able to build a RAID1 (mirror). So, if one of the drives dies, the data will still be available on the 2nd one. Should they be SSD/NVME or HDD - depends on what you have, your needs, and your budget. Pricewise - I would not buy anything dirt cheap, but you don't need server-grade drives either.
  • Network. Embedded to the Mobo 1Gbit/s NIC would be enough.


Operation System

So, we need to install an operation system on our server, which would allow us to run Virtual machines. We may mess up with the OS AND run VMs at the same time, but that's not recommended. Remember, if you break the OS on your host, this will affect ALL the VMs. So to play safe, we will use the OS installed on the host to run VMs, and we will mess with the Operation systems running inside the VMs.


It's not just safer (breaking the OS inside VM will not affect the other VMs), but it's also easier to fix - Virtualization allows you to make snapshots either periodically or manually (before making serious changes), so if you break the OS inside VM you can easily restore it from the previously working snapshot.


Most modern OS allow you to run VMs. Although, most enthusiasts do not use Windows as their homelab host OS, nor MacOS.

In most cases, it narrows your options to 3:


  1. Use your favorite Linux distribution, then set up KVM and/or XEN to run VMs. This works, I lived with this configuration for years, but there are drawbacks - setup is not quite simple; you have to do everything manually/using your own scripts, this is probably not the easiest way, especially for someone who just started.


  2. Use VMware ESXi. VMware is an awesome piece of software, easy to install. It provides you with a management GUI. However, it has certain limitations in features in a free edition.


  3. Proxmox. It's a Debian-based distribution built to run VMs. It provides management GUI, and the free version does not have limits in features, the difference with the paid one is mostly a lack of support.


I suggest using Proxmox, as it is easy to install, easy to manage, and cheap (free of charge).

How to start

  1. Build your PC
  2. Install Proxmox
  3. Create your first virtual machine

You're ready to play with your first VM. Create a backup of the VM first. Do not be afraid to play with your VM, if you screw it up, you can easily restore it from the backup.

What's next

In the next articles, we will discuss what you can do in your homelab. Also, we will talk about other options for servers and which one would be right for you. Stay tuned.