---
title: "My Homelab: Planning (1/4)"
date: 2023-11-06T16:21:04-05:00
toc: true
images:
tags:
  - Security
  - Network Automation
  - DevOps
---

## Part 1: Introduction and Motivation
### 1.1 Introduction
Welcome to the exciting world of Home-Labs! In this series of posts, I'll be sharing my hands-on journey of building a Home-Lab from scratch (albeit with hefty amounts of encouragement/brainstorming from Reddit). If you're passionate about enterprise technology, eager to gain hands-on experience, or ready to put those IT certifications up to the test, you're in the right place.

### 1.2 Importance of a Home-Lab
Why would someone put significant amounts of their spare time and money towards a Home-Lab?
In the vast landscape of IT, theoretical knowledge only takes you so far. A Home-Lab is essentially your own personal IT playground. It's a place to turn concepts into reality, test new ideas, and refine your skills. It's a hands-on classroom where mistakes are learning opportunities, and breakthroughs are celebrated. Home-labs aren't all the same, so if you're really interested in complex Windows networks, or time-saving DevOps tricks, or advanced hypervisor deployment, or pretty much anything you can name, there's probably a home-lab environment for that. The best part? You get to choose.

### 1.3 Personal Motivations
My decision and primary inspiration to create a Home-Lab mostly came from the r/sysadmin and r/homelab communities on Reddit, along with some suggestions from friends. I wanted to build something practical for my everyday life, whilst also learning a bunch about networking and security. As such, some hardware decisions were made for price-saving reasons, and for ease of maintenance. 

## Part 2: Planning My Home-Lab
### 2.1 Assessing Space and Resources
#### Tailoring the Lab to My Space
Given the constraints of my living space, I had to carefully assess where my Home-Lab could fit. Luckily, I had a bit of spare room in my basement, so I repurposed it for this purpose. This decision influenced the size and type of equipment I could accommodate. Some home-labs fit on desks using Raspberry Pis and Micro-PCs, luckily due to this choice I did not need to worry about those constraints

If you're planning on creating a home-lab, take a close look at your available space and envision how it can be optimized for your homelab. Whether it's a spare room, a corner in your living space, or a dedicated area in the garage, make the most of the space you have.

#### Taking Inventory of Resources
Before diving into purchases, I took stock of the resources at my disposal. Existing hardware, spare components, and even unused devices were considered. This not only saved on costs but also gave a second life to equipment that might have otherwise been forgotten. For the most part, I had all the cables needed (cat5e, cat6, et cetera) for the devices I had planned to use. If I had more existing equipment, I probably would've made an Excel spreadsheet to track it all, but given all I really had was cables, it wasn't needed.

![Assorted Cables](/images/Cables.jpg)

### 2.3 Budgeting for My Home-Lab
#### Financial Realities
Building a homelab doesn't have to be an extravagant expense, despite what many of the lab screenshots on the internet would like you to believe. However, setting a realistic budget early on is crucial. I carefully considered immediate costs and potential future upgrades. Exploring cost-effective solutions and repurposing existing hardware were key strategies in keeping the budget manageable. I created a spreadsheet to track it all, and total up costs and potential future costs.

## Part 3: Choosing Hardware for My Home-Lab
### 3.1 Server Hardware
For my homelab, it was important that I could be able to sustain many VMs running concurrently, as well as leaving room for expansion if I needed to. It was also important to select hardware that wouldn't break the bank in terms of power draw. As such, I mostly looked towards used rack server equipment for this set of needs.

In the end, I opted for a used (and rather cheap) Dell PowerEdge R720 with a Intel Xeon E5-2660 v2 and 128GB of RAM for its great price, good performance, support for many VMs, and room for expansion storage-wise. It perfectly aligned with my goal of creating a virtualized environment for running web applications, AD controllers, and test networks.

![Dell R720](/images/R720.jpg)


### 3.2 Networking Equipment
A homelab's hardware and software is only as strong as its network, and choosing the right networking equipment was paramount. I carefully assessed the network requirements for my projects and selected a used Cisco Catalyst 3560G and a virtualized pfSense instance to create a reliable and high-performance network infrastructure.

![Cisco Switch](/images/Switch.jpg)

Of course, Gigabit Ethernet and 2-3yo Cisco Multilayer switches aren't exactly the newest and coolest tech on the market, but they were very helpful in my CCNA certification learning, and they're more than alright for my homelab needs.

### 3.3 Storage Solutions
Storage is often a balancing act between speed and capacity. For my homelab, I needed sufficient storage for virtual machines and data, coupled with the speed required for responsive application hosting.

I settled with 4TBs of SAS hard-drives that were compatible with the Dell PowerEdge that I chose. They aren't the best storage solution, and they're getting a bit old/slow at this point in their lifespan, but given my needs they were suitable. The next physical thing I may upgrade will likely be the hard-drives, but they have yet to break or show any problems, so I will likely continue using them on the server.

I also utilized an existing Synology NAS with 8TBs of SATA HDDs for backup solutions (as seen later in this blog series), however this wasn't directly associated with my homelab, as I had it and was utilizing it beforehand. 

![Synology DS220](/images/DS220.jpg)

## Part 4: Planning the Physical Environment
### 4.1 Physical Setup
With the hardware decisions made, it was time to finally breathe some life into my newly acquired hardware. I dedicated a weekend to organizing the space, setting up shelves, and optimizing the layout for efficiency and accessibility. However, you could easily dedicate less time if you have a busy schedule.

The server rack took center stage, positioned for easy access to ports and cables. Cable management is also important for any setup, ensuring a clean and organized appearance. Do not underestimate the impact of a well-organized space. It not only enhances functionality but also contributes to a more enjoyable experience later down the line. My management approach definitely left some stuff to be desired, however it certainly works well enough for my needs.
### 4.2 Power and Cooling
Power and cooling are often overlooked aspects of a home lab, but they are critical for the stability and the longevity of your equipment, as well as the safety of your data. I did not invest in a uninterruptible power supply (UPS), however I would strongly recomend doing so to safeguard against power fluctuations and outages. The majority of my improvement plans (at the current moment) involve the implementation of better reliability using devices like UPS's. Additionally, you may want to consider the implentation of a cooling solution to maintain optimal operating conditions, especially during heavy workloads. My requirements and hardware didn't nessitate this, especially given the cool temps of my basement.

### 4.3 Initial Configuration
With the physical organization and setup complete, it was time to power up the hardware for the first time. This phase involved a lot of sitting on the ground messing with cables and install wizards. I didn't encounter much resistance during the process, but it's definitely normal to encounter challenges during the initial configuration. Patience and a systematic approach are key. Getting the initial setup right can make the configuration later-on a lot easier or harder depending on the scenario.

Some general tips for next time:
* Start by getting the network equipment working first. You can leave the advanced security/QoS stuff for later, but don't underestimate the value of a stable network backbone when setting up the rest of your equipment
* If an install wizard or tool gives you a big text dump of instructions/warnings, take a photo of it for later reference. It's quite easy to miss minor details or forget what to type when the time arises
* Consult official documentation/manuals first (if possible). Google/StackOverflow/ChatGPT can be handy, but it's best to leave it up to the OEMs if possible.

The following was an example of some of the tasks I performed, in order of operations (approx.):
1. Ensure all power/network/display cables were properly seated, and turn on all powered equipment
2. Configure appropriate Rapid-PVST/DNS/NTP settings on the network switch, and test network connectivity using external device
3. Connect all additional devices to network switch using Cat5e cables
4. Perform basic Proxmox VE install on R720 (a story for part 2... coming soon)
5. Install/configure Synology NAS for backup operations

## Part 5: Conclusion
I've talked about a lot in this post, so I've decided to split this discussion of my homelab into a series of posts. We've looked at the inception of my homelab, from the initial motivations and planning to the important hardware decisions and the actual physical setup. The path to creating a good homelab is not just about assembling hardware or building configuration; it's a dynamic process of self-discovery and continuous learning. Looking back at the journey so far, I've encountered challenges, made decisions, and gained valuable insights into the intricate world of enterprise technology. However, creating a good homelab is an ongoing project. As I fine-tune configurations, experiment with new technologies, and tackle unforeseen challenges, the lab will evolve.

In the upcoming posts, I'll delve into specific projects and experiments conducted within the lab. From setting up hypervisors and virtual environments to exploring backup solutions inside complicated networks, each installment will provide a deep dive into a particular aspect of my experimentation. I'll share the successes, the lessons learned from my failures, and the exciting discoveries I've made along the way.

Thank you for reading, and happy homelabbing!
