Skip to content

Workflow status is tracked in GitHub. This local document is retained as an engineering spec/evidence record.

TMBB-FEAT-010 - Suite setup CLI - self-contained installer (TUI + suite.toml, install/update/repair)

Summary

The suite installer lives in TrackMuleBB as a Python setup CLI: TUI (interactive) + flags/suite.toml (non-interactive). It installs and auto-wires the selectable bundle, self-contained in the install dir, invoked by the minimal install.ps1 bootstrap. Design: emulebb-tooling SUITE-INSTALLER.

Why This Matters

Moves the real setup out of PowerShell into one Python brain (single pane of install + config). The web UI never installs; the CLI owns the component lifecycle.

Intended Shape

  • TUI + suite.toml + flags (Typer). CLI = install/lifecycle; web UI = settings only.
  • Lifecycle: install / update / repair (no uninstall - delete the dir). Initial phase = install only.
  • Self-contained: Python via uv --python-preference only-managed in the install dir (no system Python, no admin, no PATH); Node only for Bountarr.
  • Selection: components selectable, TrackMuleBB always (optional start), >=1 P2P client, dependency enforcement.
  • Auto-wiring: every inter-app connection (keys, Prowlarr/Arr/client registration, the indexer-exclusion tag).
  • Targets: Windows-local (native) + Docker (generate compose + profiles + Gluetun option, P2P-only). Firewall = check + docs (no silent change). Data paths overridable.

Acceptance Criteria

  • [ ] install.ps1 is a minimal bootstrap (uv + fetch TrackMuleBB + run CLI).
  • [ ] CLI installs the selected bundle self-contained (uv only-managed; no system Python/admin).
  • [ ] Auto-wiring connects every selected component.
  • [ ] --target docker emits a compose with profiles + optional Gluetun (P2P-only).
  • [ ] update + repair exist (no uninstall command).

Notes

  • Big umbrella; may be split as built. uv is already TrackMuleBB tooling (uv sync).