[ norboten ]
Labs

51 machines, each broken on purpose

Every lab states its symptoms, never its causes. The faults are listed here for people choosing what to learn next — inside the lab you only ever see what the machine shows you.

Every lab here is unrated: it runs on your own machine, needs no account, and its faults, checks and reference solution are in the repository. Rated labs — the ones a rating is made of — are graded by the server and their answers are not published. What that means.

6 labs

Linux

General troubleshooting and shell work on lighter images: Ubuntu 26.04 and Alpine.

5 labs

RHCSA

Five labs on Rocky Linux 10, grounded in the current EX200 objectives, ending in a timed exam simulation.

7 labs

Bash

Two deploy-day scripts, graded by running them against the grader's own directories: error handling, quoting, atomic switches, safe deletion.

7 labs

Python

A sync job that lied about its failures and a tool only root could run: exit status, timeouts, atomic writes, virtual environments.

7 labs

Automation & AI

A Python job, an AI gateway, an agent that never stopped, and Ollama four ways — deployed, exposed, starved of context and memory, and secured.

6 labs

Claude Code

Headless Claude Code as a machine runs it: permission rules, hooks, subagents, MCP servers and CI jobs that stay inside a budget.

6 labs

MCP

Model Context Protocol servers as Claude Code meets them: what a server exposes, tool results that give orders, tokens for someone else, a chatty stdio server, a proxy that holds the stream, and scopes that disagree.

2 labs

Ansible

A playbook that never converges and a deploy stuck at a vault prompt: idempotence, variable precedence, Vault without a keyboard.

2 labs

Docker

A queue that lost its jobs at every reboot and a Compose stack that could not find its API: volumes, published ports, networks, restart policies.

2 labs

Terraform

A rename that would regenerate a secret and a site removed from the middle of a list: moved blocks, drift, for_each, state hygiene.

Theory

610 questions, each with a reference

These are the unrated banks: their answers and explanations are in the repository, and the site draws the questions from it. Rated banks are served by the API, a question at a time, and graded there. Single answer or several; every one explains why the tempting wrong choices are wrong. Questions about program output are executed in a sandbox before they are accepted — the answer key has to match what the machine actually printed.

Ansible

Idempotence, modules, variables and handlers — configuration you can run twice.

41 questions

Bash

Expansion, quoting, exit status and the traps that make scripts lie.

42 questions · 34 executable

Claude Code

Claude Code as a machine runs it — headless runs, permissions, settings levels, hooks, subagents, MCP servers, CLAUDE.md, CI jobs and what they cost — and the habits that keep any AI agent on a short leash.

42 questions · 4 executable

Linux fundamentals

Users, permissions, processes, files and boot — the everyday mechanics of a Linux system.

42 questions · 7 executable

The Model Context Protocol

MCP as a machine runs it — the two transports, the stateless 2026-07-28 revision, what a server exposes, tool results as untrusted input, OAuth 2.1 for remote servers, and the way Claude Code picks which server to run.

40 questions

Memory and CS in Linux

Virtual memory, the page cache, processes and scheduling — computer science as Linux shows it.

43 questions · 7 executable

Networking

Addresses, routes, sockets, name resolution and firewalls — from a Linux shell.

41 questions · 6 executable

Ollama

Running language models on your own machine with Ollama — the service, the API, Modelfiles, context windows, memory, keep-alive, embeddings and exposing it safely — and what local models are good for.

40 questions · 3 executable

Python for automation

The Python that automation scripts are made of — and the surprises in it.

42 questions · 34 executable

Terraform

State, plans and the lifecycle of infrastructure described as code.

41 questions · 1 executable

One of them

What does this print?

x=5
x+=1
echo "$x"