#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.- OS: proxmox
- Storage: 1TB WD Black NVME m.2 SSD
- CPU: Intel® Core™ i5-1135G7 (4.2 GHz)
- RAM: 16GB DDR4-3200
#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 forproxmox
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.- OS: OpenWRT
- Storage: 16MB flash. It’s a consumer router, what do you want.
- CPU: Qualcomm Atheros QCA9558 (720 MHz)
- RAM: 8GB of something
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.
- OS: Arch Linux
- Motherboard: ASRock J4105-ITX
- Storage: Crucial 120G SSD (OS drive)
- CPU: Intel® Celeron® J4105 (1.50GHz)
- RAM: 2x8GB DDR4-2400
#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
service | host | hosttype | manager | description |
---|---|---|---|---|
tailscale | * | * | systemd | Excellent personal-access VPN |
minecraft-server | maj01 | VM (on proxmox) | NixOS flake | personal minecraft server, dedicated VM |
caddy | lab01 | VM (on proxmox) | NixOS flake | homelab http ingress (router sends all :80 and :443 traffic here) |
miniflux | lab01 | VM (on proxmox) | NixOS flake | rss feed reader |
forgejo | lab01 | VM (on proxmox) | NixOS flake | self-hosted git forge |
unifi-controller | unifi | LXC (on proxmox) | manual execution | unifi controller for AP management/config |
immich | xalicas | bare metal | docker-compose | self-hosted google photos alternative |
discord bot | xalicas | bare metal | manual execution | personal discord bot |
barkeep | xalicas | bare metal | systemd | (link) handmade cocktail menu |
grafana | xalicas | bare metal | systemd | metrics dashboard |
prometheus | xalicas | bare metal | systemd | metrics collector for grafana |
jellyfin | xalicas | bare metal | systemd | self-hosted media server |
wsdd2 | xalicas | bare metal | systemd | advertise nas storage as samba share for windows machines |
nut | xalicas | bare metal | systemd | networked 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:
- I ordered some USB-C to (the correct) barrel plug cables that I’m hoping to be able to replace the bulk individual AC-DC adapters with for the router and for xalicas. Assuming that goes well, I’ll pick up a USB-C PD unit that can serve as my rack’s PDU. Total power draw when actively doing things is typically, like, 35W at most, so I shouldn’t run into any capacity issues.
- I ordered an ICY DOCK 4x2.5” enclosure for xalicas’ NAS disks, which is why I didn’t mention anything about drive mounting above: it’ll change soon.