Tutorials

Deep dives into DevOps and server-side topics, combining theory with hands-on examples. Run every command in an attached remote playground, from your browser or local terminal over SSH — no setup required.

Collection
Category

Community Collection

Tutorials contributed by the community members sharing their knowledge and expertise.

Tutorial

Podman Configuration: Registries, Runtimes and Containers Without a Restart

This tutorial will help you configure your rootless podman instance to pull from only from specific registries, using different OCI runtimes as well as configure all containers to have specific attributes all without any daemon restarts or sudo calls.

Podman Configuration: Registries, Runtimes and Containers Without a Restart (cover image)
Tutorial

Change Your Root: Chroot Basics

Understand how the chroot system call changes the root directory for a process, learn how dynamic linkers resolve dependencies inside a jail, and see what an isolated process perceives as its filesystem root.

Change Your Root: Chroot Basics (cover image)
Tutorial

Using Go for Systems Programming

Discover how Go functions under the hood as a modern systems programming language. Learn how Go makes system calls directly, resulting in self-contained binaries that have no libc dependencies.

Using Go for Systems Programming (cover image)
Tutorial

Managing Podman Instances Remotely

Learn how you can control multiple podman instances on remote machines without SSHing into them manually. Also learn to deploy your Compose application stacks without SCP / SSH with podman remote feature and Docker Compose v2

Managing Podman Instances Remotely (cover image)
Tutorial

Build a Custom Rootfs Image That Boots as a microVM, Not a Container

A container image and a bootable root filesystem are not the same artifact. This tutorial builds both from the same Dockerfile so you can see exactly where they diverge: what a plain ubuntu:24.04 is missing, the five requirements an iximiuz Labs playground rootfs has to satisfy, and how to prove an image would boot without being able to boot it. Ends with the same image built the easy way, from the official rootfs base.

Build a Custom Rootfs Image That Boots as a microVM, Not a Container (cover image)
Tutorial

Linux Processes: Understanding Signals

Explore Linux/Unix signals in Go, how signals act as asynchronous notifications, who can send them, default kernel behaviors, sending signals with kill and Go, graceful signal handling with os/signal, and why SIGKILL cannot be trapped.

Linux Processes: Understanding Signals (cover image)
Tutorial

Podman with Kubernetes: Play Before You Apply

This tutorial provides an in-depth know-how of working with Pods (group of container) with Podman. It also gives insights into how the podman CLI works well with Kubernetes, albeit in limited capacity to develop better Container Workflows.

Podman with Kubernetes: Play Before You Apply (cover image)
Tutorial

Writing a (valid) C program without main()

Walk through the C compilation pipeline: preprocessor, compiler, assembler, and linker. Start with a normal hello world, inspect macros and generated assembly, and end by producing a running binary that has no main() function.

Writing a (valid) C program without main() (cover image)
Tutorial

Kubernetes Debugging with DebugBox: Right-Sized Containers for Every Scenario

Most Kubernetes debugging images ship as a single 200+ MB package. DebugBox takes a different approach: three variants (15 MB, 47 MB, 91 MB) each scoped to a specific debugging task. This tutorial covers when to use lite, balanced, and power, how to run each as an ephemeral container or debug pod, and what tools are available in each variant.

Kubernetes Debugging with DebugBox: Right-Sized Containers for Every Scenario (cover image)
Tutorial

Podman and Linux Namespaces

Understand how podman works with configured Linux User Namespaces and how to configure / update these namespaces for current users.

Podman and Linux Namespaces (cover image)
Tutorial

Combining 2FA and Public Key Authentication for a better Linux SSH security

Take a stock Debian SSH server and harden it the way you would in production: replace passwords with public-key auth, disable root login, add a TOTP second factor with PAM, and move off port 22, then prove it works by logging in, all inside the playground.

Combining 2FA and Public Key Authentication for a better Linux SSH security (cover image)
Tutorial

Kubernetes Kill Chain

Hands-on Kubernetes security workshop using the ShopWave demo app. Explore attack paths against a realistic e-commerce stack: Next.js storefront, FastAPI order service, and a notification webhook.

Kubernetes Kill Chain (cover image)
Tutorial

Hands-On Introduction to Unikernels

Learn what a unikernel is and how it compares to a Linux container. Build and run your first unikernel inside a playground box.

Hands-On Introduction to Unikernels (cover image)