Software Checkout Procedure¶
The software checkout procedure prepares the Highdra drone system with the required software configurations and scripts for installation.
Important
Checkout is now fully Web UI-based. Run highdra software to start the local runner service and open the software checkout page.
Equipment¶
To perform this checkout, you will need the following:
- A computer with the highdra CLI installed
- GitHub CLI (
gh) installed and authenticated (for private repository access) - Internet connection for downloading files from GitHub
- Access to
https://highdra-cli.starcopter.de/commands/software-checkout/
How It Works Now¶
highdra software is now the normal entrypoint for software checkout. It already includes the required local runner functionality,
so you do not need to start highdra runner separately for a standard checkout session.
When you run highdra software, the CLI:
- Starts the local websocket runner service
- Opens the software checkout web page:
https://highdra-cli.starcopter.de/commands/software-checkout/
The web UI then selects the manifest and dispatches checkout steps to your runner via websocket.
You would only run highdra runner directly when you want the runner without automatically opening the software checkout page.
Setup¶
Before starting, ensure you have:
- Authenticated with GitHub CLI if accessing private repositories:
gh auth login
Procedure¶
Run highdra software.
highdra software
The procedure will:
- Start local runner service - Registers runner state and starts the websocket command endpoint
- Open software checkout page - Browser opens the Web UI flow
- Select checkout target - In the Web UI, choose runner and software manifest
- Run step subflows -
download,automated, andmanualsubsteps execute remotely on the selected runner via websocket - Complete checkout - Files are saved under the runner checkout working directory
Flow Overview¶
flowchart LR
A[Run highdra software] --> B[Runner Starts]
B --> C[Web UI Opens]
C --> D[Select Manifest and Runner]
D --> E[Run download/automated/manual Steps]
E --> F[Complete Checkout]
Sample Output
$ highdra software
Opening software checkout UI: https://highdra-cli.starcopter.de/commands/software-checkout/
Runner 'my-runner', host (192.168.1.10) online on wss://0.0.0.0:8765
# Continue the checkout in the browser.
# Step execution output and prompts are streamed between runner and Web UI.
Checkout Process Details¶
Manifest and Step Validation¶
Validation occurs in the web-driven runner step handlers:
- Required step fields are validated before execution
- Substep type must be set (
download,automated, ormanual) - User confirmation gates each substep
File Download¶
For each software step, the runner can download:
- Automated scripts: Python scripts that run automatically with minimal user interaction
- Manual scripts: Python scripts that require user input and manual steps
- Reference files: Configuration files (YAML, XML, etc.) needed for the installation
Files are downloaded using:
- GitHub CLI for private repositories (requires
gh auth login) - urllib as fallback for public URLs
All downloaded files are organized in a timestamped working directory under ~/.cache/highdra-cli/software_checkout/.
Script Execution¶
When automated scripts are downloaded, the web flow asks for confirmation before execution:
- Scripts run using
uv runfor dependency management - The working directory is set to the step directory containing all downloaded files
- Script output is captured and streamed line-by-line to the Web UI
- Non-zero exit codes stop the current checkout flow and are shown as failed substeps in the Web UI
Tip
You can skip any substep (download, automated, manual) from the web UI confirmation controls.
Working Directory Structure¶
Files are organized as follows:
~/.cache/highdra-cli/software_checkout/runner_run_YYYYMMDD_HHMMSS/
├── step_1/
│ ├── automated.py
│ ├── manual.py
│ └── reference_0.yaml
├── step_2/
│ ├── automated.py
│ └── reference_0.yaml
└── step_3/
└── manual.py
Each step gets its own directory with all associated files, making it easy to reference materials during manual installation steps.
Troubleshooting¶
Authentication Errors¶
If you encounter authentication errors when downloading from private repositories:
gh auth login
Follow the prompts to authenticate with GitHub.
Download Failures¶
If file downloads fail:
- Check your internet connection
- Verify the URLs in manifest steps are correct
- Ensure you have access to private repositories (if applicable)
- Check that the branch and file paths exist in the repository
Websocket Connection Failures¶
If step execution cannot start from the web UI:
- Ensure
highdra softwareis still running locally - Do not start a separate
highdra runnerfor the normal software checkout flow unless you explicitly want runner-only mode - Confirm runner appears online in the web UI
- Verify TLS trust /
wss://settings on the CA certificate page