Projects
The AI-enriched family photo archive is the project behind the writing series: a home-lab pipeline that ingests, OCRs, captions, and indexes a family photo collection so it becomes searchable. This page tracks the pipeline as it actually stands today.
Project: Homelab
Initially built out as a 6-node Proxmox cluster using repurposed hardware, its primary purpose is to run an AI-enriched family photo archive pipeline. (See Project: STRIPE below.) It was designed to be cost-effective, flexible, fault-tolerant micro-datacenter including sufficient resources capable of running AI models locally.
Architecture & Specs
- 7 physical nodes providing 22 cores (36 threads) and 128 GB RAM.
- ~36.5 TFLOPS of combined FP32 compute capacity (1.7 CPU + 34.8 GPU).
- Hardware acceleration via an Nvidia RTX 3060 12GB and an RTX 4060 Ti 16GB GPU (local LLM/VLM inference).
Tech Stack
- Proxmox Ecosystem (Virtual Environment Cluster, Backup Server, and Datacenter Manager)
- Docker & LXC Containers
- Ollama (local LLM inference)
Key Engineering Outcomes
- Implemented Thermal Design Power (TDP) based workload distribution to optimize total energy consumption across CPU-asymmetric nodes.
- Enabled cross-node container migration and automated backup strategies to eliminate single points of failure.
- Established centralized observability for cluster-wide management.
Read the full write-ups: Building Enterprise Virtualization from Retired Hardware and Another Piece Added to the Homelab.
This project will be an ever growing and changing collection of hardware and systems, evolving as my interests and needs change.
Project: STRIPE (Scan-Tag-Recall Image Pipeline Engine)
STRIPE takes the family photo archive from scanned image to searchable record: ingest, restore and caption, OCR, face-detect and cluster, embed, index, and serve natural-language search over the result. All inference runs locally on the homelab — nothing leaves the network for processing.
Pipeline stages
| Stage | Status | Notes |
|---|---|---|
| Scan & Ingest | In progress | Watcher on flex2 — architecture and metadata schema finalized, watcher logic still a stub |
| Metadata Queue | Live | archive-db-mcp (Postgres) on flex2 — deployed and verified |
| OCR | Planned | Tesseract on inspiron |
| Vision Captioning & Restoration | Planned | Ollama on g11cd (RTX 3060), orchestrated by Hermes Agent on inspiron |
| Face Detect & Cluster | Planned | Coral USB TPU on inspiron |
| Embed & Index | Planned | Qdrant/Chroma on allinone |
| RAG Search & Chat | Planned | Open WebUI on allinone |
Tech stack
- Proxmox
- Postgres
- Ollama
- Qdrant
- Chroma
- Coral TPU
- Tesseract
- Open WebUI
- Tailscale
- Hermes Agent
Read the full write-up: STRIPE: A Scan-Tag-Recall Image Pipeline for the Family Archive
Project: Neanderthal
Every other machine in the homelab earns its keep. This one doesn't. Neanderthal asks how much modern LLM inference can be dragged out of a 2004 HP Pavilion a450n — 32-bit, no vector instructions worth the name — and exactly where it falls over trying.
Hardware
- HP Pavilion a450n (2004) — Intel Pentium 4 "Prescott", 32-bit, 3.00 GHz, 1 core / 2 threads (Hyper-Threading)
- 2 GB PC3200 DDR SDRAM (maxed out from an original 512 MB)
- ~6 FP32 GFLOPS at an 84W TDP
- Integrated Intel Extreme Graphics 2 — no GPU compute, borrows 64 MB of system RAM
Software Stack
- antiX-26 Core Linux (Debian-based, 32-bit, glibc) on a persistent live USB
- llama.cpp cross-compiled for i686-linux-gnu, SSE3 only
- GCC 14.2.0 / CMake 3.31.6
Models Under Test
| Model | Params | Quant | Token Generation |
|---|---|---|---|
| Qwen2.5 | 0.5B | Q4_K_M | 0.9 t/s |
| TinyLlama | 1.1B | Q4_K_M | 0.5 t/s |
| SmolLM2 | 1.7B | Q4_K_M | 0.0 t/s — swap bound |
Read the full write-up: Neanderthal: Coaxing LLM Inference from a 2004 Pentium 4. Full build log and benchmark data: legacy-hardware-llm-benchmark on GitHub.
Links
Last updated: September 27, 2026