Skip to content

v2 Appliance Roadmap — sequencing & gates (provisional) #394

Description

@VijitSingh97

Single source of truth for the v2 appliance plan — same format as #364. Re-sequenced 2026-08-13: the machine exists and the roadmap's job has changed. Everything below describes what is shipped and proven versus what still gates the release tier. The full ADR trail lives in docs/dev/dual-distribution-plan.md; the release mechanics in docs/dev/appliance-release.md.

The theme: v2 turned the stack from software you install into a machine you boot — and that machine now boots. One immutable image (Debian 13, RAUC A/B — chosen over Rugix by the 2026-07-25 bake-off on stability grounds, fault-injection proven), read-only root, single /data persistence, the stack on Podman via the compose bridge, everything Tor-first. The DIY channel stays Docker Compose, byte-identical. What remains before the tier opens is parity, proof, and polish — not construction.

Shipped and proven (phases 0–3 of #77, RC20 line)

  • Boots / updates / installs / provisions: KVM battery phases boot · update (A/B + rollback + commit gate) · install (one-page installer, reinstall tiers) · provision (headless from pre-seed; wizard with one-time token) · fault injection (power cuts mid-write/mid-commit, corrupt bundle). tests/os/run.sh is the release gate, tests/os/verify-image.sh the static half.
  • Boot contract: pithead-boot renders derived config every boot, compose owns the stack, rauc status mark-good only after the dashboard answers through Caddy + doctor --json — derived is regenerated, state is validated, never the reverse.
  • Security posture: cosign-mandatory releases; RAUC release keys with custody runbook (dev builds refuse without --dev); Tor egress fail-closed under netavark (proven live); shell-less release variant; per-machine host identity (SSH host keys + machine-id) generated on /data, never baked (2026-08-13); stale-artifact build guard.
  • Roles: one stick provisions Pithead / Pithead + RigForge / RigForge (Master installer image: one stick provisions a Pithead coordinator, a RigForge rig, or both #797) — the rig phase runs in the battery; merged hugepage budget proven on the bench.

The parity arc — #786, decided 2026-08-13

Host-CLI-only settings were impossible to change on a shell-less box. Decision record on #786 (peer research: Talos, HAOS, TrueNAS/OPNsense, Synology/UniFi/umbrel):

Hardening backlog (filed 2026-08-13 audit)

#923 factory-reset/wedged-/data reformat never battery-exercised · #924 headless setup() silent no-op · #925 role-select undocumented · #926 partition-derivation consolidation · #927 worker-verb dedup. Plus #851 (migration-manifest fields, open by design until a real migration exists) and #821 (RigForge repin, blocked on their next tagged release).

Release status — tier not open. Gates:

#479 (screenshots) rides the v1.12 milestone, not this tier.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appliancePithead OS appliance work — image, installer, RAUC updatesinfraDeployment, packaging, releases

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions