RSSAmplifier

Blog

Rootknecht.net! on Rootknecht.net

Recent content in Rootknecht.net! on Rootknecht.net

rootknecht.netRSS feed ↗86 posts

Latest posts

Reducing the blast radius of running pi.dev

A practical look at making Pi safer to use: isolating each project in a Tart-based virtual machine, sharing only the required directories, and using Pi extensions to block risky access patterns and destructive Git commands.

German Language Support

This blog now supports German language

Setting up a selfhosted KOReader Sync featuring XTEINK

How to self-host a KOReader sync server using kosync-dotnet and Docker, wire it up behind Nginx, and connect it to a Crosspoint-flashed XTEINK device — including a fix for the “document hash not found” error on first sync.

My self-hosted setup in 2026

A walkthrough of my personal self-hosted infrastructure for 2026: what I run on Unraid at home, what lives on a rented root server, and how I handle backups.

I Tried to Replace Obsidian — and Ended Up Appreciating It Even More

I tested AFFiNE, Anytype, and Appflowy as self-hosted alternatives to Obsidian. The result surprised me — and changed how I see Obsidian.

My Reflection on Onyx Boox, Remarkable, and Supernote E-ink Note-Taking Devices

A long-term comparison of Supernote, Remarkable, and Onyx Boox E-ink note-taking devices, focusing on writing feel, software, privacy, and real-world use.

Restore an Azure DevOps repo with style (feat: kulala.nvim)

How to use .http files with Neovim to restore a deleted Azure DevOps repository

First look at Supernote private cloud setup

Setting up a self-hosted Supernote private cloud using Docker compose and Nginx.

Two years with Kagi (search engine)

My experience after two years of using Kagi as a paid, privacy-focused search engine alternative to Google.

Minimal Network Security Group for Azure Container App

This post provides a Terraform NSG configuration that enables Azure Container Apps to work properly while maintaining strict network security.

Single binary fileserver based on Go's 'embed' feature

Poor Man’s Web Framework: How Go’s embed Package Replaces Your Entire Web Stack

Basic SNAT with nftables and iptables

SNAT replaces a client’s IP with a static IP to simplify; this can be set up using iptables or nftables, as shown in a Docker example.

Self-Hosted Static IP Tunneling with Headscale

How to use Headscale and Tailscale for static IP routing on Debian and macOS.

Proxy a database via SSH

A brief demonstration of how to connect to a PostgreSQL database via SSH, implemented using Docker Compose.

Debloating my Neovim configuration

Back to the basics: a little journey about a custom Neovim configuration that got out of control and how I simplified my setup to make it faster and more maintainable than ever.

Onyx Boox Note Air 3 C vs Remarkable 2

A comparison between the Onyx Boox Note Air 3 C and the Remarkable 2 reveals that both are highly capable E-ink note-taking devices, but they also differ in various aspects..

CAT S22 Flip as iPhone replacement in 2024

I bought a 2019 (not so dumb) feature phone in the year 2024. Here is why I did so and if it could replace my Apple iPhone 15 Pro.

Passwordless Azure PostgreSQL with Terraform and connection via Container App

How to create an Azure PostgreSQL instance without public access and passwords using Terraform while ensuring security. Additionally, I will explain how to access this database from a container app using access tokens.

How to not accidentally delete your data with rm

In this blog post, I want to illustrate technical and “organizational” strategies to prevent you from accidentally deleting your $HOME (guess who has achieved this medal 🙈).

Business Logic in Nginx

Nginx is a popular Web-server/-proxy that is often used to serve frontend applications within a Docker container. But did you know that you can also implement some (business) logic with Nginx? Here is how!

Hands-on Nomad

I have been working with Kubernetes as a container orchestration tool for years. Although I think Kubernetes is a great tool if it solves the issues it was meant to solve it also comes with, at least one :grinning_face:, issue - Kubernetes is a complex tool to operate and to work with. In this post, I describe my first steps to get in touch with Nomad by HashiCorp, which promises to be less…

Patching Binaries for NixOS

In this blog post, I want to describe a workaround how to get downloaded binaries to work on NixOS.

NixOS as Container Host

My first experiment with NixOS was likely in October 2021 😄. Since then, I tried to get used to NixOS and/or Nix as a package manager alternative several times but with little success. In this post I want to illustrate how I finally found a purpose for NixOS and also how this allowed me to dodge its steep learning curve!

My plain text accounting workflow with hledger

As you probably know, I am a big fan of the plain text file format. Whenever there is the possibility of a solution based upon plain text files, I’ll (likely) take it. In this post, I will explain how I follow this principle with my personal accounting workflow.

Testing this webpage (Hurl+Hugo+Docker)

Recently, I stumbled over Hurl which is an exciting tool in my opinion. To play around with it, I created a sort of integration test for this homepage utilizing Hugo, Docker, GitHub actions, and Hurl.

One year macOS (after 10 years Linux)

In this post I want to describe my experience with macOS and especially “the bad” and “the ugly” topics from last year’s post.

List network resources of a webpage via a script

Due to recent written warnings because of including Google fonts I wrote a little python script that checks the resources, like fonts, a webpage loads.

Reading/storing articles with Obisidan and Remarkable2

My workflow for reading and storing articles from the web with reMarkable2 and Obsidian.

Check the connection to Redis

Recently, I had to check the connectivity to a Redis 6 TLS enabled and password protected instance. In this post, I want to give you an overview of the different approaches to verify if a Redis is up and reachable.

Pre-commit hook for YAML doc-start

In my daily business I have to deal with a lot of YAML files. In my opinion, it is best practice to write --- (three dashes) at the beginning of a YAML file. This post describes how to utilize Git pre-commit hooks to automatically insert --- at the beginning of your YAML files before committing them.

Easy reverse proxy with Caddy

Imagine you require a simple reverse proxy for one of your servers but you don’t have the permission to install Nginx, Apache etc. Or you really just need a simple proxy and don’t want to mess around with proxy configuration. In this post we will have a look for an comparatively new proxy called Caddy which is a perfect match for this scenario.

Single binary web app with Gin-Gonic

What is so special about a single binary with Go you might ask? That is nothing special and a major feature of Go out of the box. Things change when you want to bundle template files and static assets for your Gin-Gonic web application in one binary. In this post I’ll explain how I built a single binary web application with HTML templates, CSS, JS and more included.

Building multi arch Docker images

In this post I want to briefly describe how to build Docker images for both platforms at the example of a Docker image for troubleshooting purposes especially within a Kubernetes cluster.

Building your own news service with Huginn

I am (still) a big fan of RSS feeds, and I have built a neat collection of feeds on my self-hosted Tiny Tiny RSS. However, not all interesting blogs do offer an RSS feed. In this post, I will show you how I generate my own RSS feed from those blogs via Huginn.

Moving from Linux to macOS

In this post, I will explain why I switched from Lenovo laptops running Linux for over a decade to the “arch enemy” macOS.

Building my DIY NAS

Are you planning to get a NAS (network attached storage) because your data is growing? Do you think about building a small home lab? You are a little more technical and not afraid of DIY builds and installing operating systems? Then, this post is for you 🤓 You will read about my requirements and use cases as well as my hardware and software choices for building my first DIY NAS.

An intro to Kustomize

While in my early days of working with Kustomize, I was missing some condensed practical hands-on how to build deployments with Kustomize and how to achieve common requirements in a multi-cluster setup. In this blog post, I want to fill this gap and give you a somewhat holistic overview of Kustomize.

My Workplace

A blog post about my current workplace setup

My Laptop Setup

In this post I give an overview of my current Laptop and some of my hardware I use for work.

ErgoDox EZ

Impressions about my new keyboard - the ErgoDox EZ

Thinkpad Stories

Some shenanigans with ThinkPads

Make Windows 10 more Linux like

Trying to make Windows work as a Linux user.

My Path to Becoming a Freelancer

In this article I want to share my experiences and common concerns on the way to becoming a freelancer in IT.

DevOps

What do I understand with DevOps and the related topics Cloud Computing and Infrastructure as Code

How is this page built (and why)

In this article I explain why I have chosen Grav CMS, maybe a rather unknown solution, for knowledge.rootknecht.net.

Monitoring Java Spring Boot with Prometheus

Minimalistic Java Spring Boot application coming with a preconfigured Prometheus and Grafana allowing to get insights of your application as well as OS and container metrics.

Ansible

Notes on working with Ansible

Apache

Notes on configuring the Apache web server

AWS

Notes on working with AWS

Bash

Notes on working with Bash