Homelab

My Home Network/Data Center Setup

Introduction

Welcome to my first post!

As part of my journey into systems administration and DevOps, I have set up a small network/data center at home. This setup serves as a practical learning environment where I can experiment with various technologies and concepts. In this post, I will walk through the components of my home network and explain how they are interconnected. I have also created a diagram using Draw.IO to visually represent the setup.

I have wanted to create a diagram of my network for a while, and after learning the basics of draw.io it was surprisingly easy, albeit a bit time consuming. Overall I am quite pleased with how it turned out.

Diagram Overview

Homelab Diagram

Components of My Lab

1. Router

Until recently I ran my own router in OPNSense but had issues that led me to wanting something a bit more polished. I ended up getting the Unifi Cloud Gateway Ultra, which has 1 POE Port for my AP, and a 2.5GB port. I am quite happy with the UCG Ultra, it offers great features at a good price with stellar performance.

2. Switch

Connected to the router is a MikroTik 24 Port managed switch, which allows for network management and segmentation. The switch boasts 2x 10GB SFP ports which I use to directly connect my servers to the network.

3. Servers

I have a couple of servers running different operating systems and services:

4. Raspberry Pi Cluster

Practically, not that useful, but good practice and a lot of fun.

Consisting of 6 Raspberry Pi 4’s in a 2U rackmount device, it is ideal for learning and experimenting with distributed computing. I use my Raspberry Pi cluster to practice Kubernetes, Docker Swarm and other clustering methods, deploying and managing containerized applications, and understanding concepts like load balancing, fault tolerance, and cluster management.

5. Monitoring and Automation

I use SaltStack on my devices to automate deployment and provisioning of new VM’s, make changes to existing machines, or generally make changes. It keeps things nice and readable and easily repeatable. The best way of documenting changes it by putting your commands in a Salt State! Basically all I’m saying is, SaltStack is great.

I use Wazuh for Endpoint Monitoring and general Security Detection. My Github Repo here includes a Salt State used for installing and configuring Wazuh Server, as well as installing the agent on client machines.

Prometheus is running on most of my devices for easy graphing and metrics in Grafana.

Lastly, I have LibreNMS polling SNMP data from my network devices that provides longterm statistics and interesting data.

Conclusion

Setting up this home network/data center has been an invaluable learning experience. It has allowed me to get hands-on with various networking and server management tasks, in a realistic but safe environment. I look forward to sharing more about the specific configurations, challenges, and successes I encounter along the way. Stay tuned for more updates and detailed tutorials!

Feel free to reach out if you have any questions or suggestions. Happy learning!


Note: The diagram above is a simplified representation. Actual configurations may vary.