Featured notes

Useful notes from the archive.

How to set up a single-node object storage for your homelab

Build your own S3-compatible storage with Garage, a lightweight, distributed storage solution delivered as a single binary that’s ideal for homelab deployments.

October 20, 2026 · 13 min · 2625 words · Debian · S3 · Debian Trixie

How to create single-node k0s Kubernetes instance

Create a single-node k0s Kubernetes instance. k0s is a lightweight, self-contained distribution packaged as a single binary with no external dependencies, making it straightforward to run a fully functional cluster on a single machine.

August 18, 2026 · 7 min · 1361 words · Kubernetes

How to upgrade Debian Bookworm to Trixie

Upgrade Debian Bookworm to Trixie.

November 20, 2025 · 22 min · 4620 words · Debian · Debian Trixie, Debian Bookworm

How to generate recovery data for your files

To generate recovery data for your files using PAR2, you are essentially creating a Reed-Solomon matrix which is a mathematical construct that encodes your original data with redundancy, allowing for the reconstruction of missing or corrupted information.

September 30, 2025 · 10 min · 1968 words · Debian · Debian Trixie

How to automate APT logging with JSON using hooks

Automate APT logging with JSON using hooks.

April 8, 2025 · 18 min · 3721 words · Debian · Ubuntu

How to configure Ingress-NGINX Controller without a load balancer in Kubernetes

Last year, I described how to install Ingress-Nginx Controller, but at home, I prefer to configure the Ingress-NGINX Controller without a load balancer in Kubernetes.

April 17, 2024 · 7 min · 1459 words · Kubernetes

How to utilize SOPS with Age encryption

Utilize SOPS with Age encryption to protect secrets inside git repository.

March 20, 2024 · 10 min · 1977 words · Kubernetes

How to install Ingress-Nginx Controller

Install Ingress-Nginx Controller and MetalLB load-balancer.

December 13, 2023 · 3 min · 539 words · Kubernetes

How to configure Consul Access Control Lists

Configure Consul Access Control Lists.

September 23, 2022 · 4 min · 834 words · Consul

How to solve netcat mystery X

Funny netcat issue with additional X characters sent over UDP protocol and why this is not a problem.

December 17, 2021 · 6 min · 1200 words · Ubuntu · Ubuntu Impish Indri

How to protect system against accidental shutdown

Protect the operating system against accidental shutdown or reboot.

How to solve pipeline mysteries

I have already described how to inspect a pipeline, but today I will show you how to write a shell script that will help you reconstruct a whole pipeline when all you got is a process ID that is part of the pipeline.

How to avoid the two most common caveats when using read command

These are easy mistakes to make as the bash builtin read command will terminate with the error exit code on the end-of-file condition and use Internal Field Separator to split the line into words. It is kind of tricky, but it is worth knowing how to deal with such problems.

How to drop kernel caches

Learn how to free dirty objects, page cache, and reclaimable slab objects for troubleshooting or instructional purposes.

How to perform incremental backup using rdiff-backup

Perform simple incremental backup using rdiff-backup utility.

How to setup private Docker registry

Set up a simple Docker registry to use it privately or share images with a team of developers.

April 16, 2018 · 4 min · 641 words · Debian · Docker · Debian Stretch

How to parse free output to display available memory

The free utility is used to display the amount of free and used memory in the system. Debian Stretch provides an upgraded package. The output format has changed, and available memory is calculated using a different method, so let’s see what we can do with these modifications at this moment.

How to mount WebDAV share using systemd

You can check my earlier blog post on how to mount WebDAV share using command-line or fstab (file systems table), but you are not limited to these two options as you can use systemd to take care of the whole process and automount WebDAV resource on demand.

How to perform PostgreSQL point-in-time recovery

This blog post is an update to the earlier PostgreSQL entries in which I will show you how to use continuous Write Ahead Log archiving to take advantage of the point-in-time recovery.

February 29, 2016 · 12 min · 2462 words · Debian · PostgreSQL · Debian Jessie

How to replace failed software RAID device

I had an unexpected incident last week as one of the hard disks in my server failed. This device was a part of a software RAID mirror, which created an opportunity to describe the whole process.

How to store last command from history

I often want to save a recently executed command to the personal log file for further reference, so let’s do it.

How to set up SSH port forwarding

SSH port forwarding is a nice feature that allows you to create encrypted tunnels over an unsecured network. It is easy and straightforward to remember and use in daily work so I will describe it here with couple of examples.