The cloud-native landscape is at an inflection point. While Kubernetes and microservices once dominated the conversation, a growing chorus of organizations is sounding the alarm: complexity doesn’t scale. As experienced system administrators, we’ve watched clients wrestle with Kubernetes’ operational overhead, skyrocketing costs, and the “microservices hangover.” Now, a pragmatic shift is underway, toward solutions that prioritize simplicity,...| Pieter Bakker
Configuring additional IPv6 addresses on Hetzner Cloud servers running Debian 12/13 requires a careful approach to work harmoniously with cloud-init. This guide is an updated version of my previous tutorial, reflecting lessons learned from production deployments and providing a more reliable method that avoids common pitfalls. What’s changed since the original guide: Note: These instructions...| Pieter Bakker
When operating a mail server such as Postfix, DNS lookups play a crucial role in message delivery and spam detection. Postfix often performs frequent DNSBL (DNS-based Blacklist) queries to identify spam sources, and relying on public DNS resolvers for these lookups can quickly become a problem. Many public DNS providers, including Google and Cloudflare, intentionally...| Pieter Bakker
Block SIP authentication attacks before they reach your PBX. Simple iptables firewall using hostname filtering for Asterisk and FreePBX.| Pieter Bakker
This guide provides a streamlined yet comprehensive approach to upgrading Debian 12 (Bookworm) to Debian 13 (Trixie) on production servers. It balances efficiency with safety, based on real-world server upgrade experience. Pre-Flight Checklist Essential Preparations Schedule Maintenance Window: Plan for 30-60 minutes of downtime, depending on your server’s package count and internet speed. Backup Critical...| Pieter Bakker
Sometimes package management on Ubuntu or Debian gets stuck because apt or dpkg can’t acquire a lock. This usually happens if an upgrade, install, or update process was interrupted or if another process is still running in the background. The error looks like this: Here’s a short guide on how to safely resolve the problem....| Pieter Bakker
Complete guide to configure WordPress behind Nginx reverse proxy with SSL termination. Fix redirect loops, mixed content & IP logging.| Pieter Bakker
Resolve EXPKEYSIG GPG key expiration errors when updating Debian 12 systems with Incus. Quick fix with wget command included.| Pieter Bakker
Pieter Bakker is an IT consultant specializing in the use of Linux and open source technologies that drive digital transformation.| Pieter Bakker
Solve ZFS DKMS compilation failures on small VPS with memory errors. Step-by-step guide to fix gcc killed signal with swap solution.| Pieter Bakker
For freelance assignments or other business matters, you can reach me by filling out the form.| Pieter Bakker
Fix 'image couldn't be found' error in LXD after Canonical migration. Update remote URL to restore container creation. Quick solution.| Pieter Bakker
Solve missing HTTP_HOST issues with Nginx HTTP/3 and PHP-FPM. Quick fix for WordPress redirects and broken links. Step-by-step guide.| Pieter Bakker