Practice Linux, Ansible, Kubernetes, or Terraform skills through structured hands on labs.
Track certification style progress, such as RHCSA or LFCS practice, with saved scores and history.
Build a new training catalog by writing meta.yml and lab.yaml files without modifying the engine.
Verify a lab is actually fixed, including after a reboot, using real system state checks instead of trusting a completed step.
| stephrobert/dsoxlab | ar-ray-code/lingbot-depth-trt | hjcheng0602/paperwise | |
|---|---|---|---|
| Stars | 50 | 50 | 50 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | hard | moderate |
| Complexity | 4/5 | 5/5 | 3/5 |
| Audience | ops devops | researcher | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires Python 3.11+ and the uv tool, plus a separate lab catalog repository and infrastructure like Terraform, Incus, or KVM depending on the lab.
dsoxlab is a command line tool for running hands on learning labs, the kind used to practice skills like Linux administration, Ansible, Kubernetes, or Terraform. It does not contain any lab content itself. Instead it is a generic engine that reads lab catalogs stored in separate repositories, each one describing its labs through a standard set of YAML files. The core idea is that a lab hosting repository declares its structure with a meta.yml file at the root, listing things like the training's title, the virtual machines or containers each lab needs, and how labs are grouped into sections. Each individual lab then has its own lab.yaml file describing its title, difficulty, required skills, which virtual runtime it needs, and how it should be checked for completion. Because the tool only reads this shared format, the same engine can run a Linux troubleshooting lab or a Kubernetes lab without any special code for either one. Once you clone a lab repository and run the tool inside it, you can list available labs, view details about one, open its written course guide in your browser, start the lab environment, and run automated checks against it. Those checks use pytest together with a system testing library to verify the real state of the machine, including in some cases whether a fix survives a reboot, rather than just trusting that a step was completed. Labs can run in a plain shell, an Incus container, or a full virtual machine, depending on what each lab declares. Progress, scores, and hint usage are saved locally in a small database so you can track history and get a recommendation for what to try next. The interface is available in both English and French, and installation requires Python 3.11 or newer along with the uv tool. The project is released under the Apache 2.0 license.
A domain agnostic CLI engine that runs hands on technical training labs, like Linux or Kubernetes exercises, defined in separate YAML based repositories.
Mainly Python. The stack also includes Python, pytest-testinfra, Terraform.
Use, modify, and distribute freely, including for commercial purposes, as long as you keep license and copyright notices intact.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
double-check against the repo, no cap.