Homelabbin' Dabblin'

The hardware and software I chose on my first foray into home lab.

Home-what-now? Homelabbing is about running your own server at home. Generally you do it for fun. But it gets exciting when you start hosting services that can replace paid subscriptions like Netflix. This is how I got roped into the homelabbing scene.

🏁 Getting started

It all started on youtube. Here’s the youtubers that are sending me down this rabbit hole. In no particular order.

  1. Hardware Haven
  2. Techno Tim
  3. Raid Owl
  4. Jeff Geerling

These guys combined have created a fantastic community for learning about homelabbing. Between these youtubers and my friend Mike who already runs his own home server, I’ve been learning a lot.

βœ… What are my requirements & constraints?

I live in an apartment in South Korea. You know, like the one from that RosΓ© song? I absolutely do not have space for the room-sized servers of yesteryear. I need something small and low power. As a beginner, I’m not looking for a rack yet, but something that can fit on my desk and a worthwhile service that will keep me motivated to complete the project. I have to admit I’m already looking ahead at some 10" racks though.

I hovered on a few project ideas. LLM Server, NAS, but eventually landed on a media streaming server. I had a mini pc that could support the server, I just needed a home network that would be amenable to homelabbin'.

πŸ›œ Networking

Our apartment was still using the ISP router up until the week before I started this project. Maybe the ISP router would have been fine, but the router firmware was in Korean and didn’t have language options that I could find. I considered it a success that looking up the model number I could even figure out how to login to the router.

Our apartment is wired for ethernet. The cables are labeled as cat5, but I’m getting almost 500 mbps on my PC. Cat5 is only supposed to go up to 100 mbps, so that’s cool.

Now I’m running a TPLink Gigabit Router and an unmanaged TPLink switch on my desk.

  • Router: TP-Link ER7212PC
  • Switch: TP-Link LS108GP

πŸ–₯️ Hardware

Mini PCs (aka NUCs) have been growing in popularity and I picked one up last Christmas. I’ll list the model and specs below.

GMKTec M6 Mini PC

  • CPU: AMD Ryzen 5 6600H
  • GPU: AMD Radeon 660m
  • RAM: 32GB DDR5 SO-DIMM*2
  • Storage: M.2 2280 1TB SSD

Then I have a USB-C 2TB Samsung external SSD for my media. This is a fine launching point, but you better believe I’m already thinking about a NAS as a follow up.

πŸ‘©β€πŸ’» Software

The two core apps I’m running are Proxmox and Jellyfin.

πŸ“š Proxmox

Proxmox

Proxmox is a virtualization server, which means I can use it to run and monitor lots of virtual machines (VMs) on a single computer. Each VM is a fake computer that can run its own services in isolation from others. This app makes it easy to host various services and manage them all in one place and it’s open source and free.

Proxmox is installed directly onto my mini pc as the operating system.

πŸͺΌ Jellyfin

Jellyfin

Jellyfin is actually two separate apps. There are both server and client apps for Jellyfin, and Jellyfin has client apps for most operating systems and devices, or you can just use its web app.

Jellyfin Server is the first service that I installed on Proxmox. It uses a fraction of my RAM and Storage to run the Jellyfin application in a VM. A Jellyfin Server allows me to serve my media over my home network. And in the future if I choose, I could open this up so I can access my media securely over the public internet. Maybe even share with family and friends!

Jellyfin Clients are installed on devices that I want to use Jellyfin. My phone, tablet, and even our LG TV have installed the Jellyfin app. These client apps look and feel like blue Netflix. You can browse your media and manage collections and favorites. You can define parental controls for your kids. It even has a login screen where we have multiple logins and the kids’ account doesn’t require any password.

πŸ‘€ What’s next?

@me on Bluesky or LinkedIn if any of these sound interesting enough for another blog post.

πŸ“ Write a FileBot clone

After installing and using Jellyfin I found that many of my tv shows aren’t displayed properly. They got mapped to some bogus shows or they were labeled out of order. So clicking play on episode 1 queues up episode 5 or some shenanigans like that. Now I know there are tools like FileBot, but this seemed like a good opportunity to try writing my own desktop app - something I’ve always wanted to try. So now I’ve started on a Tauri app using Vue 3 for my front end. Tauri is written in Rust - I spent most of 2024 trying to learn it, and I could never think of a good app idea to put Rust to work. Then I’ve always enjoyed using Vue. This idea coalesced in an afternoon and I’ve been putting my spare coding hours into it.

πŸ’° Install a NAS

If I want to do this right, or even half right, it’s going to cost money. Of the limited research I’ve done so far, TrueNAS seems like the open source software of choice and is pluggable to Proxmox. But I’m gonna need some storage space and somewhere to store the storage, ie: some kind of rack to hold the hard drives and/or SSDs for this presently imaginary NAS.

πŸ€– Local LLM Server

I’d love to have an LLM server capable of running the 70b models for chat and more demanding generative work. I could settle for something around ~10b though just to do basic brainstorming sessions or hooking up to vscode for ai assisted intellisense. I’ve already written about how I host ollama and open-webui locally on my mac book. I use that a few times a week and it would be nice to move those two into a proxmox vm at the very least.

Built with Hugo
Theme Stack designed by Jimmy