Skip to content

Release channels โ€‹

Nosferato ships NosferatOS the way Apple ships macOS โ€” same brand parent, distinct OS name. NosferatOS comes in three flavors:

ChannelCadenceSourceDebianUse case
dailynightly cronnosferato branch HEADtesting + sid backportsbleeding-edge features, latest nexmon, possibly broken
weeklySundays 00:00 UTCtagged weekly-YYYY-WW snapshottesting pinned that weekmostly-tested rolling, ~1 day soak
stablemilestone releasestagged vN.MBookworm stable onlyvetted, supported, the one you give to someone else

Artifact format โ€‹

nosferatos-daily-2026.05.11-b15e9e2.img.xz       # date + short-SHA
nosferatos-weekly-2026.19.img.xz                 # ISO week
nosferatos-1.0-phantom-blood.img.xz              # codenamed milestones

Stable codenames pull from JoJo / vampire lore. The first cut will be phantom-blood.

How to flash a channel โ€‹

Default is stable. Override with --channel:

sh
infra/nosferato/bootstrap/flash.sh                    # โ†’ stable
infra/nosferato/bootstrap/flash.sh --channel daily    # โ†’ today's bleeding edge
infra/nosferato/bootstrap/flash.sh --channel weekly   # โ†’ last Sunday's snapshot

flash.sh pulls the matching artifact from GitHub Releases, verifies its SHA256 against the channel manifest, then dds it onto /dev/disk5 (with the same label-cross-check guard as build.sh).

How to build from scratch instead โ€‹

build.sh debootstraps from scratch via Multipass โ€” same flow as the CI runner. Use this when iterating on NosferatOS itself; for day-to-day "I just want a fresh rig", flash.sh --channel stable is faster.

Pi self-update (queued) โ€‹

Once the channel pipeline is up:

sh
sudo nosferatos-update --channel weekly

Pulls the same artifacts over wifi, flashes the partition the rig isn't currently running from, marks it as the next-boot target, reboots into it. Tracking issue: still queued โ€” depends on the channel pipeline landing first.

Tracking โ€‹

S01E11 โ€” NosferatOS release channels