Homelab intro

I’ve been slowly building up my home network and recently I purchased lot more gear. So I figured I could try blogging my adventures in setting everything up. One major motivation for blogging this is to serve as a documentation for future self; that is something I’ve struggled with in the past.

Current situation

My current network is centered around ancient TP-link Archer C7 box running OpenWrt. Previously I had moved the main internet routing to separate NanoPi R5S box (also running OpenWrt) because archer-c7 could not keep up with my internet connection speeds (currently nominally 600 Mbps down) anymore. I also wanted to run SQM etc to fight bufferbloat which further increases CPU demand for the router. Additionally I have to live with the DOCSIS modem that I got from my ISP.

So archer-c7 functions as a switch for all my wired devices (TV and main PC) and as a wifi ap for wireless devices (laptops, ipad, kindle etc). This is obviously not very optimal and it has only 4+1 (gigabit) ports available. I wanted to add minipc as a home server for my network and that triggered fairly big changes to the setup.

Current network diagram

I have also old Haswell-era tower server collecting dust from previous time I thought it would be fun idea to setup homelab. Fingers crossed this time will be more successful.

Purchases

To expand by home setup I ended up purchasing:

  • GMKtec Nucbox M7 Ultra minipc as homelab server
  • Zyxel XS1930-12HP as the main switch
  • Aruba AP-555 as wifi access point

These both expand my capability by adding lot more ports and whole new server machine, and upgrades things to a modern standard (Wifi 6 and multi-gigabit ethernet).

Motivation

The trigger for this build-up was that I did develop a small web application for my group of friends and it is currently running on AWS. I would really like to get the application migrated to my own server instead, which would save 15+ eur/month and give me a warm fuzzy feeling inside. I get enough of AWS at $DAYJOB and don’t want to do that in my private life. Nor do I really like AWS from ethics etc viewpoint, it being largely big proprietary blob.

Goals

The plan is to run Proxmox VE on the minipc to serve as VM host. M7-ultra has two ethernet ports so I can dedicate one for proxmox and passthrough the other one to a VM. Inside proxmox I want to try to run opnsense as a virtual router that can handle all the networking for the other VMs. What other VMs will I run is still tbd. I’ll probably start with a VM for lpmpl, but idk if I will split up it to smaller VMs (forgejo, grafana, postgresql etc). In the long term I’d want to get all the configuration defined with infrastructure-as-code in self-hosted git repos, with ci/cd and everything. And of course all the basic network services (dns, email, monitoring/logs, sso/auth/directory, etc). And finally this blog also needs hosting somewhere!

For other networking stuff I think it could be fun to have separate guest and iot wifi networks. Obviously I will want to get rid of the old archer-c7 and migrate all wired devices to the new Zyxel switch, and wireless stuff to the new AP.

Target network diagram

Plan

Main priority now is to get the new AP operational. I think I’ll want to have the AP send vlan tagged frames so I need to configure switch and r5s router to handle that. I also need to setup some access ports and vlans on the switch for main pc and tv, I hope that should be pretty straightforward.

After that I can remove archer-c7 and start fiddling with the minipc and proxmox. One silly limitation I have right now is that I ran out of sockets on my power strip so I can not power up the minipc while archer-c7 is still there.