The four Docker containers each have different resource profiles:
Container
Image Size
Runtime RAM
Role
clickhouse
805 MB
2–4 GB
Column-oriented database — buffers data in memory for fast analytical queries
otel-collector
328 MB
128–256 MB
Receives, batches, and forwards OpenTelemetry spans
tracectrl-engine
226 MB
256–512 MB
FastAPI app running the TAGAAI analysis pipeline
tracectrl-ui
63 MB
64–128 MB
Static React dashboard served by nginx
Total
~1.4 GB download
~2.5–5 GB at runtime
Plus Docker overhead and host OS
ClickHouse is the dominant cost — it is a production-grade OLAP database designed to hold millions of spans in memory for fast queries. On an 8 GB machine you have roughly 3–4 GB headroom after the full stack is running, which is sufficient for the workshop.
Docker/Rancher memory cap. Docker Desktop and Rancher Desktop default to a 4–6 GB memory limit for the Linux VM. ClickHouse may OOM-kill if that cap is too low.Go to Settings → Resources → Memory and set it to at least 6 GB before starting the stack.
Pick the runtime that fits your machine and your organisation’s licensing policies. Docker Desktop is the simplest path on macOS / Windows if your org permits it. Rancher Desktop is a free open-source alternative if Docker Desktop’s subscription terms don’t fit (e.g., large enterprises on the paid tier). Docker Engine is for Linux servers and WSL2. All three work with TraceCtrl — tracectrl setup detects which is installed automatically.
Docker Desktop (macOS)
Rancher Desktop (free alternative)
Docker Engine (Linux / EC2)
Docker Desktop
Simplest setup. Requires a paid subscription for large organisations — check your company’s policy first.
# macOS — Homebrewbrew install --cask docker# Open Docker.app from /Applications after installing.
Or download directly from docker.com/products/docker-desktop.After installing, go to Settings → Resources → Memory and set it to at least 6 GB.
# Verifydocker --version && docker compose version
Rancher Desktop
Free and open-source. Use this when Docker Desktop’s licensing doesn’t fit your organisation.
On first launch, choose Container Engine: dockerd (moby) — this gives you the standard docker and docker compose CLI
Under Kubernetes, you can disable it (not needed for TraceCtrl)
Go to Settings → Resources → Memory and set it to at least 6 GB
# Verifydocker --version && docker compose version
If your Rancher Desktop is already configured with the containerd engine, use nerdctl compose in place of docker compose everywhere in the bootcamp. tracectrl setup detects this automatically and uses nerdctl if docker is not found.
# Verifydocker --version && docker compose version
Expected output:
Docker version 27.x.xDocker Compose version v2.x.x
macOS — daemon not running:Cannot connect to the Docker daemon means Rancher Desktop or Docker Desktop is installed but not started. Open it from Applications and wait for the icon to turn green/active.Linux — permission denied on socket: Run newgrp docker or log out and back in after adding yourself to the docker group.
Run this inside the same virtual environment you’ll use for the workshop. If you’re using venv, activate it first: source .venv/bin/activate.
Want to get a head start? Try one of the examples from strandsagents.com/docs/examples before the workshop — even 10 minutes building a basic agent will make the instrumentation step click much faster on the day. Pick anything that catches your eye: a chat agent, a tool-using agent, or a multi-agent example.
Each folder is self-contained — its own README, .env.example, runner scripts (run_agents_workflow.sh for pip, run_agents_workflow_uv.sh for uv), and Python files. Don’t cp .env.example .env yet — you’ll do that during the workshop once you’ve decided which auth path you’re using.
The first time you run a run_*.sh script, it creates a venv and installs strands-agents[gemini], strands-agents-tools, tracectrl, and tracectrl-instrumentation-strands from PyPI. About a minute on pip, a few seconds on uv. Run the script once before the session to prime the venv — even if you don’t have an API key yet, the install will succeed and only the final agent call will fail. That gets the slow part out of the way over your home WiFi.
The bootcamp organizer provides a shared Google AI Studio API key via a single Bitwarden Send link. You’ll need a passphrase to unlock it — the facilitator will share that on the day of the bootcamp.
Get the Bootcamp API Key
Open Bitwarden Send → enter the passphrase (given in person on the day) → click the copy icon → paste straight into the GOOGLE_API_KEY= line of each example’s .env.
Don’t paste the key into chat, slides, screenshots, or any file other than .env. The link expires and the key is rotated immediately after the bootcamp ends.
If for any reason you can’t access the link, AI Studio’s free tier is more than enough for the workshop — create your own key by following the same steps below. No billing setup is required either way.
Paste this into your terminal (replace YOUR_API_KEY_HERE):
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-lite-preview:generateContent" \ -H 'Content-Type: application/json' \ -H 'X-goog-api-key: YOUR_API_KEY_HERE' \ -X POST \ -d '{ "contents": [ { "parts": [ { "text": "What tools do you have access to?" } ] } ] }'
Expected: a JSON response containing candidates[0].content.parts[0].text. If you see a 400 or 403 error, the key was not copied correctly — return to AI Studio and copy it again.
Never commit your API key to git. Always use environment variables — never paste the key directly into code files.
Each bootcamp example reads its config from a local .env file. Set them up once now — the workshop step is then just “run the script”. Do this for both examples even if you only intend to run one; it costs nothing and saves time on the day.
cd tracectrl-bootcamp-examplescp research_workflow_example/.env.example research_workflow_example/.envcp teacher_assistants_workflow_example/.env.example teacher_assistants_workflow_example/.env
Open each .env and paste your AIza... Google AI Studio key into GOOGLE_API_KEY:
Leave the TRACECTRL_* lines as they are — the defaults work for the workshop’s local stack.
Hit a Google AI Studio rate limit mid-workshop? Swap GOOGLE_MODEL_ID to gemini-2.5-flash (also free-tier with generous headroom) and rerun.
Don’t commit .env. Both examples gitignore it, but double-check before pushing any forks. Keys also land in TraceCtrl trace attributes — fine locally, something to know before pointing the OTLP endpoint anywhere remote.
Sanity check: from inside one of the example folders, run the runner script — it will install dependencies on first run and then immediately try to call the model. If your .env is right, you’ll get an interactive > prompt. If auth is wrong, it’ll error within a second. Either is fine for pre-workshop — the install + venv creation is what you want done ahead of time.
Do this before the session. The images total ~1.4 GB — venue WiFi may be slow.
Start your container runtime first. Docker Desktop or Rancher Desktop must be running before any docker pull will work. On first launch, Rancher Desktop takes 2–3 minutes to provision its Linux VM — wait for the container icon in the bottom status bar to go green.Sanity check:
docker info | head -5
If you see Cannot connect to the Docker daemon, the runtime is not up yet — open Rancher Desktop / Docker Desktop and wait.
make: *** No rule to make target 'pull'? You’re either not in the repo root (cd tracectrl first), or your clone predates the pull target — run git pull origin main to update.
With the prerequisites in place, install the TraceCtrl CLI and start the stack so it’s ready to receive spans on day one of the bootcamp. By the end of this section you will have:
A running TraceCtrl stack (OTel Collector, ClickHouse, Engine, Dashboard)
The tracectrl CLI installed in a Python virtual environment
The Dashboard accessible at http://localhost:3000 — ready to receive spans from the agents you’ll build during the workshop
The interactive wizard starts the four Docker containers. Alternatively:
docker compose up -d
Rancher Desktop users:tracectrl setup detects Rancher automatically. If you’re using the containerd engine, it uses nerdctl compose instead of docker compose.Memory: Ensure your container runtime has at least 6 GB of memory allocated (Settings → Resources → Memory). ClickHouse is the heaviest container at 2–4 GB RAM.