My Home Network/Data Center Setup
Welcome to my first project and pride and joy, an overview of my homelab and data center setup.
Introduction
Welcome to my first blog 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. You can see it posted above.
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 on WAN. 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:
-
Servy: Running Unraid, this hosts 32TB of files, media, documents, and various archives of things I’ve downloaded over the years. I also use this as a backup for all my devices on the network and hosting some web applications. It is accessible from all devices on the network.
-
TinyTitan: Running Proxmox, a tiny but mighty Intel NUC that runs anything and everything I want to experiment with in Proxmox. It also serves as the Salt-Master for the network.
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.