Skip to content

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.

git --version

If not installed:

brew install git
sudo apt-get install git  # Debian/Ubuntu
sudo yum install git      # RHEL/CentOS

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.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Docker Permissions (Linux)

If you encounter permission errors:

sudo usermod -aG docker $USER
newgrp docker

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:

brew install awscli
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Download and run the AWS CLI MSI installer

Verify installation:

aws --version

Configure AWS Credentials

You have two options:

Option 1: AWS Access Keys (Local Development)

aws configure

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.

brew update
brew install opentofu
curl --proto '=https' --tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh -o install-opentofu.sh
chmod +x install-opentofu.sh
./install-opentofu.sh --install-method standalone
rm -f install-opentofu.sh
winget install --exact --id=OpenTofu.Tofu

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.

brew install gh
sudo apt install gh
winget install GitHub.cli

Authenticate with GitHub:

gh auth login

Verify installation:

gh --version

Next Steps

Once you have the tools your path calls for:

  1. Quickstart: Pick a deployment path
  2. Bring-Your-Own Clients: The manual provider, start to finish
  3. AWS Setup (Manual): Reference guide for creating AWS resources individually