<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nerd Life – apt-upgrade.me – Homelab, Linux &amp; DevSecOps</title><link>https://www.apt-upgrade.me/tag/nerd-life/</link><description>One nerd's homelab: Linux, Kubernetes, security, and the occasional disaster.</description><language>en-US</language><lastBuildDate>Tue, 06 Oct 2026 13:40:25 +0200</lastBuildDate><atom:link href="https://www.apt-upgrade.me/tag/nerd-life/index.xml" rel="self" type="application/rss+xml"/><item><title>Two Things My SSDs Were Missing: TRIM After BitLocker, and a Write Cache My HPE Server Quietly Switched Off</title><link>https://www.apt-upgrade.me/2026/10/06/two-things-my-ssds-were-missing-trim-after-bitlocker-and-a-write-cache-my-hpe-server-quietly-switched-off/</link><pubDate>Tue, 06 Oct 2026 13:40:25 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/06/two-things-my-ssds-were-missing-trim-after-bitlocker-and-a-write-cache-my-hpe-server-quietly-switched-off/</guid><description>&lt;p&gt;HP3, my HPE MicroServer Gen10 Plus v2, is back on Debian 13 with OpenZFS. Why it left Windows again is a story for another post. This one is about the restore afterwards, and a setting that had been hiding in plain sight for &lt;em&gt;two operating systems and two blog posts&lt;/em&gt;.&lt;/p&gt;&#10;&lt;p&gt;The plan was boring, the way restores should be: a fresh RAIDZ1 pool over the same three WD Red SA500 SSDs, per-user datasets, then about 1.7 TB copied back from a USB disk with rsync. Same workflow as always: I make the calls, my AI co-admin (Claude) runs the commands and keeps an eye on the numbers. It was the numbers that started looking wrong.&lt;/p&gt;</description></item><item><title>Germany Only: Geo-Fencing SSH with nftables and Ansible (and What My Logs Said About Bots and Readers)</title><link>https://www.apt-upgrade.me/2026/10/01/geo-fencing-ssh-with-nftables-and-ansible/</link><pubDate>Thu, 01 Oct 2026 13:51:27 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/01/geo-fencing-ssh-with-nftables-and-ansible/</guid><description>&lt;p&gt;After moving two &lt;a href="https://nextcloud.com/"&gt;Nextcloud&lt;/a&gt; instances to new servers this week, I asked a simple question: &lt;em&gt;do my three servers - this blog and the two Nextclouds - attract different kinds of attackers?&lt;/em&gt; The answer was mostly &amp;ldquo;no, it&amp;rsquo;s the same background noise everywhere&amp;rdquo;. Except for one line that bugged me: &lt;strong&gt;SSH&lt;/strong&gt;. It runs on a non-standard port, accepts keys only, and fail2ban watches it. And yet the blog alone logged around &lt;strong&gt;16 connection attempts per hour&lt;/strong&gt; to the SSH daemon, from all over the world.&lt;/p&gt;</description></item><item><title>Two Minutes Forty-Five: My First Nextcloud App Update via Ansible (and the Guard Rail I Added Just Before)</title><link>https://www.apt-upgrade.me/2026/09/30/two-minutes-forty-five-my-first-nextcloud-app-update-via-ansible-and-the-guard-rail-i-added-just-before/</link><pubDate>Wed, 30 Sep 2026 21:30:02 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/30/two-minutes-forty-five-my-first-nextcloud-app-update-via-ansible-and-the-guard-rail-i-added-just-before/</guid><description>&lt;p&gt;Confession time: the production Nextcloud from the &lt;a href="https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/"&gt;migration battle log&lt;/a&gt; has been running on K3s for a week, the repo has had an &lt;code&gt;nextcloud-update.yml&lt;/code&gt; playbook for months, and I had never actually run it. Apps were updated the old-fashioned way, by clicking in the admin UI, or not at all. Today that changed. The run itself took &lt;strong&gt;2 minutes 45 seconds&lt;/strong&gt;. The interesting part was everything around it.&lt;/p&gt;&#10;&lt;p&gt;Same workflow as always: I decide, my AI co-admin (Claude) checks, builds and verifies. And the very first thing it found was not a bug in the update logic, but a loaded foot-gun in line three.&lt;/p&gt;</description></item><item><title>The iLO Knows the Temperature, But Not Yesterday’s: Building a Heat History for My Homelab Rack</title><link>https://www.apt-upgrade.me/2026/09/30/the-ilo-knows-the-temperature-but-not-yesterdays-building-a-heat-history-for-my-homelab-rack/</link><pubDate>Wed, 30 Sep 2026 19:15:38 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/30/the-ilo-knows-the-temperature-but-not-yesterdays-building-a-heat-history-for-my-homelab-rack/</guid><description>&lt;p&gt;It started with a simple question on a lazy afternoon: &lt;em&gt;how warm are my three servers, actually?&lt;/em&gt; The iLO answered instantly: intake air 22 to 25 °C, fans idling at 6 %, everything green. Great. Then the follow-up question: &lt;em&gt;and during the heat wave in July?&lt;/em&gt; Silence. The iLO 5 shows temperatures and fans &lt;strong&gt;live only&lt;/strong&gt;. No history, no graph, no &amp;ldquo;last Tuesday&amp;rdquo;. So I built one, and it&amp;rsquo;s on GitHub: &lt;a href="https://github.com/aptupgrademe/ilo-thermal"&gt;&lt;strong&gt;aptupgrademe/ilo-thermal&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>My Own Little Certificate Authority: AD CS, Auto-Enrollment and Goodbye to “Your Connection Is Not Private”</title><link>https://www.apt-upgrade.me/2026/09/29/my-own-little-certificate-authority-ad-cs-auto-enrollment-and-goodbye-to-your-connection-is-not-private/</link><pubDate>Tue, 29 Sep 2026 19:05:28 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/29/my-own-little-certificate-authority-ad-cs-auto-enrollment-and-goodbye-to-your-connection-is-not-private/</guid><description>&lt;p&gt;My homelab has three domain controllers, two clients, three iLO management boards and, until last week, exactly zero certificates anyone had a reason to trust. Every RDP session started with a warning, every iLO greeted me with &lt;em&gt;&amp;ldquo;Your connection is not private&amp;rdquo;&lt;/em&gt; (issuer: &lt;em&gt;Default Issuer (Do not trust)&lt;/em&gt;, which is at least honest), and the domain controllers didn&amp;rsquo;t speak LDAPS at all.&lt;/p&gt;&#10;&lt;p&gt;I don&amp;rsquo;t run many internal web services, so for a while I assumed a private PKI was a solution looking for a problem. Wrong. A Windows domain has plenty of places where certificates quietly make things better. The trick is to let Active Directory hand them out on its own, so that I never have to think about renewing them again.&lt;/p&gt;</description></item><item><title>Day Two Operations: Hardening Three Windows Domain Controllers (and Finding a Clock That Answered to Nobody)</title><link>https://www.apt-upgrade.me/2026/09/28/day-two-operations-hardening-three-windows-domain-controllers-and-finding-a-clock-that-answered-to-nobody/</link><pubDate>Mon, 28 Sep 2026 14:57:03 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/28/day-two-operations-hardening-three-windows-domain-controllers-and-finding-a-clock-that-answered-to-nobody/</guid><description>&lt;p&gt;In &lt;a href="https://www.apt-upgrade.me/2026/09/23/enough-yaml-for-now-three-servers-windows-server-2025-and-a-crash-course-on-the-dark-side/"&gt;the last post&lt;/a&gt; three HP boxes became a Windows Server 2025 domain: AD, DNS, DHCP failover, Group Policy, BitLocker, Storage Spaces. That was day one: everything installed, everything green, everything &amp;ldquo;works&amp;rdquo;.&lt;/p&gt;&#10;&lt;p&gt;This post is about &lt;strong&gt;day two&lt;/strong&gt;, the part where you stop admiring the green checkmarks and start asking uncomfortable questions. What time is it, according to whom? Which services are running that nobody asked for? What happens if a server simply doesn&amp;rsquo;t boot tomorrow? Spoiler: one of those questions had a &lt;em&gt;very&lt;/em&gt; funny answer.&lt;/p&gt;</description></item><item><title>Enough YAML for Now: Three Servers, Windows Server 2025, and a Crash Course on the Dark Side</title><link>https://www.apt-upgrade.me/2026/09/23/enough-yaml-for-now-three-servers-windows-server-2025-and-a-crash-course-on-the-dark-side/</link><pubDate>Wed, 23 Sep 2026 21:06:04 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/23/enough-yaml-for-now-three-servers-windows-server-2025-and-a-crash-course-on-the-dark-side/</guid><description>&lt;p&gt;Confession time. After the &lt;a href="https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/"&gt;Nextcloud migration battle log&lt;/a&gt;, a double-digit number of playbook runs, one nftables ruleset that cheerfully flushed K3s&amp;rsquo; own tables, and more YAML than any human should read in a single week, I had officially had it up to &lt;em&gt;here&lt;/em&gt; with &lt;a href="https://nextcloud.com/"&gt;Nextcloud&lt;/a&gt;, Ansible and anything containing the word &amp;ldquo;migration&amp;rdquo;.&lt;/p&gt;&#10;&lt;p&gt;So I did what any reasonable Linux nerd does when burned out on Linux: I went over to the other side. Three servers, three fresh installs of &lt;strong&gt;Windows Server 2025&lt;/strong&gt;, and a few evenings of Active Directory, DNS, DHCP, Group Policy, Storage Spaces and BitLocker. No YAML. Just a lot of &lt;code&gt;Get-&lt;/code&gt; and &lt;code&gt;Set-&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Debian 13 Upgrade Adventure – With a Little Help from ChatGPT 🐧🤖</title><link>https://www.apt-upgrade.me/2025/08/20/debian-13-upgrade-adventure-with-a-little-help-from-chatgpt-%F0%9F%90%A7%F0%9F%A4%96/</link><pubDate>Wed, 20 Aug 2025 17:51:14 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/08/20/debian-13-upgrade-adventure-with-a-little-help-from-chatgpt-%F0%9F%90%A7%F0%9F%A4%96/</guid><description>&lt;p&gt;So today I did something both brilliant &lt;em&gt;and&lt;/em&gt; borderline reckless: I asked ChatGPT to whip up a &lt;strong&gt;Bash script&lt;/strong&gt; that upgrades a &lt;strong&gt;Debian 12&lt;/strong&gt; system to the fresh new &lt;strong&gt;Debian 13&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Yes, I know, trusting an AI with my beloved Linux distro is basically the sysadmin equivalent of “hold my beer.” 🍺&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="the-setup"&gt;The Setup&lt;/h2&gt;&#10;&lt;p&gt;I played it safe (well, &lt;em&gt;safe-ish&lt;/em&gt;). First, I spun up a VM, made a backup (because… duh), and then unleashed the script. To my mild surprise and great relief, it actually worked. The thing ran in &lt;strong&gt;interactive mode&lt;/strong&gt;, threw a couple of “Are you sure, human?” type questions my way (I think two or three), then rebooted the machine.&lt;/p&gt;</description></item><item><title>How I Accidentally Became a Python Apprentice… Thanks to a Discount and Dr. Angela 😅🐍</title><link>https://www.apt-upgrade.me/2025/08/05/how-i-accidentally-became-a-python-apprentice-thanks-to-a-discount-and-dr-angela-%F0%9F%98%85%F0%9F%90%8D/</link><pubDate>Tue, 05 Aug 2025 12:44:32 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/08/05/how-i-accidentally-became-a-python-apprentice-thanks-to-a-discount-and-dr-angela-%F0%9F%98%85%F0%9F%90%8D/</guid><description>&lt;div style="border: 2px solid #ff4d4d; background-color: #fff0f0; color: #b30000; padding: 12px 16px; border-radius: 8px; margin: 1.5em 0; font-family: 'Courier New', monospace;"&gt;&lt;p&gt;&lt;strong&gt;⚠️ Heads-up, fellow human (or bot):&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This post is currently &lt;em&gt;outdated&lt;/em&gt; and due for a proper rewrite.&lt;br/&gt;&#10;Some parts may no longer be accurate, complete, or aligned with the latest tech realities.&lt;br/&gt;&#10;A fully updated and more detailed version is on the way soon™.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Read at your own nerdy risk — no warranties, no guarantees, just vibes. 🤓&lt;/p&gt;&lt;/div&gt;</description></item><item><title>Me and My Rack – A Nerdy Love Story</title><link>https://www.apt-upgrade.me/2025/08/01/me-and-my-rack-a-nerdy-love-story/</link><pubDate>Fri, 01 Aug 2025 09:08:26 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/08/01/me-and-my-rack-a-nerdy-love-story/</guid><description>&lt;p&gt;Yesterday, I spent some hours again with my lovely rack. No, not my ribs. My &lt;strong&gt;server rack&lt;/strong&gt;! 😅&lt;/p&gt;&#10;&lt;h2 id="what-i-did"&gt;What I did&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;I changed some very long LAN cables to shorter ones. The old ones were just... quick and dirty.&lt;/li&gt;&#10;&lt;li&gt;I added another switch – same model. It&amp;rsquo;s for backup and also gives me more ports. Yay!&lt;/li&gt;&#10;&lt;li&gt;I removed a metal thingy with cable holders and added a &lt;strong&gt;fan thing with 8 fans&lt;/strong&gt; to blow out hot air. Much cooler now. Literally.&lt;/li&gt;&#10;&lt;li&gt;I tied some cables together with zip ties. Because... order!&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="switch-or-not-to-switch"&gt;Switch or not to switch?&lt;/h2&gt;&#10;&lt;p&gt;I thought about buying a new switch. A fancy one from Mikrotik. It has 48 ports, Linux OS, and fans! 😍 But... it&amp;rsquo;s 3 times more expensive than my good old TP-Link switches.&lt;/p&gt;</description></item><item><title>🛡️ Getting ClamAV Daemon to Play Nice with Nextcloud’s Antivirus App (Like a True Nerd)</title><link>https://www.apt-upgrade.me/2025/07/13/%F0%9F%9B%A1%EF%B8%8F-getting-clamav-daemon-to-play-nice-with-nextclouds-antivirus-app-like-a-true-nerd/</link><pubDate>Sun, 13 Jul 2025 21:35:59 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/07/13/%F0%9F%9B%A1%EF%B8%8F-getting-clamav-daemon-to-play-nice-with-nextclouds-antivirus-app-like-a-true-nerd/</guid><description>&lt;p&gt;If you&amp;rsquo;re like me and want your &lt;strong&gt;Nextcloud&lt;/strong&gt; to scream the moment something shady shows up in your files, then you&amp;rsquo;re probably using the &lt;em&gt;Antivirus for Files&lt;/em&gt; app. But here&amp;rsquo;s the twist: for performance and true sysadmin joy, you don&amp;rsquo;t want &lt;code&gt;clamscan&lt;/code&gt;. You want the big guns — the &lt;strong&gt;ClamAV Daemon&lt;/strong&gt; using a local Unix socket.&lt;/p&gt;&#10;&lt;h3 id="-step-1-install-clamav-and-the-daemon"&gt;⚙️ Step 1: Install ClamAV and the Daemon&lt;/h3&gt;&#10;&lt;pre&gt;&lt;code&gt;sudo apt update&#10;sudo apt install clamav clamav-daemon -y&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;This installs the scanner and the background daemon — the dream team of file hygiene.&lt;/p&gt;</description></item><item><title>🚀 Mission: FreeBSD – Or How I Rage-Quit to Debian at Warp Speed</title><link>https://www.apt-upgrade.me/2025/07/11/%F0%9F%9A%80-mission-freebsd-or-how-i-rage-quit-to-debian-at-warp-speed/</link><pubDate>Fri, 11 Jul 2025 13:09:01 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/07/11/%F0%9F%9A%80-mission-freebsd-or-how-i-rage-quit-to-debian-at-warp-speed/</guid><description>&lt;p&gt;&lt;em&gt;Last night, in a galaxy not that far away (namely, under my desk), I felt a sudden and powerful urge to finally install &lt;strong&gt;FreeBSD&lt;/strong&gt; on my tower PC.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;This idea has been haunting me for years. It creeps up on me now and then, whispering: &amp;ldquo;Ditch the Linux soup. Embrace the BSD purity.&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;Roughly 10 to 15 years ago, I had already toyed around with FreeBSD. Back then it was already… let’s call it: &lt;code&gt;quirky but intriguing&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Our Solar Year: From Zero to Megawatt-Hero</title><link>https://www.apt-upgrade.me/2025/06/07/our-solar-year/</link><pubDate>Sat, 07 Jun 2025 20:33:21 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/06/07/our-solar-year/</guid><description>&lt;p&gt;About a year ago, I flipped the switch on my photovoltaic system. Now, twelve months later, I can say:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;👉 Smartest decision I’ve made — and the most satisfying system upgrade I’ve ever installed.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;The system runs smoothly, reliably delivers clean power, and completely changed how I think about energy.&lt;/p&gt;&#10;&lt;p&gt;Of course, it also takes a bit of discipline — knowing when to run certain appliances to make the most of your solar yield.&lt;/p&gt;</description></item><item><title>Hello World !</title><link>https://www.apt-upgrade.me/2025/05/14/hallo-welt/</link><pubDate>Wed, 14 May 2025 15:20:25 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/05/14/hallo-welt/</guid><description>&lt;p&gt;&lt;strong&gt;Hi, I’m Raphael – a 47-year-old open source enthusiast from Germany.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;My digital heart beats for GNU/Linux, IT security, and all things electromobility – especially as we cruise into the post-gasoline era, one clean volt at a time.&lt;/p&gt;&#10;&lt;p&gt;I created this blog to share thoughts, tips, and the occasional bash one-liner. If you’re into nerdy stuff, terminals, or the elegance of sudo, you might just feel at home here.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Have fun exploring – and stay upgraded!&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>