Home Setting up my first Home Lab
Post
Cancel

Setting up my first Home Lab

Creating My First Homelab: A Journey to Improving My Developer Skills

Building a homelab was a significant step in enhancing my skills as a developer, especially with the focus on cloud-native technologies and infrastructure management. This journey provided me with hands-on experience in server management, networking, virtualization, and remote connectivity. In this blog post, I’ll walk you through the steps I took to set up my homelab using an old laptop and later expanding it into a Proxmox cluster with a Dell OptiPlex.


The Initial Setup: A Modest Beginning

My journey began with an old laptop that I had lying around. It wasn’t a powerhouse by any means, but it had enough to get started. The laptop had:

  • 8GB RAM
  • 256GB storage
  • Intel i5 8th Gen processor

Although these specs are far from ideal for heavy workloads, they were perfect for a beginner’s homelab and a great way to experiment without investing too much upfront.

Installing Proxmox

The first step was to turn my old laptop into a dedicated server by installing Proxmox VE (Virtual Environment). Proxmox is a powerful, open-source platform for managing virtual machines (VMs) and containers. Here’s how I went about the installation:

  1. Creating a Bootable USB:
    I downloaded the Proxmox ISO image and created a bootable USB using a tool like Rufus.

  2. Installing Proxmox:
    I booted the laptop from the USB and followed the installation prompts. Soon, I had Proxmox running on my laptop.

  3. Configuring Interfaces:
    After installation, I configured the network interfaces. My router’s DHCP range was from 192.168.1.64 to 192.168.1.253. To keep the Proxmox server accessible, I set the gateway IP outside this range, but still within my home network’s subnet (e.g., 192.168.1.10).


Networking Challenges: WiFi Woes and the Solution

At first, I attempted to connect the laptop over WiFi, but I quickly ran into issues. Proxmox doesn’t work well with WiFi interfaces when it comes to bridging, and the network setup was unstable.

A Wired Solution

I decided to invest in a Gigabit to USB adapter. This gave me a wired Ethernet connection, which was a major improvement over WiFi. I connected the adapter to a network switch, which in turn was connected to my ISP router. This setup provided a stable and fast connection, ensuring that Proxmox could run without issues and that my virtual machines could communicate with each other and the outside world.


Setting Up Virtualization: Ubuntu VMs and Templates

Once the networking was sorted out, I moved on to setting up virtual machines. I wanted to create a basic Ubuntu server VM to simulate real-world environments for development and testing.

  1. Uploading Ubuntu Server Images:
    I downloaded the latest Ubuntu Server ISO and uploaded it to Proxmox.

  2. Creating Templates:
    I also created a template out of my Ubuntu VM. This made it easy to spin up new instances whenever I needed to test different setups.


Remote Access: SSH and Tailscale

To enable remote access, I installed Tailscale on the Proxmox server. This allowed me to SSH into my Proxmox server from anywhere, making remote management incredibly easy.


Expanding the Homelab: Adding a Dell OptiPlex

After running my homelab on a single node for a while, I decided to expand it by adding a second node to create a Proxmox cluster. I acquired a Dell OptiPlex, which had better hardware than my laptop:

  • 16GB RAM
  • 500GB storage
  • Intel i5 7th Gen processor

Installing Proxmox on the Dell OptiPlex

The installation process for Proxmox was exactly the same as with the laptop. I followed these steps:

  1. Created a bootable USB with the Proxmox ISO
  2. Installed Proxmox VE
  3. Configured network settings similar to my first node

Creating a Proxmox Cluster

Once the Dell OptiPlex was running Proxmox, I proceeded to join it to my existing Proxmox installation on the laptop to form a Proxmox cluster. Here’s how I did it:

  1. Created a Cluster on the First Node (Laptop)

    • In the Proxmox web UI, I navigated to Datacenter → Cluster and created a new cluster.
  2. Joined the Dell OptiPlex to the Cluster

    • On the second node (OptiPlex), I ran the join command provided by Proxmox.
  3. Verified Cluster Status

    • After successfully adding the node, I confirmed that both machines were part of the same cluster in the Proxmox UI.

Now, I had a multi-node Proxmox homelab capable of migrating VMs between nodes and providing a more scalable environment for experimentation.


Lessons Learned and Future Expansions

This homelab setup has already taught me a great deal about networking, server management, and virtualization. Here are some of the key takeaways:

  • Proxmox and Networking: I learned the importance of using a wired connection for stability.
  • VM Management: Setting up templates for VMs makes deployment much faster.
  • Remote Access: Tailscale is a game-changer for secure and easy remote access.
  • Cluster Management: Running a multi-node Proxmox cluster allows for VM migration and load balancing.

Future Expansions

Now that I have a two-node Proxmox cluster, I plan to expand my homelab even further. Some of my next goals include:

  • Adding More Nodes: Increasing the number of machines in my cluster for even more scalability.
  • Exploring Kubernetes: Running K3s or Kubernetes clusters on top of my VMs.
  • Automating Deployments: Using Ansible and Terraform for infrastructure automation.

Conclusion

Building my first homelab and later expanding it into a multi-node cluster was an incredibly rewarding experience. It gave me a deeper understanding of server management, networking, and virtualization, all of which are crucial skills for modern cloud engineering.

With my two-node Proxmox cluster in place, I feel more confident experimenting with new cloud-native technologies, running containers, Kubernetes, and automation tools, and ultimately improving my skills as a Site Reliability Engineer (SRE).

Stay tuned for future updates as I continue to grow my homelab and take on more advanced projects! 🚀

This post is licensed under CC BY 4.0 by the author.

Tackling the Cloud Resume Challenge

Url Shortener