explaingit

stephrobert/dsoxlab

Analysis updated 2026-05-18

50PythonAudience · ops devopsComplexity · 4/5LicenseSetup · moderate

TLDR

A domain agnostic CLI engine that runs hands on technical training labs, like Linux or Kubernetes exercises, defined in separate YAML based repositories.

Mindmap

mindmap
  root((repo))
    What it does
      Load lab catalogs
      Provision environments
      Grade with pytest
      Track progress locally
    Tech stack
      Python
      pytest-testinfra
      Terraform
      Ansible
    Use cases
      Practice Linux troubleshooting
      Run Kubernetes exercises
      Track certification prep progress
    Audience
      DevOps learners
      Trainers
    Runtimes
      Shell
      Incus container
      KVM virtual machine

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Practice Linux, Ansible, Kubernetes, or Terraform skills through structured hands on labs.

USE CASE 2

Track certification style progress, such as RHCSA or LFCS practice, with saved scores and history.

USE CASE 3

Build a new training catalog by writing meta.yml and lab.yaml files without modifying the engine.

USE CASE 4

Verify a lab is actually fixed, including after a reboot, using real system state checks instead of trusting a completed step.

What is it built with?

Pythonpytest-testinfraTerraformAnsible

How does it compare?

stephrobert/dsoxlabar-ray-code/lingbot-depth-trthjcheng0602/paperwise
Stars505050
LanguagePythonPythonPython
Setup difficultymoderatehardmoderate
Complexity4/55/53/5
Audienceops devopsresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

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.

Use, modify, and distribute freely, including for commercial purposes, as long as you keep license and copyright notices intact.

In plain English

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.

Copy-paste prompts

Prompt 1
Help me install dsoxlab with uv and run its doctor command to check my local toolchain.
Prompt 2
Walk me through cloning a lab catalog repository and running my first lab with dsoxlab list-labs and dsoxlab run.
Prompt 3
Explain how meta.yml and lab.yaml work together to define a lab, so I can write my own training catalog.
Prompt 4
Show me how dsoxlab check uses pytest-testinfra to verify whether I actually fixed the lab environment.

Frequently asked questions

What is dsoxlab?

A domain agnostic CLI engine that runs hands on technical training labs, like Linux or Kubernetes exercises, defined in separate YAML based repositories.

What language is dsoxlab written in?

Mainly Python. The stack also includes Python, pytest-testinfra, Terraform.

What license does dsoxlab use?

Use, modify, and distribute freely, including for commercial purposes, as long as you keep license and copyright notices intact.

How hard is dsoxlab to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is dsoxlab for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.