← notes / 2026.07.11
build log: homelab
the goal is to break into server hardware, software, and architecture by building a system i actually live on, not a toy that idles in a closet. here’s the target stack.
- pi-hole, network-wide ad and tracker blocking for every device in the house at once
- jellyfin, self-hosted media server so my library streams on my terms
- immich, photo backup and library, my self-hosted answer to google photos
- nextcloud, files, sync, and sharing on hardware i own
- minecraft servers, because infrastructure should also be fun
that list is basically my definition of “viable” for this project. when all of it runs reliably enough that i stop thinking about it, the homelab is real.
the router
separate but related, i want to build my own router out of some old minipc, probably with openwrt or something similar handling the configuration. owning the network edge is the part most people skip, and it’s arguably the most interesting layer, since it’s where the security and privacy goals actually get enforced instead of just intended.
why
maximize security, increase privacy, and mostly just have control over my own digital utilities instead of renting them. every service above replaces a subscription or a company’s server with hardware i can physically point at. when it breaks, it’s my fault, and i find that genuinely comforting.
the server is real now (2026.07.18)
planning phase is over. the machine is an hp 280 g1 mt business, and it got a couple upgrades on the way in.
- a second 500gb ssd on top of the existing 500gb
- an nvidia t600 for gpu encoding, in support of jellyfin transcodes
then debian went on, with the server environment. the install itself was a whole saga though.
the display saga
i encountered some errors with the display which was really annoying during the install process. when trying to fiddle with the bios and when entering the debian setup screen, my display for some reason would cut in and out. i tried different cables, vga → vga, display port from gpu → vga, etc. and none of them worked. eventually just started messing with the connection at the monitor, and it would cut in and out intermittently which made for a challenge to install. once i got to the IP after installing debian, very painfully but successfully, i was able to just ssh in from my thinkpad x220. ended up discovering it was just the monitor from the start, so there goes that…
the stack is up (2026.08.03)
jellyfin, immich, nextcloud, and a minecraft server are all installed and running now. pi-hole is the only thing left on the original list.
where each one actually stands:
- jellyfin is up but empty. no media in it yet, so there’s nothing to stream until i start filling it.
- immich has pictures in it and is doing the job i wanted it for.
- nextcloud already has files uploaded to it.
- minecraft is up and running and my friends are playing on it.
tailscale is what made it useful
a server that only works on my own wifi isn’t really replacing anything. i could reach jellyfin and immich and nextcloud from a couple of machines at home and that was it, which is not what “control over my own digital utilities” is supposed to mean. and my friends obviously couldn’t get on the minecraft server at all.
tailscale fixed both. it puts all my devices on one private network no matter what wifi they’re sitting on, so anything with tailscale installed can reach the server from anywhere. my friends installed it and joined, and the minecraft server works for them now. none of it required exposing the box to the open internet, which is the whole reason i wanted to build this myself in the first place.
port forwarding, once i own the router
tailscale works, but it asks something of everybody else. anyone who wants on the minecraft server has to install it first, which is a real ask for people who just want to join a server and play. port forwarding drops that entirely and lets them connect the normal way, so that’s where this is going for the friends side of it. i’ll almost certainly keep tailscale for my own devices either way, since it’s still the better answer for reaching immich and nextcloud from wherever i happen to be.
the holdup is that port forwarding means opening the box up to the internet, and i’d rather own the network edge before i do that. so it waits on the router build, which is its own separate project, and that one waits until i move into a new apartment.
next
- pi-hole, the last one on the list
- get media into jellyfin so it isn’t an empty library
- figure out my backup solution so i don’t lose any important data, since the services can always be reinstalled but the data can’t