| 761 | |
| 762 | |
| 763 | def parse_args() -> argparse.Namespace: |
| 764 | parser = argparse.ArgumentParser( |
| 765 | description="Onlyboxes installer – deploy console + worker on a single Linux or macOS host." |
| 766 | ) |
| 767 | parser.add_argument( |
| 768 | "--tag", |
| 769 | default=None, |
| 770 | help="Override release version tag for advanced use cases (default: latest published release)", |
| 771 | ) |
| 772 | parser.add_argument("--workdir", default=None, help="Working directory (default: $PWD/onlyboxes)") |
| 773 | parser.add_argument("--yes", "-y", action="store_true", help="Non-interactive mode, skip confirmations") |
| 774 | parser.add_argument("--console-http-port", type=int, default=8089, help="Console HTTP port (default: 8089)") |
| 775 | parser.add_argument("--console-grpc-port", type=int, default=50051, help="Console gRPC port (default: 50051)") |
| 776 | parser.add_argument( |
| 777 | "--console-start", choices=["auto", "docker", "systemd", "foreground"], default="auto", |
| 778 | help="Console start mode (default: auto-detect)", |
| 779 | ) |
| 780 | parser.add_argument( |
| 781 | "--worker-runtime", choices=["auto", "docker", "boxlite"], default="auto", |
| 782 | help="Worker runtime (default: auto-detect)", |
| 783 | ) |
| 784 | parser.add_argument( |
| 785 | "--worker-start", choices=["auto", "systemd", "foreground"], default="auto", |
| 786 | help="Worker start mode (default: auto-detect)", |
| 787 | ) |
| 788 | return parser.parse_args() |
| 789 | |
| 790 | |
| 791 | def main() -> None: |