Skip to content

Local toolchain & LocalStack

Get from a fresh laptop to a lab-ready environment. Labs use mock_provider or LocalStack — an AWS emulator on your machine. You need no cloud account and incur no cloud bill.

One command: task setup

From the repository root:

task setup

That runs setup/bootstrap.sh (detects tools, prints versions, guides installs) and pnpm install for the decks. It is safe to rerun and never installs without confirmation. Missing tools return non-zero with install guidance and which labs are affected.

No Task? The bootstrap script alone is enough for the CLI tools:

bash setup/bootstrap.sh
corepack enable && corepack prepare pnpm@11.9.0 --activate
pnpm install --frozen-lockfile

Prerequisites by workshop day

Scope Tools
Decks and Day 1 OpenTofu ≥1.8, Node.js ≥20, pnpm, Task, Docker
Day 2 static analysis TFLint
Day 2 security and policy Trivy, Checkov, Conftest
Day 3 scale labs Terramate
Optional Terratest (S18) Docker (container lane) — or host Go ≥1.22

gum, awslocal, and the AWS CLI improve the local experience but are optional. Go is not installed by default. Terratest is container-first — see the README and ADR 0011.

LocalStack for labs

Start the emulator before any lab marked for LocalStack:

task lab:up          # Docker Compose → http://localhost:4566
# Docker-free alternative (kind / existing kube context):
task lab:up:k8s

Health check: http://localhost:4566/_localstack/health

Stop and wipe volumes (clean slate — PERSISTENCE=0):

task lab:down
# or: task lab:down:k8s

Full troubleshooting (image pin 4.9.2, panic reset, k8s path): setup/localstack.md on GitHub.

Next steps

Goal Link
First lab Lab 00: setup
All labs by day Labs index
Serve the 3-day deck Run the slides locally (task dev:3day)
Facilitate Facilitator runbook