Configuration files
This reference describes the configuration files that make up Instruqt tracks.

What are configuration files?

Instruqt tracks are Infrastructure-as-Code artifacts and are made up of configuration files that contain all the properties and settings for tracks in YAML and Markdown format. You manage these files either from Web UI or Instruqt CLI. For example, the configuration file track.yml sets track characteristics and can look something like this:
YAML
1
slug: mytrack
2
id: baekpuxv2m5g
3
type: track
4
title: MyTrack
5
teaser: Get started quickly with just one container-based sandbox host.
6
description: Get started quickly with a container-based sandbox host. Choose a container
7
when you need a fast, lightweight Linux system.
8
icon: https://cdn.instruqt.com/assets/templates/ubuntu.png
9
tags: []
10
owner: myteam
11
developers:
13
maintenance: true
14
show_timer: true
15
skipping_enabled: true
Copied!
↳ You probably recognize tracks details like title and teaser as you set them from Web UI. But you can also set these properties by manipulating the track.yml file from your code editor and push your changes with Instruqt CLI to the Instruqt platform.
YAML spaces for indentation
YAML files use spaces for indentation. You can use 2 or 4 spaces for indentation, but no tabs.

Where do you find the configuration files?

If you created a track with Instruqt CLI or pulled a track to your machine, you will find the configuration files inside the track directory and subdirectories:
1
# Example directory layout with track configuration files
2
.
3
├── 01-first-challenge # <- First challenge
4
| ├── assignment.md # <- Challenge assignment and configuration
5
│ ├── check-host01 # <- Challenge lifecycle scripts
6
│ └── solve-host01
7
├── 02-second-challenge # <- Second challenge
8
| ├── assignment.md
9
│ ├── setup-host01
10
│ ├── check-host01
11
│ ├── solve-host01
12
│ └── cleanup-host01
13
├── track_scripts # <- Track lifecycle scripts
14
│ ├── setup-host01
15
│ └── cleanup-host01
16
├── config.yml # <- Sandbox configuration
17
└── track.yml # <- Track configuration
Copied!

What configuration files are there?

Continuing on the example directory with track configuration files, Instruqt has the following configuration files:

Track level

  • config.yml Contains the sandbox definition. See the Sandboxes topic for details.
  • track.yml Contains the track definition. See the Tracks topic for details.
  • setup-host Contains a script for setting up the track. See the Lifecycle scripts topic for details.
  • cleanup-host Contains a script for cleaning up the track. See the Lifecycle scripts topic for details.

Challenge level

  • assignment.md Contains the challenge definition in a combination of YAML and Markdown. See the Challenges topic for details.
  • setup-host Contains a script for setting up the challenge. See the Lifecycle scripts topic for details.
  • check-host Contains a script for checking if the learner solved the challenge. See the Lifecycle scripts topic for details.
  • solve-host Contains a script for automatically solving a challenge when the learner skips a challenge or when you test a track. See the Lifecycle scripts topic for details.
  • cleanup-host Contains a script for cleaning up the challenge. See the Lifecycle scripts topic for details.

Editing configuration files

You edit configuration files from your code editor. And when you are done, you push your updated track to the Instruqt platform:
1
instruqt track push
Copied!