robert perce

#Homelab

This is the central documentation for my homelab. It’s mostly a reference for me, but I’ve stuck it on my website here so I can send it to people who have questions about it.

Jump to software if you want.

#Hardware

#proxmox

My Framework laptop’s first mainboard. When I upgraded my mainboard to one with a Ryzen 5 7640U, I put the first one in their standalone mainboard case. It is currently Command™ Strip’d to the side of my mini rack.

#minirack

In August 2025 I moved my tangled wad of hardware into a rack. I don’t need or want a full-size 19” rack, but there’s a 10” “standard” of sorts with the same U-height that a couple companies make racks & accessories for. I went with the DeskPi Rackmate T1 with 8U of vertical space.

That’s more than I’m using right now—note all the blank spaces in the hardware section—but I wanted some room to grow later.

My proxmox host is mounted on the side of the rack since it’s long.

Populated units, from top to bottom, follow. Not included anywhere is the PoE adapter for my wifi access point, which came with a power cable much shorter than the space between my UPS and my rack, so it’s dangling unceremoniously out the front.

#power bricks

Just a basic rackmount shelf; came with the rack. Has the AC-DC adapter power bricks for proxmox and xalicas.

#router

TP-Link Archer C7 v2. Basic consumer router I slapped OpenWRT on immediately. Not actually rack-mounted, but Command™ Strip’d to the bottom of the power-bricks shelf. It’s been happily routing for our home network since the mid-2010s. We haven’t used wifi broadcasting for most of that time, since it’s rather anemic, but it’s a perfectly cromulent 1Gb ethernet router.

It’s got four 1Gb ports out, which is exactly as many as I am using right now (AP, proxmox, xalicas, and my gaming/coding desktop). If I add any more devices, I’ll need to either add a dumb switch in between or upgrade the router to something that’s actually 10”-rack-mountable. MikroTik seems to have some options.

It gets internet in from our GFiber jack: 1 Gb symmetric.

#hard drives

Two 2.5” 1TB spinning-rust hard drives that form my NAS. One is a Seagate Barracuda and the other a WD Blue. They’re raid10’d together in software (mdadm, for which 2-disk raid10 makes sense, because it’s easy to grow) for a bit of drive failure safety.

I’d like to expand to a 4-drive NAS but my mobo has only 4 sata ports (and no m.2), and I like to have the main OS on a separate drive for ease of administration, so I’d probably have to move to a sata-to-usb adapter for the OS drive, which wouldn’t be too bad probably.

#xalicas

My oldest home server. With the advent of my proxmox box early in 2025, most of my self-host services run over there now, so xalicas grows ever closer to just being a NAS host.

I’m using mini-box’s M350 Mini-ITX enclosure, with its lid off, mounted to a GeeekPi RackMate Mini ITX Shelf through the motherboard mounting posts (which are threaded through-holes in the enclosure). I happened to have some long enough screws to work! Surprisingly solid for how janky it is. I’d like to 3D print a cover for the open bits at the front to tidy it up, though.

The board isn’t mounted directly to the shelf because this way I get (a) an extra drive-mounting point for the OS drive, (b) a nice spot for the barrel jack for the PSU (a picoPSU-150-XT, which is hilariously overkill for this little 10W TDP processor, but it has an extra header for molex out), and (c) a physical power button.

#fan

A 120mm Crucial case fan I yoinked out of one of the previous incarnations of xalicas. So far it seems to be enough cooling for the whole rack: between everything being rather power-efficient and the rack being largely open (especially on the back), temps are very stable.

#UPS

CyberPower LX1500GU3. On the UPS side, powers my GFiber jack, an AC-DC adapter for the router, an AC-DC adapter for xalicas, an AC-DC adapter for proxmox, and the PoE injector for the access point.

Connects via USB to xalicas, which is running nut for everything else to talk to so we can gracefully shut down when the UPS is about to die.

#Access Point

A single Unifi UAP-AC-M-US. Powered with PoE; the plan is to get some ethernet in the wall and mount it high on the wall in the living room but right now it’s just sitting on a shelf in my office. So far it doesn’t seem like we need more but we have the option to expand network coverage with more units further upstairs or into the backyard if needed.


#Software

servicehosthosttypemanagerdescription
tailscale**systemdExcellent personal-access VPN
minecraft-servermaj01VM (on proxmox)NixOS flakepersonal minecraft server, dedicated VM
caddylab01VM (on proxmox)NixOS flakehomelab http ingress (router sends all :80 and :443 traffic here)
minifluxlab01VM (on proxmox)NixOS flakerss feed reader
forgejolab01VM (on proxmox)NixOS flakeself-hosted git forge
unifi-controllerunifiLXC (on proxmox)manual executionunifi controller for AP management/config
immichxalicasbare metaldocker-composeself-hosted google photos alternative
discord botxalicasbare metalmanual executionpersonal discord bot
barkeepxalicasbare metalsystemd(link) handmade cocktail menu
grafanaxalicasbare metalsystemdmetrics dashboard
prometheusxalicasbare metalsystemdmetrics collector for grafana
jellyfinxalicasbare metalsystemdself-hosted media server
wsdd2xalicasbare metalsystemdadvertise nas storage as samba share for windows machines
nutxalicasbare metalsystemdnetworked ups tools

Immich and Jellyfin will remain on xalicas, as “needs fast access to the NAS contents” services. I plan to move metrics to their own VM (or maybe even a raspi or something, just for fun? But a vm or lxc to start). Barkeep will move once I eventually get it wrapped up in a nice reproducible nix execution environment, one day. It’s not a high priority.

#Planned changes

Besides anything above where I talk about plans, there’s some bigger hardware changes coming: