My journey first began when I saw this post on Reddit,
https://www.reddit.com/r/homelab/comments/lo8mol/network_diagram_to_represent_my_one_year/
This was about 1 year ago and it was when I just started college as a Freshman.
I was so amazed at this post and didn’t understand a single thing. I kept scrolling through the subreddit, trying to understand all these programs and terms but it just didn’t click. I lost motivation to learn and finally in November 2021, I revisited this subreddit (/r/homelab). I was determined to learn everything about what a homelab is. To put it simply, it is a lab where you can experiment and break things. If something goes wrong like if you were to delete system 32 on accident, you can simply roll back to a backup and it’s like it never happened. In a workplace, people are limited to what they can do on a production server but in a homelab it is free rein. Anything you can think of, you could create.
Most people use their homelab for IT reasons and to expand their skills. Others use it for their hobbies and prefer to self-host applications like an alternative to google drive, etc. That’s the beauty of it being called a homelab, you can do anything you want. Want to host a game server, a discord bot, a password manager, the sky is the limit.
I didn’t know it at the time but the path I was going down aligned with my major and the passions I had when I was younger. A passion that involved tinkering with computers and bringing my ideas to life.
I first had to ask myself a couple of questions. Going into college as a business major with an emphasis on CIS. I knew my path lay ahead in IT, but the thing is, IT is so broad and I had to decide on what to do. You can do Helpdesk, Sysadmin, DevOps, Programming, Data Analytics, Cyber Security, Networking, and the list goes on. The good thing is that all these fields relate to one or another and when you start to gain a high-level understanding of all these fields. You understand the IT field better and topics start to be more easy to understand and you can go in depth in one or more fields. You may think you have a good understanding of one or more IT fields but the moment you go deeper than a high-level overview you start to understand the depth of the field. One field you really see this is Cyber Security where once you start learning you realize you don’t understand anything. That’s fine and IT is constantly growing so you will always have to keep learning. That’s where you need a place to test and experiment with you ideas is needed.
I found that I needed hands-on experience with all the technologies that employers use and a homelab was what I was going to use to build hands-on experience. Skills in need in the IT field that I’m interested learning/improving in, are containerization, IaC, serverless code, ci/cd, python, ansible and the list goes on. You can never stop learning and there will always be a new stack/open-source software you can use to enhance your workflow.
Before buying any equipment, I needed to ask myself multiple questions such as why I needed a homelab, what I was going to use it for, where I was going to put it, energy costs, and various other topics. If you just starting out I recommend using an old computer you have lying around or using a Type 2 hypervisor such as Virtualbox and Vmware. On here you running a virtual machine where you can load any OS (operating system) like Linux or Windows. You can start running something like Ubuntu and get familiar with the terminal. From there you can experiment with programs that are in demand for IT. Such as running your first Docker container, with an application named https://docs.linuxserver.io/images/docker-heimdall. This is a way to organize all those links to your most used web sites and web applications in a simple way. Your most likely going to run into problems but part of what IT is. Troubleshooting and solving problems. Once you created you first Docker container, create more and try to understand logs, networking, volumes, and labels.
This quickly gets overwhelming and I spent many hours on reddit and various YouTube channels deciding what I need and wanted. Most posts on the subreddit homelab showcase enterprise equipment such as a Dell PowerEdge R710 and the various services that people are running on it. Most people are running Proxmox on servers and applications such as heimdall running on Docker. It starts to get crazy pretty quick but a good first application people run is Pi-Hole. The setup is dead easy but when I first started, holy cow, I had so many problems and I was troubleshooting for weeks. It’s embarrassing to say that I was struggling with the most basic application with tons of community support but it is what it is. I eventually found out that my problem was that I was clicking wifi instead of ethernet (eth0) when setting up my Pi-Hole application on my server. Anyways, that was a great experience and a good learning experience. Pi-Hole is pretty much a DNS Blackhole where all the bad ads you get on a website get sent to the Pi-Hole first before you get the webpage. It’s more complicated then that but I’ll make a blog about it soon!
An R710 and many servers that are on a rack that people post on the subreddit are beefy computers. This server is a beast of a computer because it relativity affordable and it is still a good server for homelab usage. People nowadays recommend a R720 because it’s newer and older enterprise equipment have went down due to age. You can have up to 24 cores and up to 256gb of ram! Imagine the number of virtual machines and applications you can run on this server. I didn’t need this beefy server and I didn’t have any place to put it.
I had to identify my needs. I couldn’t have a rack-mounted server. I didn’t have ethernet run across my house. I had to save on energy costs. I wasn’t going to run huge applications like databases, websites, etc from my homelab. I had a limited amount of space and the only place I could put my equipment was on my closet in the garage. My needs were limited and I had to work with what I had. You can check out the equipment I’m running in my other blog post.
I didn’t know what I wanted to run on my servers/homelab or what to learn so I pretty much learned as I went. After much research, I decided I wanted to have good network security, self-host common applications, and simulate an on-perms data center. There is just so much to think about when you’re planning a homelab or hosting applications. It’s normal to feel overwhelmed but I promise you it’s worth it.
I didn’t need a beefy server so I decided to go with an Intel NUC, Raspberry Pi, and a Dell Optiplex 5040. These were the computers that would stay on 24/7 running my applications on Docker. After looking online and through many forums I decided to run a Type 1 Hypervisor on both my Intel NUC and Dell Optelix 5040. The Hypervisor I choose was Proxmox and the reason I choose it was due to community support, and open-source hardware, and you didn’t have to pay for it, unlike ESXi. I also decided to completely upgrade my internet and routers these days. They come with a switch, router, and modem all combined in one.
I want more security and more control over my home network. I went out and used an old computer to run Pfsense which is an open-source Firewall/Router. Getting started with what you have is the best way to start a homelab. If you have an old PC or laptop, try to upgrade the ram/storage and you should be good. You can run a type 1 hypervisor and start building out your homelab. Or just run a Ubuntu server as an os and you are ready to get started. A homelab can mean many things to any person. Whenever you want to test things you can’t at work or simply host a simple DNS blackhole such as Pi-Hole. It doesn’t matter what you run or what you’re running your equipment but that you’re enjoying yourself. To have more network security I bought a Layer 2 switch with layer 3 capabilities to run VLANS to separate my networks.
I needed a homelab to build out my ideas and test them in an environment where they could fail and be rebuilt. I wanted to learn new technologies and experiment with Linux.