Homelab
The homelab itself: a version-controlled source of truth for the network, hosts, and services - model, diagrams, tests, and records. Held in the 00-homelab repository; the network, the labs site, and the Pi cluster are subprojects of this project.Repository: https://github.com/pbannister/00-homelab
README
Homelab
The lair. A homelab of which the Pi cluster is one part (the cluster repo,
~/cluster-setup, stays separate for now and may be imported later).
This repository is structured for collaborative development with an LLM, following the
00-project-skeleton pattern. The LLM should begin by reading these files in order
(the numeric prefix marks load order):
prompts/01-contract.mdprompts/02-workflow.mdprompts/03-conventions.md
These define the interaction rules, workflow, and formatting conventions. Human
contributors should begin with prompts/README.md and documents/README.md.
What the homelab is
A mad-scientist's lair in progress (owner background: physics education, software career; pattern: starts many projects, finishes quite a few). Components:
- Pi cluster (8 nodes in a rack with a 1 GbE PoE switch) — robots + clustering
experiments; Adafruit HAT add-ons (sensors, clocks, battery/RTC, motor controllers)
in custom 3D-printed cases and rack. See
~/cluster-setup/README.md. beast.lan— LLM "big brain" (AMD MI25, Vega 10 16 GB), offload target for the Pis; large spinning storage.athena.lan— desktop / control host; large spinning storage.minerva.lan— laptop.mercury— role unclear.- Turing Pi 2 — owned, not yet set up.
- 2× passively-cooled SFF boxes — intended homelab infrastructure, not set up.
- 3D printers (network-connected, growing collection; smart power switch).
- LG TVs — media playback; transcode/store video from beast/athena spinning storage.
- Router: GL.iNet GL-MT6000 "Flint 2" (OpenWrt-based).
- Lair projects: Van de Graaff generator (small owned; larger under construction), planned small fusion-reactor experiment, physical bin-inventory with AI item recognition ("where is item X?").
The full brain-dump is the canonical overview document:
documents/04-homelab-overview.md (source note: ~/cluster-setup/HOMELAB.md, which
this project supersedes).
Privacy boundary (owner directive)
- Old work-related files (e.g.
athena: vg2-recorder, prior-job files) are OFF-LIMITS: the owner will inspect and likely discard them. Do not introspect, index, back up, or summarize these. - The two 1 TB SATA SSDs in athena are earmarked to be pulled for use elsewhere.
Top-Level Map
README.md— this overview.TODO.md— pending and completed project tasks.prompts/— LLM interaction rules, common requirements, feature requirements, task definitions, and episode work orders.documents/— human-consumption documents (incl.04-homelab-overview.md).records/— version-controlled outcome, incident, and handoff records.tools/— tool-specific rules (aider-rules.mdfor Aider only).sources/— implementations (empty for now; future: homelab infra code — Ansible plays, router automation, media stack, etc.).scripts/— project scripts.tests/— tests and validation.dataflow.in//dataflow.out/— input data / generated output (out not version-controlled).logs/— generated logs (not version-controlled).site.in//site.out/— static-site input / generated output (out not version-controlled).Makefile— build/test/clean driver.
Labs site (labs.bannister.us)
- Built with Eleventy from
sources/labs-site/(make site), deployed withscripts/labs-deploy.sh(make deploy) to the Dreamhost docroot. /projects/lists the public projects fromsources/projects.yaml(the canonical map), with one page per project at/projects/<id>/.- A project marked
self_published: truepublishes its own pages under/projects/<id>/— but all publishing to labs.bannister.us goes through this project (seedocuments/09-project-pages-conventions.md): the project setspages_sourceinsources/projects.yaml(path or ssh command);scripts/project-pages-fetch.shreads it, leak-gates it, andscripts/labs-deploy.shstages + publishes it with the site. Projects do not push to the web server themselves (an rsync--deleteexclusion remains only as a safety net against accidental pushes).
Status
- Started 2026-08-21 from
00-project-skeleton; working noteHOMELAB.mdrelocated from~/cluster-setupasdocuments/04-homelab-overview.md. ~/cluster-setupintentionally left as-is (may be imported here later; it is the potential public example, so it should stay free of personal-infra details).