Prerequisites¶
What you need depends on which deployment path you take. An AWS account, the AWS CLI, OpenTofu, and the GitHub CLI are not universal requirements — the manual provider runs the allocator and its clients on hardware you already own, with none of them.
Pick your path first¶
| Path | AWS account | OpenTofu | Docker | gh |
|---|---|---|---|---|
| CLI, manual provider — allocator and clients run as containers on machines you already have | No | No | Yes | No |
| CLI, AWS provider — EC2 provisioned from your own machine | Yes | Yes | No | No |
| Template repo — EC2 provisioned by GitHub Actions | Yes | No (CI runs it) | No | Yes |
The two CLI paths need Python and uv. The template-repo path uses its own setup script and does not require either. Git is needed for a CLI source install or to clone the template repository.
CLI paths¶
Python and uv¶
The CLI is a Python package. uv manages both it and the Python it runs on.
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Python 3.10+
uv python install 3.11
Git¶
Needed to clone the repo for a CLI source install or to clone the template repository. A CLI install from PyPI does not need it.
If not installed:
Download from git-scm.com
Manual provider only¶
Docker¶
The manual provider runs the allocator as a docker-compose stack and each
client box as a client container. The allocator host needs Docker and the
docker compose v2 plugin; client boxes need Docker.
Download Docker Desktop for Mac
Download Docker Desktop for Windows
Docker Permissions (Linux)
If you encounter permission errors:
lablink doctor verifies the Docker side for you under this provider.
Docker is also useful on any path for local testing and development of LabLink services.
AWS paths only¶
Skip this whole section if you're using the manual provider.
AWS Account¶
You'll need an AWS account with appropriate permissions to create:
- EC2 instances
- Security groups
- Elastic IPs
- S3 buckets (for OpenTofu state)
- IAM roles and policies
Cost Considerations: See the Cost Estimation guide for expected AWS costs.
AWS CLI¶
Install the AWS Command Line Interface:
Download and run the AWS CLI MSI installer
Verify installation:
Configure AWS Credentials¶
You have two options:
Option 1: AWS Access Keys (Local Development)
Enter your:
- AWS Access Key ID
- AWS Secret Access Key
- Default region (e.g.,
us-west-2) - Default output format (
json)
Option 2: OIDC (GitHub Actions)
For automated deployments, you'll configure OpenID Connect (OIDC) to allow GitHub Actions to assume an IAM role without storing credentials. See AWS Setup from Scratch for details.
OpenTofu¶
Required for the CLI + AWS provider path, which drives OpenTofu from your machine. Not needed for the template repo path — GitHub Actions runs OpenTofu there — and not needed at all for the manual provider.
Version Requirement: OpenTofu 1.10.0 or newer. lablink doctor enforces this floor — earlier releases vendor an aws-sdk-go-v2 that can corrupt S3 state on an upload retry. CI and the allocator image pin 1.12.5.
Template repo path only¶
GitHub CLI (gh)¶
The GitHub CLI is used by the setup scripts to configure repository secrets automatically.
Authenticate with GitHub:
Verify installation:
Next Steps¶
Once you have the tools your path calls for:
- Quickstart: Pick a deployment path
- Bring-Your-Own Clients: The manual provider, start to finish
- AWS Setup (Manual): Reference guide for creating AWS resources individually