Learn DevOps by fixing what's broken.
BreakOps is an open-source, community-driven platform of hands-on labs where you land inside a broken Linux environment, and your only job is to fix it.
No multiple choice. No tutorials. Just a terminal, a problem, and your skills.
Most DevOps learning platforms teach you how things should work.
BreakOps teaches you what to do when they don't.
Every lab drops you into a realistic broken scenario ; a disk that's full, a service that won't start, permissions that are wrong, the kind of things you'll actually face in production. You diagnose, you fix, you learn.
Click one of the buttons above to launch BreakOps instantly in your browser — no Docker or Git setup needed.
| Gitpod | GitHub Codespaces | |
|---|---|---|
| Free tier | 50h/month | 60h/month |
| Speed | ~30s | ~45s |
| Requires | GitHub/GitLab account | GitHub account |
git clone https://github.com/elafkaihi/BreakOps.git
cd BreakOps
./install.sh
breakops start linux-001Requirements: Docker, Bash, Git
breakops list # List all available labs
breakops start <lab-id> # Launch a broken environment
breakops hint # Progressive hint (run from another terminal)
breakops check # Validate your fix
breakops solution # Reveal the full solution
breakops reset # Reset the lab to broken state| Category | Status | Labs |
|---|---|---|
| 🐧 Linux / System | ✅ Available | 8 labs |
| ☸️ Kubernetes | 🔜 Coming soon | — |
| 🏗️ Terraform / IaC | 🔜 Coming soon | — |
| ⚙️ CI/CD | 🔜 Coming soon | — |
| ☁️ AWS | 🔜 Coming soon | — |
| ID | Title | Difficulty | Concept |
|---|---|---|---|
linux-001 |
Disk Full | 🟢 Easy | Disk usage, df, du, log cleanup |
linux-002 |
Permission Hell | 🟡 Medium | chmod, chown, file permissions |
linux-003 |
Service Won't Start | 🟡 Medium | nginx config, nginx -t, service debugging |
linux-004 |
Cron Gone Silent | 🟢 Easy | crontab, cron daemon, script permissions |
linux-005 |
SSH Lockout | 🟡 Medium | sshd_config, sshd -t, .ssh permissions |
linux-006 |
OOM Killer Strikes | 🟡 Medium | dmesg, ps, memory hog, pkill |
linux-007 |
Firewall Blocked | 🟡 Medium | iptables, port rules, ss -tlnp |
linux-008 |
Zombie Apocalypse | 🔴 Hard | Zombie processes, ppid, process reaping |
Each lab is a self-contained Docker container with a broken environment baked in.
labs/
linux-001-disk-full/
├── scenario.yaml # Title, objective, hints, difficulty
├── Dockerfile # Ubuntu base image
├── break.sh # Script that injects the problem
└── check.sh # Script that validates your fix
When you run breakops start linux-001, it:
- Builds a fresh Docker image with the broken state
- Drops you into an interactive shell
- Waits for you to fix the problem
- Runs
check.shto validate when you're ready
breakops start <lab-id> # Launch a lab
breakops list # List all available labs
breakops hint # Show the next hint (progressive)
breakobs check # Check if the lab is fixed
breakops solution # Show the full solution
breakops reset # Reset the lab to its broken stateEach scenario is described in a simple YAML file:
id: linux-001
title: Disk Full
category: linux
difficulty: easy
objective: "The application can't write logs anymore. Figure out why and fix it."
hints:
- "Start by checking the available disk space."
- "Which directory is consuming the most space?"
- "Logs are usually stored in /var/log — what do you find there?"
solution: |
The /var/log directory is full of artificially generated log files.
Run: du -sh /var/log/* to find the culprit.
Then: rm /var/log/app/debug.log.* to free up space.
Verify: df -h should show available space restored.BreakOps lives and grows through community contributions. Adding a new lab is straightforward:
- Fork the repo
- Copy
labs/_template/into a new folder:labs/<category>-<id>-<short-name>/ - Fill in
scenario.yaml,Dockerfile,break.sh,check.sh - Test it locally with
breakops start <your-lab-id> - Open a Pull Request
See CONTRIBUTING.md for the full guide and lab design principles.
- MVP — Linux labs + CLI
- Difficulty progression system
- Score & completion tracking (local)
- Kubernetes labs
- Terraform / IaC labs
- Web UI for lab browser
- Community lab submissions
- CI validation for contributed labs
MIT : free to use, fork, and contribute.
Built by DevOps engineers, for DevOps engineers. Break things. Fix them. Get better.