Rullst AcademyRullst Academy/Lesson
From application to release with Rullst · Lesson 02 / 12

Configure without hidden surprises

The same program can use different databases. Let’s make that choice visible, small and validated before opening the server.

Learning paths25 min

Let's discover together

  1. 1

    Read .env.example and src/deployment.rs. The kit uses MB_MODE, MB_DATABASE and MB_RELEASE. It does not automatically load .env: the example is a reference, and README.md shows PowerShell and Bash/zsh.

  2. 2

    Stop the server. Set MB_MODE=local, MB_DATABASE=practice.db and MB_RELEASE=lesson-v1 using your shell syntax. Run serve. The board is empty because you chose another file; this does not prove the earlier database was lost.

  3. 3

    Stop and change MB_MODE to locla. Predict first: should the process reject the value or open a public port? Run and compare. Correct it to local. The configuration_rejects_unsafe_mistakes_without_echoing_values test checks this refusal.

  4. 4

    MB_RELEASE allows letters, numbers, dots, hyphens and underscores, up to 40 characters. It is a public label, not a password field. This lab requires no credentials. .gitignore does not remove an already committed secret.

  5. 5

    Set MB_DATABASE back to missions.db and verify the earlier mission. When done, remove the three variables as shown in README so the next session has no surprises.

From reasoning to execution

The core path runs on your computer with fictional data. Podman, Quadlet and Caddy are optional extensions; no domain purchase or cloud subscription is needed. This lab is not ready for public writes.

Read the steps before running anything. The commands below are a reference; README.md explains your OS syntax and LAB.md contains the sequence. The site does not run these commands for you.

cargo test --locked configuration_rejects_unsafe_mistakes_without_echoing_values
My evidence record

Create two fictional files in separate sessions with a different mission in each. Without deleting anything, explain which variable switches the visible board and record a rejected configuration.

Separate prediction, execution and observed result. Record “not executed” when the environment is missing. Site progress does not validate real deployment or grant professional certification.

My files and GitHub

Official links and next step

✦
YOUR MISSION

Set terminal variables, provoke invalid configuration and fix its cause.

Now it's your turn

Discovery workshop

Decide using evidence

A colleague put MB_RELEASE=my-password and MB_MODE=locla in an example intended for Git.
Build your answers and check when you are ready.
A moment to understand

The board is empty after changing MB_DATABASE. What is the first diagnosis?

I need a hint

Changing the destination changes visible data. Invalid configuration should fail early; valid configuration still needs to select the intended file.

Loading your journey…

Take it with you

Create two fictional files in separate sessions with a different mission in each. Without deleting anything, explain which variable switches the visible board and record a rejected configuration.

At your own pace

My files and GitHub

Every lesson can become your own record: code, notes or a practice plan. Saving a file to GitHub is optional and does not change your XP.

Student guide

The editor and downloads open when this lesson is available to your account. Check access below or return to the track map.

Checking your access to this lesson…

Rullstpetbot

AI can make mistakes. Check the lesson material.