Luke Marshall

Documenting My Homelab

This is where I’m dumping notes and updates about my homelab setup. It’s mostly for myself, but maybe someone else might find it interesting. My inital dive into selfhosting was awful… but I’m documenting how I’m making it better.

I recently finished an IT conversion master’s and started my first proper IT job. The course was very heavy on software development, but around the edges of that I discovered an interest in networking, infrastructure, and selfhosting. I had an old generic HP laptop sitting around collecting dust, so I just started messing around, spinning up services, breaking things, reinstalling stuff, Googling errors, etc.

That slowly but eventually turned into a proper little homelab with another second-hand machine and a bunch of Docker containers. It sort of worked in some ways, but it was also just a complete mess in other ways. Nothing was properly thought out, just thinking “hey, that looks cool” and then spinning it up and leaving it there, meaning there was no documentation, no backups, no real organisation. Stuff broke often, things didn’t link together properly, and it interfered with the network too much to pass the acceptance factor.

The house I live in actually has Ethernet ports in most rooms and a patch panel in the attic, but I didn’t make use of any of that – I literally just connected the laptop via Wi-Fi to my ISP-provided router (which is absolutely horrendous… but never thought to buy another one) and eventually connected the other device, an HP Elitebook G3 Mini, directly into that router via Ethernet. I ran most stuff through Docker because it was the easiest thing to do, but I had issues with PiHole since my ISP router didn’t allow me to change the DNS server, meaning every single device needed to change its settings to connect to it, and the few devices I had where I couldn’t change the DNS server (such as my Roku Smart TV) were still receiving ads. I tried rushing through installing NextCloud using ChatGPT and I just could not get it to work, I don’t even remember why, so I just gave up and went with Samba to use it as backup storage. I span up WikiJS in an attempt to make some notes about the set up, but it was too far gone and I couldn’t be bothered. Flame was a nice dashboard to use, but after setting it as my browser homepage on my daily driver laptop, it got incredibly annoying every time I left the house… You get the picture.

Here’s the old setup in a very crude diagram:

Anyway… I’ve decided to wipe it all and rebuild the whole thing from scratch and build it properly this time. Important stuff is backed up, took a few notes, drew some diagrams, and now I’m setting it all up again with some actual thought behind it, or at least more thought behind it than last time, in an attempt to make it maintainable, scalable, and something I can keep tinkering with without it falling apart.

The plan is to use this site as a live log, sometimes detailed, sometimes just brain dumps, as I figure stuff out, talking about what I’ve set up, what I broke, how I fixed it (or how I didn’t…), and what I’ve learnt along the way.