From Dream to Server Rack: Unveiling the Epic Journey of Crafting My Homelab Server
Tags: homelab, virtualization, raspberrypi, homenetwork
Published: 2024-01-28 03:23:29

As a kid, even the word “server” would give me goosebumps; I never truly understood what a server is. A cold room full of tall black boxes? A giant skyscraper-shaped computer? A huge parking lot-sized room full of computers? The answer I finally got is that it could be as simple as a credit card-sized Raspberry Pi or an arena-sized infrastructure.

I can’t afford a building’s worth of computers, but a Raspberry Pi? Pi! Maybe! This got me thinking, and for over a year, I pondered what I could do with a server. Host my website? I got Hostinger.

Then I started digging into why anyone would ever want to have their own server, and I got overstimulated, fascinated, and bamboozled by what people did with their servers or the magic word: HOMELAB. Now I wanted to buy an RPi or maybe two, or three, or four, and a mini PC too, why not?

After a week of reckless buying, here I am with a Mini PC and 4 Raspberry Pis. NOW WHAT? What do I create? Also, where do I put them all… well, add a 12U server rack as well.

Here are some of the notable services I am running in my homelab.

## Automated Media Server — RPi #1

> Disclaimer: The following section provides information on creating a media platform based on torrents. It is important to note that downloading copyrighted content without proper authorization from the content owner may be illegal in many jurisdictions. This article does not condone or promote any form of piracy or copyright infringement.

The first project I worked on is a fully automated media server using Jellyfin and the *arr suite of apps. Undertaking a project like this taught me the basics of RPi and its OS’s. For this project, though, I wanted something minimal with a clean interface, so I used CasaOS as the platform, and it made it very simple to configure and maintain the Docker containers related to the media server.

It wasn’t the easiest project, as I did bump into lots of issues regarding storage mount, users and groups permission in the Linux file system, and a lot of Docker-related issues. Nonetheless, this was one of my favorite projects I did using an RPi, and it also made managing my media in my house and outside very easy.

One RPi down, 3 more to go!

## Proxmox Server — Mini PC
After completing the media server, I had 3 more RPis and a Mini PC. I wanted the Mini PC to have a more significant role and basically be the center of my homelab, and then I came across Proxmox — my favorite hypervisor. Over the years, I tinkered around with Type-2 hypervisors such as Virtualbox, Parallels, and VMWare, but to have a virtualization platform where I can access the host’s desktop/terminal from a web browser is absolutely mind-blowing.

Setting up Proxmox was fairly simple, and the user interface for a tech geek should feel like home (cluttered). Remember when I said I was hosting my website on Hostinger… well, goodbye Hostinger. I HAVE MY OWN CLOUD NOW!! Yeah, I was ecstatic when I realized I have all 5 infinity stones in the form of PROXMOX! Basically, I created multiple web servers, NAS servers, a cybersecurity homelab, and a sandbox machine all on my Mini PC with Proxmox… yeah, the Mini PC (32GB RAM) ain’t mini anymore.

My future endeavor is to get another Mini PC and set up a small business Microsoft AD, MDM, DHCP, DNS suite for testing purposes.

## NAS Servers — RPi & Proxmox
One of the driving forces behind buying 4 RPis was to create multiple NAS servers. I run a wedding videography business where I have to store a lot of files, and it is huge in size as well. The issue that I was facing was the transfer of files between my photographers/videographers and editors. There are services like Google Drive, Dropbox, One Drive, and many more, but the cost for those services is not justifiable. Hence, I invested in a good HDD and an RPi to give me my own cloud drive with access over the internet to whoever I choose. So, I used One RPi with OpenMediaVault and Two Linux VMs in Proxmox to run TrueNAS and another OMV NAS. In total, 3 NAS servers in my homelab provide me access to my data across all my devices from anywhere.


## Home VPN Tunnel & Reverse Proxy — RPi
You might’ve noticed words like “access over the internet,” “public access,” and other similar words are italicized in the above sections, and that is basically a hint of this section. So if you are a little bit knowledgeable in basic networking, you will know that we have public internet and private internet, which basically means that all of our devices can browse the internet, but the services running on our machines are not always accessible from outside. This is why you can play a video on your TV when you’re at home, but when outside, you cannot do the same.

I needed a way to access my media server, NAS servers, and Proxmox from outside, and that’s when VPN comes into play. Normally we use VPN to bypass location-based access and other trivial things, but VPN can also be used within your homelab setup to access all the services from outside.

So, I used one of my RPis to run WireGuard VPN and other core services such as a reverse proxy with NGINX Proxy Manager for secure access and other internet access services.

## NTFY.sh & UpTime Kuma — RPi
Running all the above-mentioned servers and containers and the ones I didn’t mention comes with a lot of monitoring and maintenance, and I do not have the time or the desire to look into each service every now and then. So, in order to automate all these, I use UpTime Kuma to monitor all the servers and containers running and NTFY to send notification if any of the services is down.


## Future Plan for my Homelab
The future of my homelab is definitely bright lol. I do plan to run my own DNS and DHCP servers in the near future along with a software-based firewall. Ultimately, I want my homelab to be technologically fun and be able to use it to learn complicated DevOps processes and concepts.

Thank you for reading through it all and keep in touch as I plan to publish guides on the installation processes and general server updates as I move forward!