Skip to content

ADR-0003: Preview Bootstrap Access ​

Status: Accepted for the Phase 01 preview
Date: 2026-07-21
Decision owner: Project creator
Related RFC: RFC-0010

Context ​

The first physical POC proved that Sovereign OS boots, joins an Ethernet network, advertises sovereign.local, serves Pi-hole, and answers DNS queries. It also exposed a headless-onboarding dead end: an image flashed without Raspberry Pi Imager customisation has no accepted SSH credential, while the generated Pi-hole password is readable only from the physical console or a privileged shell.

Requiring a release manifest, a compatible pre-release Imager, and an SSH key before a user can inspect the appliance is too much friction for the preview.

Decision ​

Phase 01 preview images will provide a temporary bootstrap account:

  • username: sovereign;
  • initial password: sovereign;
  • SSH enabled on the local network with password authentication;
  • root SSH login disabled; and
  • the bootstrap password expired so the user must replace it at the first successful interactive login before receiving a shell.

The image must clearly label this credential as public and temporary. Users must connect only from a trusted local network, change the password immediately, and should install an SSH public key and disable password authentication after onboarding.

Ethernet remains the zero-configuration network path. A logged-in user may configure Wi-Fi later with IWD. Raspberry Pi Imager provisioning remains an optional way to install a user-selected account, SSH key, and Wi-Fi settings while flashing.

This exception applies only to preview builds. A production release requires a device-unique bootstrap secret, secure claim flow, or equivalent mechanism.

Consequences ​

Positive ​

  • A headless Ethernet installation is recoverable without reflashing.
  • Users can retrieve the unique Pi-hole password and diagnose services.
  • The normal custom-image flashing path no longer depends on manifest support.
  • Wi-Fi and SSH keys can be configured after first boot.

Negative ​

  • Every unclaimed preview device has a publicly known LAN credential.
  • Forced password change protects subsequent access, not the interval before the first login.
  • A hostile device on the same network could claim the account first.
  • Password authentication adds brute-force exposure on untrusted networks.

Required Controls ​

  • Document the credential beside every preview download and flashing guide.
  • Never expose SSH through router port forwarding or a public interface.
  • Force password replacement using account-expiry semantics; a banner or recommendation alone is insufficient.
  • Generate unique SSH host keys on first boot.
  • Keep root login disabled and do not grant passwordless sudo by default.
  • Test that the initial password cannot open a second session after it has been changed.
  • Provide documented key installation and password-authentication hardening.
  • Replace this design before removing the preview label.

Rejected Alternatives ​

Require Raspberry Pi Imager provisioning ​

This is safer but failed the simplest downloaded-image workflow and depends on custom manifest compatibility.

Display credentials only on an attached console ​

This excludes headless users and was the failure observed in the physical POC.

Publish the Pi-hole password directly ​

This would expose an application administrator secret and still would not provide host diagnostics or Wi-Fi configuration.

Open source under AGPL-3.0. Each Sovereign instance is independently operated.