Discover

Tutorials, challenges, courses, skill paths, playgrounds, and more — search the whole library in one place.

Tutorial

Secure Machine-to-Machine Access with mTLS and Pomerium

Run a GitHub Actions-compatible continuous integration (CI) job on a private runner and protect its internal API call with mutual TLS (mTLS) and Pomerium. Build separate server and client trust chains, authorize one machine certificate by fingerprint, then revoke, restore, and rotate its credentials through live policy changes.

Secure Machine-to-Machine Access with mTLS and Pomerium (cover image)
See all tutorials →
Challenge

Use a Kubernetes Job to Test NATS Pub/Sub

A payment service subscribes to payment requests through NATS. Run the checkout team's test script as a Job in the checkout namespace, with the required settings, and make sure the payment request arrives.

Challenge

Reach a Linux Service Through an Interface It Doesn't Listen On

On a dual-homed Linux server, a service bound to the IP address of one interface may still accept connections that arrive through the other interface. Learn how to reach such a service through an interface it doesn't listen on, using a routing trick.

See all challenges →
See all courses →
Skill Path

Master SSH Tunnels: Local and Remote Port Forwarding

Learn how to reach an internal port on a remote machine from the local system, jump through a bastion into a private VPC, expose a development server to the Internet through a reverse tunnel, publish a home network device, and spin up a full-fledged SOCKS proxy with nothing but a regular SSH connection.

Skill Path

Master Container Networking

Do you want to troubleshoot container and Kubernetes networking issues like a true expert? This is a highly practical learning path that will take you from the basics of container networking like creating a network namespace, to more complex topics like configuring a bridge network and using iptables to set up network address translation (NAT) and port forwarding.

See all skill paths →
Playground on  Linux, Networking

FlexBox

Your perfect base playground. Create purpose-built sandbox environments by choosing up to five VMs with custom root filesystems and organizing them into any number of local networks.

Playground on  Networking

MiniLAN (Ubuntu)

Four refined Ubuntu VMs connected into a single network.

Playground on  Networking

MiniLAN (Ubuntu, Docker)

Four Ubuntu servers with Docker pre-installed connected into a single network.

Playground on  Networking, Containers

Docker Swarm

A three-node swarm accompanied by an ephemeral registry for ease of experimentation. Batteries included!

See all playgrounds →