← The board

A2 Setup wizard

Area
A — Getting started
Audience
operator
Kind
feature
Status
accepted
Maturity
building
Labels
ux, wiring
Relates to
A1A3A4G1G4

The feature in the specification · Read at

Requirements

  1. A2-R1acceptedMUST

    Invoking lemonfiber with no configuration MUST offer setup without requiring a subcommand.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@d549176576lemonfiber@f8e31bf9bflemonfiber@7898298c08
  2. A2-R2acceptedMUST

    Steps preceding Review MUST NOT write to disk, except a resumable progress file.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@eef2640446lemonfiber@7898298c08
  3. A2-R3acceptedMUST

    Review MUST show every value that will be written before anything is applied.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@c5020a40e9lemonfiber@593ac47954lemonfiber@c37419c0cdlemonfiber@7898298c08
  4. A2-R4acceptedMUST

    Progress MUST survive quitting, and the wizard MUST resume at the step reached.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@ea069294b0lemonfiber@7898298c08
  5. A2-R5acceptedMUST

    lemonfiber MUST NOT ask any question whose answer it can reliably detect.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@7898298c08
  6. A2-R6acceptedMUST

    PUID/PGID MUST be requested only where file ownership is user-visible (native Linux Docker).

    locked by
    0.2.0 unmarked
    recorded partial
    lemonfibercrates/lemonfiber/src/prompt.rs
    cited by
    lemonfiber@82b419e23dlemonfiber@33006632ba
  7. A2-R7acceptedMUST

    Native Jellyfin mode MUST be offered only on platforms where it enables hardware transcoding.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber/src/prompt.rs
    cited by
    lemonfiber@33006632ba
  8. A2-R8acceptedMUST

    Hardlink capability MUST be tested empirically, never inferred from filesystem name.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/storage.rscrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rs
    cited by
    lemonfiber@bace68a7a6lemonfiber@12382b7be1
  9. A2-R9acceptedMUST

    "Docker absent" and "Docker present but unreachable" MUST produce distinct messages and remedies.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/environment.rscrates/lemonfiber/src/setup.rscrates/lemonfiber/src/setup/boot.rscrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rs
    cited by
    lemonfiber@7229d1adac
  10. A2-R10acceptedMUST

    An interrupted apply MUST be detected on next run and MUST offer resume, roll back, or start over.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@3bfc2b469blemonfiber@19672a4fe1lemonfiber@c005f21cb2lemonfiber@a340f287e3lemonfiber@e4a9a37713
  11. A2-R11acceptedMUST

    Image pull progress MUST be shown per image, with an expected-duration statement beforehand.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@7e31a74a76
  12. A2-R12acceptedMUST

    Declining both protocols MUST be a supported path that skips all download configuration.

    locked by
    0.2.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
  13. A2-R13acceptedMUST

    In a non-interactive context, the wizard MUST fail with a message naming the required flags, and MUST NOT block on stdin.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@ffe542264alemonfiber@b1ce5608dblemonfiber@7898298c08
  14. A2-R14acceptedMUST

    When configuration already exists, lemonfiber MUST direct the operator to reconfiguration rather than re-running setup.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@d549176576lemonfiber@7898298c08
  15. A2-R15acceptedSHOULD

    Total elapsed time for an operator with prerequisites in hand SHOULD be under 15 minutes (NFR).

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/stack.rscrates/lemonfiber-core/src/config/paths.rs
    cited by
    lemonfiber@e12e1e4124
  16. A2-R16acceptedMUSTClaim it

    The web API MUST serve what setup settled — the data root, the protocols and the service user — read from the configuration as it stands, together with whether this stack is set up, on a read that offers no setup and changes nothing (N15-R1, N15-R2).

    locked by
    0.18.0 open
  17. A2-R17acceptedMUST

    After the start step, setup MUST wire the stack as seed does (D1), and report each connection made, skipped or failed before it finishes; a stack that did not start is not wired.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/setup/boot.rscrates/lemonfiber/src/setup/boot/tests.rs
    cited by
    lemonfiber@44facc6677lemonfiber-web@384b125787