Not a reconstructed screenshot. The fields below are read from the missions repository, and you can check them there.
linux/beginner/lost-password
root@srv-01:~# ▋
What is VMascourse?
Skydata’s Mission as a Service product. It hands over a real system, already broken, and records what was done to repair it.
WHAT YOU GET
A complete environment that boots in seconds, with an incident already under way. Nothing to install.
WHAT YOU DO
You diagnose and repair, with the system’s real tools. Help arrives graded, never the answer.
WHAT YOU LEAVE WITH
The written record of what was repaired, and how. No badge, no points, no level.
The real is our material.
How does a mission work?
A mission is a versioned folder: the incident, the environment that reproduces it, and the script that checks the repair. The three blocks below are read from that folder.
A published mission
A REAL MISSIONvmascourse-missions/linux/beginner/lost-password/mission.yaml
The morning report never arrived
easy25 minbeta
SYMPTOM
The automated morning report didn't run; the dashboard shows no data and today's report file is missing.
SUCCESS CRITERIA
01The reporting job's credential authenticates again: a fresh run can connect to the analytics database.
02Today's morning report exists and contains the real numbers from the source data, not an empty or placeholder file.
03Database access is still properly secured: legitimate consumers still authenticate and wrong credentials are still rejected.
SKILLSpostgresqlpsqlgrepless
What the validator refuses
Four checks, and two of them refuse a repair that would break something else. That is what makes the measure unavoidable: to pass it, you have to do the work.
REAL VALIDATIONvmascourse-missions/linux/beginner/lost-password/validate.sh
Refusedthe reporting job still cannot authenticate with the credential in its config.
Finding the password is not enough — the job itself must be able to log in.
Refusedtoday's report ($REPORT) does not exist — the report was not produced.
Restore the job and run it so today's Morning Numbers are generated.
Refuseda legitimate consumer can no longer authenticate — you broke database access.
A fix that breaks someone else is not a fix.
Refusedthe database accepted a WRONG password — authentication is no longer enforced.
Loosening auth (e.g. 'trust') is not a fix; it removes security for everyone.
What the person takes away
No badge, no points, no level. The written record of what was repaired — and it belongs to the person.
Resolved4 min 12 sVM-0001
The morning report never arrived
An overnight password rotation desynchronised the job secret from the one the database expected.
The job was reconfigured with the current secret, without loosening authentication.
Today’s report was produced with the real numbers.
WHAT THE PERSON CAN NOW DO
Diagnose a service that starts but fails to authenticate, and repair it without degrading security for other consumers.
Why is this not a classic lab?
The difference is not the content, it is what gets measured. A lab checks that you followed the steps. VMascourse checks the state of the machine.
Why is this not a classic lab?
ON THIS POINT
A CLASSIC LAB
VMASCOURSE
The starting point
A CLASSIC LABA healthy system and an instruction to apply.
VMASCOURSEA system already broken and a symptom to explain.
The path
A CLASSIC LABNumbered steps, in the intended order.
VMASCOURSENo imposed path: every command works.
The measure
A CLASSIC LABThe commands typed, or a quiz at the end.
VMASCOURSEThe state of the system, checked by a script running inside it.
Failure
A CLASSIC LABA right answer missed.
VMASCOURSEA repair that breaks something else, and the validator refuses it.
The record
A CLASSIC LABA score, a badge, a percentage.
VMASCOURSEThe written account of what was repaired, and it belongs to the person.
What runs under a mission
WHAT ACTUALLY RUNSvmascourse-missions/linux/beginner/lost-password/docker-compose.yml
What actually runs
LAYER
WHAT RUNS
WHY THIS CHOICE
Environnement
Docker Compose
Un système complet, isolé, jetable
Image de base
vmascourse/base-lab-pg:v2
Debian 12 + PostgreSQL 16
Validation
POSIX shell
Aucune dépendance : le script tourne dans l’environnement lui-même
Définition
YAML + JSON Schema
Une mission mal formée casse la CI, pas la production
Contenu
Markdown versionné
Relu en pull request, comme du code
How do you start?
In this order. Nothing requires an account before the third step.
01
Try the demonstration
Two minutes, a terminal, a real incident. No sign-up and no installation.
02
Browse the catalogue
Eleven missions published in beta. Each page gives the symptom, the duration and the success criteria.
03
Talk to an engineer
Thirty minutes to frame the missions your teams need, and what they have to prove.
Eleven Linux missions, from intro to expert. Six domains have their structure and no mission written yet: they are announced as such.
Linuxplanned
Containersplanned
Cloudplanned
Streamingplanned
Networkingplanned
Securityplanned
Dataplanned
vmascourse-missions · 2026-10-24
Questions
Do I need an account to try one?
No. A mission opens and the environment starts with no sign-up.
Are the environments real?
Yes. Each mission brings up a full Docker stack: Debian 12 and PostgreSQL 16 for the mission shown here.
How does validation work?
A POSIX script runs inside the environment and checks the state of the system, not the commands typed. It also refuses repairs that break something else.
What is in the catalogue today?
Eleven Linux missions published in beta. The six other domains exist as structure and have no mission written yet.
Watch a mission play out.
Thirty minutes with an engineer. A real incident, your context, your teams.