Meklab Home Cluster
Live · since 2025
A Kubernetes cluster in my house, run like production so I can learn how production fails. A highly available k3s cluster on six Proxmox hosts, reconciled from Git by Flux. Monitoring went in before any app did, and every service sits behind single sign-on. I've restored it from backup for real once, after Vault's storage came back empty. I don't recommend it as a testing strategy.
k3s · Flux · Vault · Longhorn · Traefik · Prometheus · Loki · Authentik · Proxmox · Tailscale
OpenClef Sheet Music Library
In progress · since 2026
An open-source, self-hosted sheet music library for performers. It started when my sister and I were getting ready to play a piece together for the millionth time. We were sending music back and forth and hunting for a copy of something we'd played years ago, and I thought it would be nice to self-host something like Mealie, but for sheet music. Existing tools are locked to one tablet and one user, or treat scores as plain files. OpenClef organizes music the way musicians look for it: by work, arrangement, part, instrument, and composer. I checked the design with other musicians before writing code, and full export to forScore keeps it compatible with how performers already work.
Python · FastAPI · PostgreSQL · SQLAlchemy
One-Button DVD Archiver
Live · since 2026
A 2009 MacBook Pro, rebuilt so a grandfather can archive his own DVD shelf. Insert a disc, get a lossless rip, transferred to network staging, auto-ejected, with a chime. No terminal, no login, no decisions. A FastAPI and htmx interface with server-sent events shows progress in plain language. The ripper is an explicit SQLite-backed state machine, so a bad disc, a dropped network, or a power cut picks up where it left off. The only decision left is which disc goes in next.
Python · FastAPI · htmx · SQLite · ffmpeg · mkvmerge
Vinyl Record Digitizer
In progress · since 2026
An inherited record collection, digitized one side at a time. A capture station with a kiosk interface, an inventory server with barcode accession cards, and a pipeline from raw capture through track splitting and quality checks into the media library. Built so a non-technical operator can run a whole session alone.
Python · FastAPI · ffmpeg · Chromaprint · MusicBrainz · ReportLab
Recipe Card Digitizer
Live · since 2026
A grandmother's handwritten recipe cards, read by OCR and served from a family recipe app. Scans go through a handwriting OCR model, then a text model turns noisy output into well-formed recipe records with title, ingredients, steps, and provenance. Hard cases escalate to a stronger cloud vision model, and only the failed tail ever leaves the machine. Results land in a self-hosted Mealie instance in the cluster.
Python · FastAPI · Ollama · Mealie · S3
Scribe Summary Bot
Live · since 2026
Send a link, PDF, or image to Slack; get a summary, the full note, and a narrated version back in thread. A Slack bot running in the cluster. It reads a document's embedded text first and falls back to OCR only for pages with none, so a 39-page PDF finishes in about half a second instead of an estimated 15 to 25 minutes. Everything runs on local, CPU-only models, so documents never leave my own hardware.
Python · Slack API · Ollama · Kokoro TTS