Categories

  • One objective, not a syllabus

    Every pill declares what you will be able to build and run in production by the end. If you do not leave with that working, the pill failed.

  • Six seats

    Tiny groups, so nobody gets stuck in silence.

  • Nobody arrives unprepared

    Before the session you verify your machine with a script and prove the prerequisites. That way your hours are spent building, not troubleshooting somebody else's setup.

  • Metered to the minute

    The full agenda is published before you buy. It starts and ends when it says.


Free hands-on labs

How-to videos with reproducible steps — every command really ran. Start here.

Upgrade Jellyfin from 10.11 to 12 in Docker with a Backup and Rollback

Upgrading Jellyfin from 10.11.11 to 12.0 in Docker requires copying the /config volume first, because 12.0 rewrites the database. In this lab you take the copy with a helper container, migrate, read version 12.0.0 from the API and confirm that going back only works by restoring that copy.

  • 9 steps

How to upgrade Gitea 1.27 to 28 with Docker without losing webhooks

To upgrade Gitea 1.27 to 28 with Docker, stop the container, back up the /data volume, delete the legacy egress keys from app.ini and change GITEA_TAG to 28.0.0. In this lab 28 starts with 13 migrations and 0 errors, and the repository and webhook created on 1.27.3 keep working.

  • 8 steps

How to Run OpenBao in Docker with Raft Storage

OpenBao is the MPL 2.0 secrets manager that keeps Vault's API. In this lab you run it in Docker with the 2.6.2 image and Raft storage, initialise it with 5 keys, unseal it with 3, store and read a secret in KV v2 and take a Raft snapshot as a backup.

  • 9 steps

See all hands-on labs