This repository documents the lab as a recoverable, boring, mixed-hardware system.
Current intended topology:
- Dell PowerEdge R900: infrastructure spine for backups, shared storage, monitoring, dashboards, Portainer server, docs mirror, known-good-state archive, and internal operational memory.
- Jetson-A: Jetson Orin Nano live assistant node for Open WebUI, local model serving, code-assistant workflows, local docs/RAG, and browser-first educator access.
- Jetson Nano B/C: edge/support nodes for room status, service polling, local dashboards, and machine-adjacent helper roles.
- Raspberry Pis: disposable edge appliances for kiosks, displays, USB/machine bridges, signage, and sensors/cameras when useful.
- Ethernet switch: the wiring and containment layer for the whole room.
- Headscale: private control plane for remote access, not the public app surface.
- Digital Factory: source of truth for 3D printer fleet management.
- Cubiko/CNC: optional, physically attached integration only.
Design constraints:
- Do not treat this as a Kubernetes cluster.
- Do not distribute one model across all machines.
- Keep public/browser traffic separate from private control/model traffic.
- Keep the architecture boring, durable, and recoverable.
- Prefer browser-first operations over remote desktop.
- Prefer editable placeholders over invented final values.
Start with:
docs/index.mddocs/CURRENT_STATE.mddocs/TESTED_VALUES.mddocs/KNOWN_GOOD_STATE.mddocs/EXPERIMENTAL_SURFACES.mddocs/00_ORIENTATION.mddocs/01_NETWORK_REALITY.mddocs/07_SERVICE_PLACEMENT_MATRIX.mddocs/17_DEPLOYMENT_PHASES.mddocs/06_MODEL_STRATEGY_CODE_ASSISTANT.mddocs/25_JETSON_A_MODEL_BUILD_PIECES.mddocs/27_COOPERATIVE_CODE_MODE.mddocs/BOARD_CASE_FOR_INFRASTRUCTURE.mddocs/handoff/INTERN_ONE_PAGER.mddocs/handoff/OPERATOR_TOGGLE_CHECKLIST.mddocs/handoff/MODEL_SWITCH_CARD.mddocs/handoff/MODEL_CHOICE_LADDER.md
ops/lab/contains hostnames, URLs, Headscale values, and workspace placeholders.ops/lab/private-names.exampleandops/lab/image-values.examplehold the canonical private naming and image pin examples.compose/jetson-a-llamacpp.compose.ymlis the local-model stack template for Jetson-A.compose/jetson-a-base.compose.yml,compose/jetson-a-fast.compose.yml,compose/jetson-a-code.compose.yml, andcompose/jetson-a-heavy.compose.ymlare the staged build pieces.compose/r900-code.compose.ymlandcompose/jetson-a-remote-code.compose.ymlare the optional remote code backend pieces.templates/MODEL_SHORTLIST.example.mdis the candidate model shortlist.templates/contains inventory and recovery templates.dashboard/contains a simple browser cockpit starter.scripts/check_docs_integrity.shandscripts/check_image_pins.share guardrails for the docs and compose layer.
Use the wiki build helper when you want a static site:
./scripts/build_wiki.shInstall the docs dependencies first if needed:
python3 -m pip install -r requirements-wiki.txtUse mkdocs serve if you want a live preview while editing.
The wiki is set up to publish from GitHub Actions on pushes to main.
Before the first publish, set the repository Pages source to GitHub Actions in GitHub settings.
Then push to main and let the workflow build and deploy the site.
The workflow lives at:
The R900 stores and restores the room. Jetson-A talks to people. The Nanos and Pis do edge work. Nothing should depend on magic that cannot be rebuilt from the docs.