Humble Beginnings - the first server
I think it was around 2012 when I bought Minecraft. It’s a fantastic game that’s still popular to this day (a testament to its versatility), but that’s not what I’m talking about today. Instead I want to tell the story of how its multiplayer led me down the path to setting up my own homelab.
Playing the game with my friends was the primary reason I bought it, so we needed a way to play online. We initially found a few public servers to play on, but these were less than ideal as the world had already had marks left on it by other players. We wanted a clean world to build something from scratch together in. Minecraft Realms (the game’s first-party private server hosting solution) didn’t exist yet, so we needed to set up our own server to play the way we wanted.
I took up the mantle for my group and bought an off-the-shelf package from a French hosting company. It was reasonably successful in my school, attracting many people outside of the original group who I had intended the server to be for. After about a year I cancelled the subscription as people had mostly stopped playing and it was draining my savings a bit. The most important part here is that I learned a lot about server management, being an administrator, and providing a service to users.
We cannae do it, Captain! - the second “server”
It was soon after the closure of the first server that we discovered mods. The problem: They impacted performance quite a lot, so we needed more CPU grunt than a cheap £5 VPS. Understandably nobody was willing to fork over a bunch of money to another hosting provider, so what were we to do? I stepped in once more with an idea: Why couldn’t I just host it on my own computer? It was probably powerful enough to run the modded game and server at the same time, at least for a few players.
So I went to work learning how to host my own modded server on my local machine. I figured out how to forward ports, I experimented with dynamic DNS services (though eventually I just asked my ISP for a static address), and I learned a bit of Batch to relaunch the server automatically if it crashed. All in all, it worked! And though my game’s performance suffered a bit, it was worth it at the time to provide the experience we all wanted.
The Great Separation - the third server
While our current system worked, it was getting a little cumbersome to manage all the different modded servers I was creating. We had since started playing additional games such as Terraria and Factorio, which both with their own server files and mods to organise. I needed a better solution. I needed a dedicated machine.
Luckily I had recently come into a spare PC as I’d recently traded my old laptop for one. It was pretty mid-tier, but was definitely good enough to run a game server or two and some additional other lighter services. It was at this time that I began to learn about Linux and Docker, as I had already tried using Windows Server on this machine (I apologise, it won’t happen again).
Fast-forward to today, and you’ll find that this same server is still operational. It runs Ubuntu Server and Docker with services like Postgres, MongoDB, and Redis for development, PiHole to schlurp up ads/trackers on my local network, and of course — a modded Minecraft server. 😊