Make boot media repeatable and reviewable.
Harvest Boot connects an existing image library to release downloads, Ventoy profiles, and QEMU boot tests. I built it to keep the image, its metadata, and the intended USB contents in one workflow.

The problem
A folder of images does not explain which versions are current, whether a checksum was verified, or what belongs on a rescue USB. Preparing the drive and testing it are separate steps that benefit from a shared record.
My responsibility
I built the library workflow, download integration, Ventoy profile and sync tooling, and browser-facing VM features for use on my own infrastructure.
Architecture
- LibraryFlask presents image metadata stored in SQLite.
- SourcesScheduled release checks feed a download queue.
- ProfilesVentoy selections produce a preview and tracked sync.
- TestingQEMU launches images; noVNC exposes the console.
Decisions and tradeoffs
| Decision | Reason and tradeoff |
|---|---|
| Keep image files separate from application state | Scanning an existing library need not rename or move it. Metadata must account for files that disappear from disk. |
| Separate computed and expected checksums | A computed digest alone cannot establish a match to an upstream digest. Missing expected values and mismatches remain visible. |
| Preview sync and track a manifest | Named profiles make selections repeatable, while previews make additions and removals reviewable before changing a USB. |
| Use QEMU and a browser console | Boot testing fits the same workspace. A VM test still does not guarantee identical behavior on physical hardware. |
| Target a single-user home server | The project can integrate closely with local storage and devices. It is not presented as a multi-tenant provisioning service. |
Validation and current outcome
The public tour is checked for filtering, sorting, expansion, density switching, and small-screen behavior. Its screenshot is produced by the actual application renderer with sample records. Those checks verify presentation; they do not exercise USB writes or VM boot operations.
The working application provides library management, profile-based USB preparation, and boot testing in one browser workspace. It is an active personal project with an evolving API.
What this demonstrates
Connecting filesystem state to a database and UI, making destructive changes reviewable, and keeping a clear boundary between a browser demonstration and device operations.