← The board

B8 Autostart & boot persistence

Area
B — Running it
Audience
operator
Kind
feature
Status
accepted
Maturity
building
Labels
updates, cli
Requires
B5
Relates to
B2C2C5

The feature in the specification · Read at

Requirements

  1. B8-R1acceptedMUST

    Setup MUST ask whether the stack should start automatically, and MUST state the consequence of declining.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/autostart.rscrates/lemonfiber-core/src/storage.rscrates/lemonfiber/src/prompt/terminal.rscrates/lemonfiber-core/src/app/apply.rscrates/lemonfiber-core/src/stored/kept.rs
    cited by
    lemonfiber@468091e1dclemonfiber@1be824ec72lemonfiber@ecd8ed52b2
  2. B8-R2acceptedMUST

    lemonfiber MUST detect the platform and configure or instruct the correct autostart mechanism for it.

    locked by
    0.15.0 unmarked
    recorded partial
    lemonfibercrates/lemonfiber-core/src/doctor/autostart.rscrates/lemonfiber-core/src/app/engine/diagnosis.rscrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  3. B8-R3acceptedMUST

    Where a prerequisite belongs to Docker Desktop, lemonfiber MUST verify its state and MUST NOT assume it.

    locked by
    0.15.0 unmarked
    recorded partial
    lemonfibercrates/lemonfiber-core/src/doctor/autostart.rscrates/lemonfiber-core/src/app/engine/diagnosis.rscrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@82b419e23dlemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  4. B8-R4acceptedMUST

    An unverifiable prerequisite MUST produce enabled-unverified, and MUST NOT be reported as working autostart.

    locked by
    0.15.0 unmarked
    recorded partial
    lemonfibercrates/lemonfiber-core/src/doctor/autostart.rscrates/lemonfiber-core/src/app/engine/diagnosis.rscrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  5. B8-R5acceptedMUST

    The form started at boot MUST be the last-run form unless a specific form is pinned.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/autostart.rscrates/lemonfiber-core/src/autostart/run.rscrates/lemonfiber-core/src/app/watch.rscrates/lemonfiber-core/src/app/engine.rscrates/lemonfiber-core/src/app/engine/streaming.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  6. B8-R6acceptedMUST

    After a boot, lemonfiber MUST verify the stack came back, including VPN tunnel and forwarded port.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/boot.rscrates/lemonfiber-core/src/app/engine/settling.rscrates/lemonfiber-core/src/doctor/vpn.rscrates/lemonfiber/src/setup/boot.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  7. B8-R7acceptedMUST

    A forwarded port that changed across a reconnect MUST be re-pushed to the download client.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/forwarding.rscrates/lemonfiber-core/src/app/engine/settling.rscrates/lemonfiber-core/src/qbittorrent.rscrates/lemonfiber-core/src/doctor/vpn/findings.rscrates/lemonfiber-core/src/app/forwarding/deciding.rs
    cited by
    lemonfiber@514edfa781lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  8. B8-R8acceptedMUST

    A failed boot start MUST be reported at the operator's next interaction, with the reason.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/boot.rscrates/lemonfiber-core/src/condition.rscrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/alert/outbox.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  9. B8-R9acceptedMUST

    Services MUST NOT start when the data root is not present, and MUST report rather than write into an empty mount point.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/engine/grounded.rscrates/lemonfiber-core/src/app/watch.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  10. B8-R10acceptedMUST

    A deliberately stopped stack MUST NOT be auto-started at the next boot.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/autostart.rscrates/lemonfiber-core/src/autostart/run.rscrates/lemonfiber-core/src/app/watch.rscrates/lemonfiber-core/src/app/engine.rscrates/lemonfiber-core/src/app/engine/streaming.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  11. B8-R11acceptedMUST

    Disabling autostart MUST remove everything it configured, leaving no orphaned login items or services.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-ports/src/hosting.rscrates/lemonfiber-adapters/src/hosting/launchd.rscrates/lemonfiber-adapters/src/hosting/systemd.rscrates/lemonfiber-core/src/app/hosting.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  12. B8-R12acceptedMUST

    On battery power, autostart MUST NOT occur unless explicitly opted in.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-ports/src/machine.rscrates/lemonfiber-ports/src/network.rscrates/lemonfiber-core/src/machine.rscrates/lemonfiber-core/src/app/boot.rscrates/lemonfiber-core/src/config/store.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  13. B8-R13acceptedMUST

    A recurring boot failure MUST be reported as one ongoing condition, not once per boot.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/boot.rscrates/lemonfiber-core/src/condition.rscrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/alert/outbox.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2
  14. B8-R14acceptedMUST

    Boot before network availability MUST retry rather than fail permanently.

    locked by
    0.15.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/boot.rscrates/lemonfiber-error/src/retry.rscrates/lemonfiber-adapters/src/retrying.rs
    cited by
    lemonfiber@9daf9ff7e7lemonfiber@ecd8ed52b2