Installing Debian Trixie in WSL Using Docker
Build a fresh Debian Trixie WSL instance from a Docker rootfs, sidestepping the Microsoft Store's one-instance-per-distribution limit.
- devops
- linux
- sysadmin
- wsl
From the team
Practical guides on DevOps, Linux, Git and programming. Written by our engineers and co-authored with AI — the same way we build software.
Build a fresh Debian Trixie WSL instance from a Docker rootfs, sidestepping the Microsoft Store's one-instance-per-distribution limit.
Sign your Git commits with the SSH key you already use for authentication — simpler than GPG, and verified on GitHub with an allowed-signers file.
Lightweight and annotated Git tags, when to use each, and how to create, push, list and delete them for marking releases.
Replace cron with systemd timers — writing the service and timer units, choosing between monotonic and calendar schedules, and checking they fired.
Generate ed25519 SSH keys and set up ssh-agent on Linux and WSL so your passphrase is entered once per session rather than on every connection.
Move a MongoDB database between environments with mongodump and mongorestore, including renaming the target database along the way.
Query systemd logs with journalctl: filtering by unit, time range and priority, following live output, and controlling how much disk the journal uses.
What git reset actually does — soft, mixed and hard — with worked examples for undoing commits and unstaging files without losing work.
Create an encrypted disk image on Debian 12 with cryptsetup and LUKS — formatting, mounting, and keeping sensitive files behind a passphrase.
How JavaScript's optional chaining operator replaces defensive null checks when reading nested properties, and where it stops helping.
FizzBuzz in Python and JavaScript, why interviewers still ask it, and what a clean solution looks like in each language.
Replace loops with map, reduce and filter in JavaScript and Python for array code that reads as what it does rather than how it does it.
Two approaches to the classic anagram interview question — sorting and character counting — implemented in both Python and JavaScript.
Run Traefik as a reverse proxy in Docker Compose, with automatic Let's Encrypt certificates and container routing configured through labels.
Install Docker Engine on Debian 11 or 12 from Docker's official repository, including a clean-up path if a previous installation is in the way.
Lock down an SSH server so it only accepts key-based logins: generating a key pair, installing the public key, and safely disabling password authentication.
Making HTTP requests in Python with the requests library — GET and POST, query strings, headers, JSON payloads and handling the response.
Replace print statements with Python's logging module: verbosity levels, handlers, formatters, and sending log output where you actually need it.
Configure a basic Linux firewall with nftables, the packet filtering framework that replaces iptables — tables, chains, rules and making them persist.
How to parse command line arguments in Python with argparse, including the improvements Python 3.11 brought to the module.
A beginner's guide to Git — installing it, setting your identity, staging and committing changes, and understanding how distributed version control works.