Windows Subsystem for Linux (WSL) provides an excellent way to run Linux distributions on Windows, but it has a limitation: you can only install one instance of each distribution from the Microsoft Store. If you're already running a WSL distribution and want a fresh, separate Debian environment — perhaps for testing the upcoming Trixie release — you'll need a workaround. The solution is to use Docker to export a clean Debian rootfs and import it as a new WSL instance.
Git commit signing is a great way to prove the authenticity of your commits. While GPG has long been the standard, SSH signing is a newer and simpler alternative that uses the SSH keys you may already use for authentication. In this guide, we’ll walk through setting up SSH signing for Git on your local machine.
Secure Shell (SSH) is a fundamental tool for developers, system administrators, and anyone requiring secure remote access to servers and systems. SSH keys provide a more secure method of authentication than traditional passwords by using a private-public key pair. This blog post guides you through setting up ed25519 SSH keys and configuring ssh-agent in both Windows Subsystem for Linux (WSL) and native Linux environments to enhance the security and simplicity of your remote connections.
When working with MongoDB, there are times when you need to migrate data from one database to another. This could be for backup purposes, testing, or moving a production database to a new environment. In this post, I'll guide you through the process of dumping data from a MongoDB database named db1 and restoring it to another database named db2. This is a common task for database administrators and developers alike.
journalctl is a powerful command-line utility for querying and displaying messages from the journal, managed by systemd-journald. It is commonly used on Linux systems to retrieve and analyse log data. This guide aims to provide instructions on using journalctl based on the questions you've previously asked.
The git reset command in Git allows you to undo commits and manipulate the state of your repository. It can be a tricky and potentially dangerous tool if used incorrectly, but it's very useful for backing out changes, correcting mistakes, and rewriting commit history. This post will cover common uses cases and options for git reset.
Encrypted disk images allow you to securely store sensitive files on your Linux system. The contents of the image can only be accessed by providing the correct passphrase. In this post, we'll walk through creating an encrypted image using the cryptsetup utility on Debian 12.
Traefik is a popular open source edge router and reverse proxy that makes deploying microservices easy. It integrates with Docker and automatically configures SSL certificates via Let's Encrypt.
The Python requests module is an elegant and simple HTTP library for making requests in Python. Requests allows you to send HTTP requests extremely easily. No need to manually add query strings to URLs, or form-encode your POST data. Keep-alive and HTTP connection pooling are 100% automatic, thanks to urllib3.
The logging module in Python provides a standardized way to record diagnostic and runtime information from your programs. The key benefits of logging are the ability to:
nftables is the new packet filtering framework built into the Linux kernel that replaces the older iptables technology. This tutorial will cover the basics of using nftables to configure a simple firewall on a Linux system.
Python 3.11 introduced a new and improved argument parser in the argparse module. The new argument parser provides several handy features that make it easier to parse command line arguments in Python scripts. In this post, we'll take a look at how to use Python's new argument parser.
Git is a distributed version control system that allows teams to collaborate on code and track changes efficiently. Whether you're a solo developer or working on a large team, learning Git is essential for managing your projects. This post will provide a beginner's guide to getting started with Git.