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

A service that respects its neighbors

Running beside other projects requires limits and clear process ownership. A service file can fail before creating any container.

Learning paths30 min

Let's discover together

  1. 1

    Optional Linux extension: requires a user systemd session, Podman with Quadlet and cgroup v2. A regular container or macOS/Windows terminal does not automatically provide this. Check versions; do not change another person’s services.

  2. 2

    Read deploy/mission-lab.container. Image points to an already built image. PublishPort keeps loopback. The service uses its own volume and MemoryMax=256M/CPUQuota=50% as initial lab limits, not guaranteed capacity.

  3. 3

    Before installing, validate in an isolated directory using QUADLET_UNIT_DIRS and your installation’s generator, as explained in LAB.md and the documentation. An unknown option can prevent mission-lab.service generation. Do not conclude Rust is broken.

  4. 4

    Only in your own lab user: preserve any existing file, install the Quadlet in ~/.config/containers/systemd, reload the generator with systemctl --user daemon-reload and start mission-lab.service. Stop/remove the manual container with that name first. This guide does not enable automatic startup.

  5. 5

    Inspect status and journal, make a request, then stop only mission-lab.service. If the environment lacks prerequisites, submit your file analysis and the pending requirement; that does not count as execution.

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.

podman version
podman info --format "{{.Host.CgroupsVersion}}"
systemctl --user status mission-lab.service
journalctl --user -u mission-lab.service -n 30 --no-pager
My evidence record

Explain each limit and record how you would identify insufficient memory or configuration failure. Do not increase shared-service resources without measuring the effect on others.

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

Inspect a rootless Quadlet and diagnose a missing generated unit.

Now it's your turn

Discovery workshop

Decide using evidence

The generator rejected an option. No board process started.
Build your answers and check when you are ready.
A moment to understand

What should you first check after “Unit not found” for a Quadlet?

I need a hint

Quadlet generates a systemd unit. Failure at that stage may prevent the service from existing; limits and logs help locate the fault.

Loading your journey…

Take it with you

Explain each limit and record how you would identify insufficient memory or configuration failure. Do not increase shared-service resources without measuring the effect on others.

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.