DevOps Playgrounds by Adam Leskis
Remote sandboxes for learning and experimentation — fresh Linux VMs, Docker hosts, or Kubernetes clusters in seconds.
Break Team
A small shop runs on a k3s cluster across several VMs, with real traffic and a steady stream of routine events. Start a shift with your team. Something will go wrong. Find it, fix it, and check that it stays fixed.
GitLab CE on Kubernetes
A multi-node kubeadm cluster that installs GitLab CE with the official Helm chart at startup, with in-cluster PostgreSQL, Redis, RustFS object storage, Container Registry, and an Envoy HTTPS Gateway.
PostgreSQL Debezium
Watch a three-member Patroni PostgreSQL 16 cluster fail over while Debezium keeps streaming outbox events to Kafka.
Grafana Alerts Lab
Explore metrics from five services across multiple VMs, trigger a Grafana alert, and watch its webhook appear in the lab.
GraphQL Security Lab
A stock Django + Strawberry GraphQL API with five classic weaknesses to probe and harden.
Doom Perf Lab
Explore live host CPU/Memory/Disk/Network telemetry as an interactive Doom diagnostics lab. All the elements in the game react to system signals (eg, the cpu cores glow red when there's high utilization).
Flame Practice
Practice Linux flame graph profiling against randomized live CPU scenarios.
Swap-rithms Algorithm Lab
Compare Go, Python, and TypeScript implementations of the same profile lookup algorithms under load.
USE Practice
Practice Linux USE-method investigations against randomized host-level scenarios. It already has the investigation and load generating tools installed, so you can begin with that, or just run a free-form investigation.
Cloud Tracing Lab
Diagnose realistic distributed tracing scenarios in a preloaded k3s VM, for users to get more familiar with traces in general and jaeger-ui specifically. There's guided investigation through distributed traces, along with identification of slow spans and comparing two traces to identify what changed to make it slow down.
Log Parser
A playground that generates one log parsing activity at a time, and regenerates a new one when you complete each activity. It uses authentic log formats such as nginx access logs and syslog entries to simulate real parsing needs. The operator avoids repeats until it has exhausted the full activity list, then starts a new randomized cycle. Github: https://github.com/lpmi-13/logparser-lab-operator
OWASP K8s Vulnerable Cluster
This playground presents a k3s cluster that has randomized security vulnerabilities injected based on the OWASP Kubernetes Top 10 list for 2025. Run a scan to find what's wrong, then fix it and get another random vulnerability automatically injected. Play as long as you like!
Tailscale Homelab Access
A multi-node K3s cluster to demo connecting and troubleshooting a homelab remotely via tailscale. All username/passwords are admin/admin123
An R Mapping Tutorial for Linguistics
Follow along with an exciting ggplot2 tutorial to map out some cool linguistic stuff!