12 Commits

Author SHA1 Message Date
2f1300940c docs: record kiosk-UI journey, WLAN autoprovisioning model, and TUXFLOTTE ISO label
Kiosk UI: Chromium was evaluated as an Epiphany alternative (ADR-0005)
after ADR-0004's application-mode approach turned out unusable
end-to-end, then abandoned after four distinct real-boot failures in a
row (ADR-0006) in favor of a hardened plain --profile Epiphany launch.
ADR-0004 amended with the actual fix history (profile directory
creation, application-mode's undocumented web-app requirement,
--private-instance/--profile conflict on the target's Epiphany 50.1
vs. the 43.1 used for local testing). ADR-0007 resolves ADR-0004's
open question: the kiosk web UI and installer.sh never talk directly,
only via the provisioning server.

WLAN autoprovisioning: customer profile gets an "Autoprovisionierung"
flag plus WLAN credentials, driving self-service generation of a
personalized ISO with the credentials baked in as a NetworkManager
profile — works from device one, no persistent on-stick state needed.
Personalizing the build this way also motivated giving the ISO its
own volume label (TUXFLOTTE) instead of the source Fedora label.

Also folds in the EROFS root-cause writeup and the Ubuntu-live-medium
alternative noted for a future ISO rework, and brings
roadmap/installer-roadmap.md's checkboxes in line with actual status.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 12:16:25 +02:00
8a7ea7192f docs: record first successful end-to-end live-ISO provisioning run
Replaces the stale "not yet implemented" note for installer.sh
autostart with the actual mechanism (dracut's official
20-apply-live-updates.sh pre-pivot hook via a top-level /updates/
directory, not squashfs/EROFS remastering - that image is EROFS
despite the filename, and hit a reproducible erofs-utils extraction
bug even freshly built from source). Adds the milestone entry for the
first clean end-to-end run through every module, live in Proxmox.
2026-07-20 15:01:23 +02:00
967ad03802 docs: record GRUB branding decision and logo rendering limitation 2026-07-18 17:09:26 +02:00
7f910a9033 docs: record concrete live-ISO implementation details
Fedora Cinnamon Live 44 chosen as the concrete base (interchangeable
with Workstation Live for this purpose), tuxflotte.mode kernel cmdline
flag name, 10s countdown with auto as default entry, and the
xorriso-based build.sh/extract.sh that no longer needs root. Checks
off 'Boot from local disk' in the installer roadmap, now verified
end-to-end in QEMU/KVM.
2026-07-18 11:26:35 +02:00
fce6e4860c docs: switch provisioning ISO to live medium with auto/interactive boot modes (ADR-0003)
Moves from a Fedora DVD/netinst base (GRUB boots straight into Anaconda
via a static inst.ks= URL, bypassing installer.sh entirely) to a real
live medium. installer.sh runs as an application inside the live
session; backend_launch() starts the native installer explicitly at
the end instead of a boot-time kickstart parameter.

The boot menu offers two entries: a default with a countdown that
leads to an unattended flow, and a manual entry for the branded
interactive flow. The unattended flow is gated on
device.registration_status == "existing" - unknown devices always
fail closed into the interactive enrollment path. Device registration
now documents that this is a condition of registering a device.

Also notes the tension with the installer roadmap's long-term
minimal-medium vision: distribution packages still aren't bundled and
are pulled per install, but the live environment itself makes the
medium larger, accepted for the UX it enables.

Details: architecture/13-live-provisioning-boot.md.
2026-07-18 10:46:46 +02:00
8ece25f954 docs: define Merkmal/Blueprint/Bereitstellungsvorlage model (ADR-0002)
Introduces the Merkmal-Backend-Blueprint realization model: a Merkmal
describes one distribution-independent workspace feature, a Blueprint
realizes exactly one Merkmal for exactly one backend (usually an
Ansible role applied post-first-boot via ansible-pull), and a
Bereitstellungsvorlage bundles workspace + backend + org-specific
installation directives (partitioning, encryption, secure boot).

Replaces the old flat profile model (profiles/profile.json/
distribution+version) throughout the provisioning API, data model,
interactive provisioning flow, and device enrollment docs with
templates/Bereitstellungsvorlage terminology. Moves 02-workspace-model.md
and 04-backend-model.md into architecture/, archives the superseded
flat organization-model.md.
2026-07-18 10:45:48 +02:00
de3d7352df docs: align runtime layout with interactive provisioning flow 2026-07-14 14:15:15 +02:00
dcc4051286 docs: document device registration status 2026-07-14 13:10:20 +02:00
a551096eed docs: define device enrollment model 2026-07-14 12:56:30 +02:00
679eb20e0e docs: define interactive provisioning flow and commit point 2026-07-14 10:54:19 +02:00
40d9bc77a6 docs: document provisioning handshake and persistence model 2026-07-14 10:28:30 +02:00
25d71b0b5e Establish Tuxflotte architecture foundation 2026-07-07 15:33:17 +02:00