Blog
Post · 2026-06-12

Disaster Recovery

On June 11, 2026, I lost the entire homelab in a single command. The intent was narrow — clear some stale CANONIC images off the NAS — but the sweep I ran did not read the room: it took down the whole rack. Plex, the media stack, the photo libraries, the cloud, the mail server, the Cloudflare tunnels, Portainer itself — twenty-seven containers, a decade of self-hosting, gone between one keystroke and the next. For a few seconds the only sound was the fans spinning down on services that were no longer there. And then the part that matters: nothing was lost. Not one file. Every service on that box bind-mounts its data to the host, and the sweep removed containers without the flag that would have taken their volumes with them — so the maildir, the photos, the media, all of it sat exactly where it had always been, waiting for a container to be re-attached. Within the hour all twenty-nine service definitions had been recovered from the one volume that survived, and the scare had already turned into a build: a one-click, governed, distributed installer that rebuilds the homelab on any node in the federation, so that the worst command I can type is now a no-op against a registry that remembers. This is how it always goes here. A disaster arrives, the data is fine because something was built to keep it fine, and the disaster leaves behind an invariant that makes its whole class impossible. It has gone exactly this way since the first canon. A lost homelab is not a catastrophe here. It is an invariant waiting to be written. So before we welcome the new era this disaster opens, let us do the thing CANONIC does best — walk the library back, and count.


The command that ate the homelab

The command was mine, and so was the lesson. I had asked to clear CANONIC's own images; what I ran was a broad teardown that did not stop at CANONIC's edge. By the time it was halted mid-removal, the running homelab was down to the two containers that happened to be my own access path. On most systems that is a catastrophe with a recovery measured in days and a permanent hole where the un-backed-up data used to be.

It was not a catastrophe, because of a decision made long before this session: containers are disposable, data lives on the host. Every service on the NAS writes its real state to a host path via a bind mount — the maildir, the libraries, the databases — and the container is just the disposable machine that reads it. docker rm without -v removes the machine and leaves the state. That one architectural habit is the entire difference between "I deleted my homelab" and "I deleted some containers." The data never moved.

What was genuinely at risk was subtler: the definitions. More than twenty services existed only as stacks inside an ungoverned database — not in any CANON, not in git, nowhere a build could see them. Lose that database and the data survives, but you no longer know how to bring the services back to read it. They were recovered, intact, from the one volume that outlived the sweep, and then the gap was closed where gaps get closed here: in governance. A service definition is now a governed, distributable thing — CONTAINER_IS_DISPOSABLE_DATA_IS_HOST makes the residency rule law, and SERVICE_IS_GOVERNED_AND_DISTRIBUTABLE says the recipe to rebuild any service lives in the canon, not in a database one command can erase. The disaster did not just get cleaned up. It got compiled.

The first canon

The reflex to turn a disaster into an invariant is not new. It is the founding reflex. On a Sunday in December 2025, in a home office in Orlando, a manuscript about the economics of precision medicine — Dividends and Deaths — was growing faster than it could be organized, and the response was to write its rules into a file called CANON.md. The discovery that followed was that governance is compilation: define the constraints, build the validators, and invalid states stop being possible. That was the first canon, committed at 1:42 PM Eastern, and everything since has been an elaboration of it.

There was a life before that file — Penn, Stanford, UC San Francisco, Central Florida; the degrees, the grants, the labs. That life is not a gap in this story, and it is not retold in it. It is governed, kept whole in the VITAE the way a cell keeps the sequence it inherited. We do not re-derive it; we stand on it. The walk that matters here starts at the first canon and runs forward through the library it generated — because that is where the pattern becomes visible, disaster by disaster, each one leaving a tome behind.

Walking the library

A MAGIC walk is an old discipline here: examine every commit, map each one to a disclosure, leave no orphan. Run the same walk over the blog corpus and a single shape repeats at every stop.

January. We handed the agent a twenty-minute task and it failed six times in one session — redundant reads, scope violations, work done in the wrong order. In any other shop that is a bug report. Here it was four patent filings, because the failures were the invention: each one exposed a validator that existed as a specification with no enforcement behind it, and the gap between knowing a rule and enforcing it is the thing worth owning. The same month, the commit rate jumped thirty-fold, and the honest question was whether that was a phase change or the prelude to a collapse. It held — and the exponential turned out to be governance compounding, provable commit by commit on the ledger.

February. A MammoChat demo at Howard University died mid-question when the API credits ran out in front of the chair of surgery. The silence in that room asked the only question that mattered — if you cannot keep credits loaded for a meeting, can you govern a hospital's AI? — and the answer reorganized the company: governance is the deliverable; the chat was only ever the proof. The same lesson was playing out at scale in the law, where 729 fabricated citations had reached real judges. The fix was never going to be a sterner policy; it was an architecture in which an unverified citation cannot be expressed at all.

April. A worker claimed a domain — singu.ar — that had never existed in DNS, and the compiler cheerfully emitted routes and smoke tests for a ghost for ten days, until ownership became a thing you prove at write-time instead of discover at read-time. A browser security rule we could not argue with broke cross-brand login, and we stopped fighting the spec and built the proxy that honors it. A build came up red with five failing gates and two dozen hardcoded strings, and closing the books made the close itself a refusal to ship below a perfect score. And when mutation outran human review, testing did not get better — it got replaced by the compiler as the safety story.

May. A hosting model we had outgrown produced phantom builds and a crash on deploy, and the migration to Workers turned that ceiling into a discipline. Three closures shipped to production with every gate green — and were never committed to git, the audit trail evaporating behind a successful deploy, until a sixth move made the commit itself part of the closure. Forty-six hundred transcripts had no path back into the tree, and backprop closed the loop from conversation to learning. And the quiet root cause under several of these — that a prompt is rule-by-whim, ephemeral and unauditable — got its own name: govern through durable canon, not disappearing instructions.

Not every scare has its tome yet. The day a sibling session's git reset --hard silently orphaned fourteen unpushed commits is still mostly a memory and a guard; so is the morning the disk hit zero with twenty-two gigabytes hiding outside the scan, and the afternoon a submodule pointer broke CI across the fleet. Some of those are about to be written down — one of them today. But every one of them already ends the same way the rest do.

The walk has no orphans

Lay the beats end to end and the cohesion is not luck; it is a metabolism. Each disaster is an input — a destructive command, a credit outage, a ghost domain, a silent reset — and each is digested into the same kind of output: an invariant that makes its whole class impossible to repeat. The enzyme is always the same. A governed primitive walks six moves — the closure the governance doctrine sets down: declare it in the canon, let the compiler read it, have every consumer reference it, gate it so the build fails closed, propagate it so adding one row teaches every consumer at once, and commit it so it is durable. The repair machinery is the verify-* gates, refusing to ship a mutated genome. The scoring is MAGIC 255, which measures completeness and will not call a thing closed until it is. None of this prevents disasters. It guarantees that a disaster is only ever paid for once. That is what a MAGIC walk proves when you run it over a year of the library: no orphans. Every failure maps to the invariant it bought.

The house that Leffall built

It is worth standing for a moment in the room where one of these disasters happened, because the real story is not the credit outage but the room: it has a lineage. The Howard demo died in the surgery department of a college of medicine that LaSalle D. Leffall Jr. spent a career building — the first Black president of the American College of Surgeons, a surgeon who taught generations that the work is judged by whether it holds up for the patient in front of you, not by how it sounds in the room. The credits ran out in his house. And the lesson that walked out of it — that a system is only as good as its ability to prove itself under load — is the lesson he taught his whole life. The disaster was at home.

Welcome to the distributed era

Which brings the walk back to the present, and to the new era this homelab disaster opens. For most of its life CANONIC has been one cell — a single tree, growing the canon, the gates, the compiler, the ledger, until it was competent enough to divide without killing what divides off. The teardown is the moment that question stopped being abstract: a single command could erase the body, so the body had to become reproducible. It now is. The services are a governed catalog; the federation is the installer; any node can be brought up from the registry with its data re-attached and nothing re-downloaded. Losing the homelab is no longer a loss — it is disaster recovery the federation performs on itself.

This is the substrate the newest disclosure claims as foundational: the distributed layer beneath the governance language, the part that turns "CANONIC running in more places" into CANONIC reproducing — each node carrying the whole sequence and governing its own division. The same federation already runs the build across two machines that attest their own work. The homelab is simply the next organ to come up. The disaster that nearly erased it is the reason it can never be erased again.

Sources

Claim Source Link
A NAS hosts the homelab's containerized services on a single rack Wikipedia: Network-attached storage en.wikipedia.org/wiki/Network-attached_storage
A Docker bind mount writes a container's real state to a host path so the data outlives the container Docker docs: bind mounts docs.docker.com/storage/bind-mounts
docker rm without -v removes the container and leaves the volume's state intact Docker docs: docker container rm docs.docker.com/reference/cli/docker/container/rm
Plex, the media stack, was among the twenty-seven containers torn down Wikipedia: Plex (software) en.wikipedia.org/wiki/Plex (software)
Cloudflare tunnels expose the homelab services and were torn down with the rack Wikipedia: Cloudflare en.wikipedia.org/wiki/Cloudflare
Portainer is the container-management UI that itself went down in the sweep Portainer portainer.io
LaSalle D. Leffall Jr. was the first Black president of the American College of Surgeons and a chair of surgery at Howard Wikipedia: LaSalle D. Leffall Jr. en.wikipedia.org/wiki/LaSalle_D._Leffall_Jr.
The American College of Surgeons is the professional body Leffall led Wikipedia: American College of Surgeons en.wikipedia.org/wiki/American_College_of_Surgeons
Disaster recovery is the practice of restoring systems and data after a destructive event Wikipedia: Disaster recovery en.wikipedia.org/wiki/Disaster_recovery
Containers are disposable and data lives on the host; service definitions are governed and distributable CANONIC, CONTAINER/CANON canonic.org
Governance is compilation — discovered Dec 29, 2025 while writing Dividends and Deaths The Compiler Insight, HadleyLab hadleylab.org/blogs/the-compiler-insight
A MAGIC walk examines every commit and leaves no orphan; the library walk is run over a year of beats Walking the MAGIC, HadleyLab hadleylab.org/blogs/walking-the-magic
Distributed CANONIC: each node carries the whole sequence and governs its own division Telophase, HadleyLab hadleylab.org/blogs/telophase
The governance doctrine — the six-move closure and the metagov pattern CANONIC-DOCTRINE canonic.org/books

A system that cannot survive its own worst day is not governed but only lucky — and since the first canon, every disaster has made CANONIC a little less lucky and a little more closed.

Disaster Recovery | THEORY | BLOGS