<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Node0, as it stands on Oznog</title><link>https://oznog.com/node0/as-it-stands/</link><description>Recent content in Node0, as it stands on Oznog</description><generator>Hugo</generator><language>en-us</language><copyright>© 2011-2026 &lt;a href="https://oznog.com"&gt;Oznog Holdings LLC&lt;/a&gt; · Founded by &lt;a href="https://chrisplough.com" target="_blank" rel="noopener"&gt;Christoph Plough&lt;/a&gt; · &lt;a href="https://oznog.com/index.xml"&gt;RSS&lt;/a&gt; · &lt;a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noopener"&gt;CC BY 4.0&lt;/a&gt;</copyright><lastBuildDate>Mon, 21 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://oznog.com/node0/as-it-stands/index.xml" rel="self" type="application/rss+xml"/><item><title>Site</title><link>https://oznog.com/node0/as-it-stands/site/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/site/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Every other layer in this capture describes something that runs. This one
describes the container they run inside. Two rooms of a home hold four racks, the cable
plant, and the naming and labelling conventions that let a person or an agent
find one thing among 185 active devices without walking the room twice. The
layer has no hosts of its own. It is where the hosts are.&lt;/p&gt;</description></item><item><title>Edge</title><link>https://oznog.com/node0/as-it-stands/edge/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/edge/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The edge is the boundary between Node0 and the internet. It has five jobs. It
carries the single fibre connection in and out. It decides what may pass in
either direction. It presents Node0&amp;rsquo;s public identity in a form that survives
one firewall dying. It gives Christoph a way to reach the site from anywhere
without opening a general hole in the perimeter. And it watches, from a
vantage point Node0 does not control, whether any of that has failed without
announcing it.&lt;/p&gt;</description></item><item><title>Fabric</title><link>https://oznog.com/node0/as-it-stands/fabric/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/fabric/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The fabric is Node0&amp;rsquo;s data plane: the switches that move packets between
racks, the VLANs (virtual LANs, separate broadcast domains carried over the
same wires) that keep one purpose&amp;rsquo;s traffic away from another&amp;rsquo;s, and the
bonding conventions that let a host survive losing a switch. It sits between
the edge, the boundary to the internet, and every host that plugs into a rack.
Storage, compute, services and the agents all sit on top of whatever the
fabric decides is reachable.&lt;/p&gt;</description></item><item><title>Bootstrap</title><link>https://oznog.com/node0/as-it-stands/bootstrap/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/bootstrap/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Bootstrap is what has to work before any other part of Node0 can come up on its
own. A name resolves, a clock agrees with every other clock, a host learns its
power has gone away, a machine fetches a secret nobody typed in for it, and a
machine that lost its disk gets rebuilt without anyone remembering how.&lt;/p&gt;</description></item><item><title>Storage</title><link>https://oznog.com/node0/as-it-stands/storage/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/storage/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Storage is where Node0 keeps everything that must survive a reboot, a drive
failure, a whole-home event, or Christoph&amp;rsquo;s own mistakes. Those are four ways
to lose data, and no one box covers all four. So the layer has four tiers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A hub.&lt;/strong&gt; unraid1 is the local disk shelf: five ZFS pools, 493 TiB (542 TB)
raw on the bulk pool, and the place the fleet&amp;rsquo;s own backups land.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A replica.&lt;/strong&gt; nexus holds a second on-site copy of 58.2 TiB (64 TB), and
will eventually leave the property.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A cluster.&lt;/strong&gt; ceph1 to ceph9 hold 916 TiB (1,007 TB) raw across 171 OSDs,
and serve block, object and file storage to the rest of the site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Two escape hatches.&lt;/strong&gt; An offsite bucket on Backblaze B2, and two rotating offsite USB
drives of about 23.5 TB each.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A fifth part of the layer is a habit rather than a place. Every night the site
takes snapshot-consistent backups and checks that every restic repository is
still receiving them, and every week it rehearses a restore, because a backup
nobody has restored is a belief.&lt;/p&gt;</description></item><item><title>Compute</title><link>https://oznog.com/node0/as-it-stands/compute/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/compute/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Compute is four things a site of this size needs, and one it does not.&lt;/p&gt;
&lt;p&gt;A hypervisor cluster holds the utility guests, so a service is a virtual machine that can move between nodes, not a box. GPU hosts run inference and training, each with a different card and therefore a different job. One gateway gives every process on the site a single address to ask a model a question, and decides which model answers. Two laptops serve models as their full-time job.&lt;/p&gt;</description></item><item><title>Services</title><link>https://oznog.com/node0/as-it-stands/services/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/services/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Every layer below this one exists so somebody can type a name into a browser
and get their paperwork back. Services is the set of those names. Two
reverse-proxy instances turn a container&amp;rsquo;s private port into a stable,
TLS-protected hostname, and the applications sit behind those names. If a
part of Node0 has a name a family member could say out loud, it lives here.&lt;/p&gt;</description></item><item><title>Agents and dev</title><link>https://oznog.com/node0/as-it-stands/agents/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/agents/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Node0 is operated by agents, not only for them. Its founding principle is
agent-forward, human-sovereign operation. Digital intelligences (DIs, this
site&amp;rsquo;s term for its AI agents) do the deployment, monitoring, diagnosis,
repair and documentation. Christoph keeps sovereignty through readable
interfaces, exact approval of the operations that matter, and the ability to
run the foundation himself if the agents go away. This layer is the machines
the sessions run on, and the rules that keep one shared, root-equivalent
credential from being a single point of failure.&lt;/p&gt;</description></item><item><title>Observability</title><link>https://oznog.com/node0/as-it-stands/observability/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/observability/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Ceph&amp;rsquo;s replication and a firewall&amp;rsquo;s failover state can both behave correctly for months while nobody watches. This layer exists because the opposite happened four times inside the same 24 hours, and somebody looking for something else found each one.&lt;/p&gt;
&lt;p&gt;On 20260906 a backups thread wrote up a single day. Two Ceph hosts, ceph1 and ceph8, had hung for ten hours with chassis power on, network links up and their system journals empty. Four Arista switches sat at their overheat shutdown threshold. A fixed fan-speed override, set a few days earlier for noise, had disabled the fan algorithm. A 12 TB Ceph disk had been dead for 38 hours, with only the drive&amp;rsquo;s own SMART banner, reading PASSED, available to ask. A UPS service event at 17:53 dropped rack 3 and rebooted eight hosts. Two of those hosts had no management controller and did not come back. None of it paged anyone.&lt;/p&gt;</description></item><item><title>Power and environment</title><link>https://oznog.com/node0/as-it-stands/power/</link><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/power/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Every other layer assumes it has power and a room cool enough to run in.
This layer makes that assumption safe. It feeds every host through a blip,
it lands the fleet in an ordered way if an outage outlasts the batteries,
and it watches the two rooms the site lives in.&lt;/p&gt;
&lt;p&gt;Power and cooling are one system, sized off one set of numbers. The
hardware&amp;rsquo;s own features come first, a UPS return delay or outlet sequencing
in preference to logic written on the hosts, because a setting held on the
UPS card still applies to a host that will not boot. On Node0 cooling is
judged off the same output-watt figures this layer already polls.&lt;/p&gt;</description></item><item><title>Operations</title><link>https://oznog.com/node0/as-it-stands/operations/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/node0/as-it-stands/operations/</guid><description>&lt;h2 id="what-this-layer-is-for" class="relative group"&gt;What this layer is for &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-this-layer-is-for" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Operations owns no rack position and runs no service of its own. It is the set
of habits and mechanisms that let Node0 be changed safely by more than one
actor, mostly agents, over weeks. The test it has to pass is that the change
history, the credentials and the inventory never drift from what is actually
running. It answers three questions: how a change reaches a machine, how it is
undone when it is wrong, and how anyone finds out afterwards what happened.&lt;/p&gt;</description></item></channel></rss>