Skip to content
AFCOMP

Homelab

The rack, and everything plugged into it.

A small workstation doing the job of a server closet. Every service on this page is running right now, in my house, on hardware I paid for and can physically reach.

/ 01Hardware

Compute

Host
HP Z2 Mini G9
Hypervisor
Proxmox VE
CPU
Intel Core i7, 13th gen
Memory
24 GB
Boot
512 GB PCIe Gen4 NVMe
Data
1 TB PCIe Gen4 NVMe

Network

Router
TP-Link Omada ER707-M2
Switch
SG2210XMP-M2 managed PoE
AP
EAP770 — WiFi 7 tri-band
AP
EAP720 — WiFi 7 dual-band
DNS
Pi-hole on Raspberry Pi 3B
Uplink
Spectrum fiber

Bench

Printer
Bambu Lab P2S
Material
PLA
Rack
3D-printed 10" LabRax
Access
Tailscale mesh
/ 02How a request reaches the rack

This is a genuine sequence — a packet passes through these layers in order to reach anything I host, so the numbering carries real information.

  1. 01

    Edge

    Spectrum fiber into an Omada ER707-M2. Ports 80 and 443 forwarded to the server, UDP 19132 forwarded for the game server, DMZ off.

  2. 02

    DNS + TLS

    Cloudflare holds the records, with dynamic DNS containers keeping them pointed at the right address. Nginx Proxy Manager terminates TLS with Let's Encrypt certs.

  3. 03

    Virtualization

    Proxmox VE on the bare metal, with an Ubuntu Server VM as the workhorse. Data lives on a separate NVMe mounted at /data.

  4. 04

    Containers

    Everything runs in Docker with compose files tracked in git. Persistent data is bind-mounted out of the containers so a rebuild never costs me anything.

  5. 05

    Private access

    Tailscale gives me a mesh back into the lab from anywhere, so the management interfaces never need to be exposed to the internet.

/ 03Services
running

nginx-proxy-manager

Reverse proxy + TLS

running

immich

Photo backup

running

portainer

Container management

running

minecraft-bedrock

Game server

running

afcomp-website

This site

running

pihole

DNS filtering

planned

jellyfin

Media library