Proxmox VE
Primary hypervisor hosting all LXC containers and virtual machines. Proxmox gives me bare-metal performance for containers alongside full VM isolation for services that need it, all managed from a single web interface.
🏠 Home Network · Charlotte, NC
Self-hosted infrastructure — media, gaming, automation, and custom tooling running 24/7.
Built on Proxmox with LXC containers and Docker VMs, backed by a TrueNAS Scale NAS. Everything is intentional, most of it is overkill, and I wouldn’t have it any other way.
Primary hypervisor hosting all LXC containers and virtual machines. Proxmox gives me bare-metal performance for containers alongside full VM isolation for services that need it, all managed from a single web interface.
Centralised storage for all video files, VM disk images, and media. Acts as the backend for Plex and Jellyfin libraries and receives ripped content automatically from the ARM docker container.
Deployed on multiple containers to create a private mesh network across all my devices and shared with friends for secure access to self-hosted game servers — no port forwarding required.
Ubuntu VM running Docker for services that ship as containers, currently hosting the Automatic Ripping Machine. Keeps containerised workloads isolated from LXC services.
Securely exposes self-hosted services running in the lab to the internet without opening any inbound firewall ports — the tunnel terminates TLS at Cloudflare’s edge and proxies traffic to the appropriate LXC container. (The public portfolio site itself now runs on Cloudflare Workers instead, for uptime independent of anything in this rack.)
All lab hardware runs on a UPS for power protection. A Network UPS Tools (NUT) server on the Raspberry Pi monitors the UPS over the network and triggers safe shutdown of connected machines during a sustained outage — no data loss, no forced power cuts.
Tunnels game server traffic for the Crafty-managed Minecraft servers to a public endpoint, allowing friends to connect without Tailscale and without exposing my home IP.
Primary media server for local network streaming. Library backed by the TrueNAS NAS. Used for in-home viewing across devices.
Open-source media server for remote viewing outside the home network. Runs alongside Plex so remote access doesn’t require a Plex Pass subscription.
ARM from GitHub — detects inserted discs, automatically rips the content, and saves the output to the TrueNAS NAS with no manual steps required. Runs in Docker on the Ubuntu VM.
Dedicated server for Satisfactory, shared with friends via Tailscale. A Discord bot to manage server start/stop and status is currently in development.
Crafty manages multiple Minecraft server instances from a single web panel — currently running an All The Mods 10 (ATM10) modpack server and a Paper vanilla server. Public access via playit.gg.
Dedicated host for the Warframe Market bot. Runs the Python script 24/7, scanning the Warframe Market API and firing notifications when target item conditions are met.
Not everything in the lab is off-the-shelf. These are tools I designed and built myself to fill gaps that existing software didn’t cover.
A Python bot running continuously on a Raspberry Pi that polls the Warframe Market API and scans listings for specific items meeting user-defined price and quantity thresholds. When conditions are met, it fires an alert so I can act before the listing disappears. The kind of tedious manual checking that should be automated.
A Discord bot that will allow friends to start, stop, and check the status of the Satisfactory dedicated server directly from Discord — no need to ask me to manually manage the server or give anyone SSH access. Integrates with the Satisfactory server API.
Moving from a consumer router to OPNsense for proper firewall rules, VLANs, traffic monitoring, and more control over the home network edge.
Upgrading the NAS and main workstation to higher-speed networking to reduce transfer bottlenecks, particularly for large video files and VM disk images.
The Discord bot for Satisfactory server management (see above) — finish and deploy so friends can manage the server themselves without needing my involvement.
The lab is always growing. More services, more automation, more things that probably don’t need to exist but are fun to build anyway.