Ever since I was in 6th grade, I have been interested in running my own server at home. It all started with running my a Minecraft server for my friends and I. It quickly grew into a project I am still working on today.

In the beginning

I built a computer out of parts I primarily found the the garbage room of my apartment building and used parts on eBay I paid for with my allowance. 6th grade me was very proud of himself, until I realized the computer did not turn on and the power supply started smoking. The inital attempt was a failure, but I did not stop there.

Over the next year I tried again, and my second attempt was successful. I had a secondary PC running Windows which I could control through TeamViewer. It did not do much more than just run a Minecraft server, but as with most projects it eventually grew into something more.

Expansion

When I was in 9th grade, the concept watching video game live streams was something I found really cool. In real time, you could watch and interact with the streamer and influence what was happening in the content being streamed. But an a major issue present was how could streamers alert their fans about when they were currently live. Sure they could do this manully, but that takes time and effort that could be used to advancing their content. Instead, I started working on my first real project, kown as M8 Bot. While not going into too much detail, it was a Discord bot written in Node.js. And what do 24/7 chat bots need? Server hosting!

So I started to host this bot on the same server I ran my Minecraft server on. And all was good in the world, from a server standpoint that is, until it came time for me to go off to college. I shut down the home server so I could focus on school, and it still sits in my childhood bedroom to this day collecting dust.

Rebirth

Sophomore year of college brought much more free time than freshman year. Due to the pandemic we were doing classes online, and much what I dedicated my free time to in freshman year was closed down. I used this as an excuse to learn more about networking and hosting. It started small, I wanted to make my own NAS to backup my data to. So I went online and ordered one of those pre configured NAS boxes that you just needed to hook into ethernet and install HDDs. I was not happy with the experince. Everything was locked down, and I could not customize it at all.

After returning the NAS, I got myself a Raspberry Pi and a USB HDD dock and decided to go DIY. I installed OpenMediaVault, a Debian based NAS solution that allowed for GUI control for basic NAS functions as well as full access to the Linux OS system underneath. And with access to the system, I started to grow my understanding.

First it was Nextcloud to replace my Google Drive, then it was Plex to serve as a hub for all my movies, TV shows and music. Then I learned about Docker and soon enough, I became a Docker fanatic. Everything I could think of I ran containerized. I set up container networking to route things through a VPN for privacy. I configurd containers to talk with eachother. A reverse proxy so I could configure domain access. I even set up virtual machines through Docker so I could experiemnt in different Linux environments.

Upgrades, People, Upgrades

I eventually outgrew the Rasberry Pi’s limited ARM64 SOC and upgraded to a small yet much more powerful office mini computer. The setup was janky but I was able to redo everything for x86_64 and got stuff working. And I continued on this path for a few more years.

But in 2023, after I graduated college, I wanted to expand even more. I finally got rid using external HDD docks and instead built a new PC from the ground up. I found a great deal on a used Intel Xeon CPU and corresponding motherboard, ECC RAM, and went from a small capacity of 4TB (2x 4TB HDDs in RAID 1) to 18TB of capacity (4x 6TH HDDs in RAID 5). I switched off of OpenMediaVault to Unraid, which provided a more powerful out of the box solution while still granting me access to the underlying Linux OS.

Today this server is my homebase. My firends and I have built a library of 4.2TB of TV shows and about 900GB of movies we have ripped from our own personal physical and digital collections, accessible from anywhere in the world with Plex. I have cut my reliance on Google services, hosting Nextcloud for my files and Immich for my photos. Game servers are still a core part as well, for whenever my friends and I get an itch to play something together on a weekend. I run a personal WireGuard VPN to allow private and secure access to my home network on the go. And most importantly, I continue to find new open source projects and expand on my Linux skillset every day with tweaks and new changes I make to the server.


<
Previous Post
Hello World
>
Blog Archive
Archive of all previous blog posts