Current Lab

A September 2026 snapshot: what I run, how it is wired, and what it does.

The short version

Five x86 hosts, an eleven-node ARM device cluster I call the Fellowship, and three GPUs doing AI work in parallel. Home AI, the orchestrator I designed and run, schedules everything, routes each request to the right model, and keeps the lights on.

Alongside the AI stack: a self-hosted media library for friends, Home Assistant with real-time energy monitoring from three UPS units, and a nightly stack-health report to Discord. Everything is version-controlled in local git mirrors first, and github.com/drhawktopus gets the polished pieces once they are ready to be seen.

About a year of applied-AI work on this setup, with the intensive engineering arc in the most recent several months. It is a lab, not an employer's production, and it runs real workloads: training runs, captioning sweeps, adversarial self-review, distributed evaluation. The broader substrate goes back further: system administration, automation, networking, Docker, Home Assistant. The AI half is newer and moves fast.

Compute

Mothership primary GPU

Ryzen 7 5800X · Radeon RX 7900 XTX 24 GB · 32 GB DDR4, all-SSD. This is where the heavy work lives: the 32B QLoRA fine-tuning, Flux rendering, and heavyweight reasoning through the 27B tier on wake-on-demand, on a card whose driver-level stall I root-caused. Fast working storage for training runs.

BigHonker GPU · quick-chat host

RTX 3070 8 GB, clock-locked at 1500 MHz because its factory boost profile is unstable under sustained compute. Quick-chat host: the 8-9B model for routine questions and tool orchestration, plus the captioning tier. Models unload when idle.

Softserve GPU + Plex + Hyper-V host

RTX 3070 Ti 8 GB, also clock-locked at 1500 MHz for the same reason. Runs Plex directly and hosts the Hyper-V layer that carries the media-stack VM and the Home Assistant VM as separate guests. Rebuilt from scratch in summer 2025 after I pulled it back from an off-site location.

Mordecai general compute · earmarked

Small x86 host. Earmarked as a general-compute node; not yet tasked.

Rigby device-foundry head

x86 desktop running Tolkien, the container that coordinates the Fellowship. It is not limited to that role and takes other work when tasked.

The Fellowship 11 nodes · 76 cores

Eleven ARM devices with seventy-six CPU cores between them: seventy-two arm64, plus four armv7 from a legacy device named Sméagol that I brought back to life with a custom armv7 build of llama.cpp. Distributed CPU workloads: OCR, captioning, evaluation sweeps.

The hardware rationale: why three GPUs instead of one big card

Budget and thermodynamics. One 7900 XTX does the heavy lifting but costs more than two 3070s combined. Splitting work across three cards buys parallelism: captioning runs on a secondary GPU while training occupies Mothership, and the third card covers failover. Every GPU host runs the same order-taking runner, so each host is a factory in the lab's multi-factory model: orders serialize per card and parallelize across hosts. A single scheduler places orders, and each factory reports card state, current workload, and health-daemon verdicts.

Both 3070-class cards needed a clock lock. Their factory boost profiles are unstable under sustained compute; I root-caused it, locked both at 1500 MHz, and they pass hour-long soaks cleanly. That trades some throughput for uptime.

Storage

Forty-six terabytes spinning for the main media library and data. All-SSD on Mothership for fast working storage during training and rendering. A twelve-terabyte drive docked at my desk holds second copies of whatever I decide deserves one, plus overflow from Mothership's SSDs, and it is on hand for anything that needs bulk space.

The AI stack

A three-GPU local LLM cluster with tiered routing across a real model roster:

The orchestrator, Home AI, is a FastAPI service with per-user grounding through RAG over my own maintained knowledge library. Citations are enforced through tool calling. Scheduling across the fleet is deterministic, and a forward-auth gate sits at the edge.

Distributed CPU workloads are placed onto the Fellowship by a capability-aware scheduler. The cluster handles embarrassingly parallel tasks: captioning sweeps, OCR passes, evaluation matrices.

How routing actually works

BigHonker comes first for routine chat and tool orchestration. Mothership is the failover: I wake it for a 14B mid-tier task if BigHonker is busy, or for the 27B heavyweight tier on think-hard work. Softserve is the absolute last resort, because it is the Plex host and stays unburdened unless nothing else is available. The external API is used only when I explicitly ask. Same pattern as the smart-home voice layer: try local before going out.

RAG grounding pulls from the curated knowledge library, and the citation gate means an ungrounded claim is dropped, not invented.

Services and infrastructure

Recent and current work

The self-engineering pipeline in brief

Project 12 proved an end-to-end loop: Home AI plans a change to its own code, edits the file, runs unit tests and a compile check, creates a checkpoint, deploys through a canary that runs the full orchestrator test gate, waits for my approval, promotes to live, then verifies health endpoints after cutover. The canary either reaches the live stack or rolls back; it is never left half-deployed. I approve each promotion. It is slow by design.

Contact

nickcrowley97@gmail.com, or github.com/drhawktopus for the code.