Installing Debian Trixie in WSL Using Docker

Posted on January 16, 2026

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 …

devops linux sysadmin wsl

Signing git commits with SSH keys

Posted on April 23, 2025

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 …

devops git ssh

Automating Tasks with systemd timers

Posted on May 15, 2024

Automating Tasks with systemd timers Automating repetitive tasks is a key part of system administration, and traditionally, cron has been the go-to tool for this purpose. However, systemd timers offer a more powerful and flexible alternative. In this …

devops mongodb

Setting Up ed25519 SSH Keys and ssh-agent in WSL and Linux

Posted on May 10, 2024

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 …

devops mongodb linux sysadmin

How to Migrate Data from One MongoDB Database to Another

Posted on May 8, 2024

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 …

devops mongodb

Using journalctl

Posted on February 6, 2024

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 analyze log data. This guide aims to provide instructions on using …

devops

Using git reset

Posted on October 3, 2023

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 …

sysadmin devops linux git programming

Setting up an encrypted disk image on Debian 12 with Cryptsetup

Posted on September 10, 2023

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 …

debian sysadmin devops

Running Traefik in Docker

Posted on December 9, 2022

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. In this post, we’ll be installing and …

traefik docker sysadmin devops

Installing Docker on Debian 11

Posted on December 1, 2022

This should work as-is with Debian 12. Prerequisites Debian 11 (Bullseye) One of the following architectures; x86_64 amd64 armhf arm64 Remove any previously installed versions of Docker sudo apt-get remove docker docker-engine docker.io containerd …

debian docker sysadmin devops linux

Securing SSH with ssh keys

Posted on November 23, 2022

In this article I’m going to describe how to secure a SSH server, so that it will only accept logins with ssh keys. Generate a set of personal ssh keys If you have already done this, you can skip this step. $ ssh-keygen The output should look …

sysadmin devops linux ssh

Using Python requests

Posted on November 17, 2022

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 …

python programming devops

Using Python logging

Posted on November 3, 2022

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: Log messages with different verbosity levels (debug, info, warning, error) …

devops python programming

Using Linux nftables

Posted on October 15, 2022

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. Installing nftables Most …

debian sysadmin devops linux

Using Python argparse

Posted on October 1, 2022

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 …

python programming devops

Getting started with Git

Posted on September 14, 2022

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 …

sysadmin devops linux programming git

Git

Posted on January 1, 0001

Setup git config --global user.name "Your Name" git config --global user.email "you@example.com" Basics git init # Initialise a new repo git clone <url> # Clone a remote repo git status # Show working tree status git add …

git devops

tmux

Posted on January 1, 0001

TMUX Cheatsheet (with Ctrl+A modifier) Session Management Command Action tmux new-session -s name Create new session named “name” Ctrl+A :new-session -s name Create new session from within tmux tmux ls List all sessions Ctrl+A s List …

git devops