<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Automation – apt-upgrade.me – Homelab, Linux &amp; DevSecOps</title><link>https://www.apt-upgrade.me/tag/automation/</link><description>One nerd's homelab: Linux, Kubernetes, security, and the occasional disaster.</description><language>en-US</language><lastBuildDate>Wed, 14 Oct 2026 15:37:01 +0200</lastBuildDate><atom:link href="https://www.apt-upgrade.me/tag/automation/index.xml" rel="self" type="application/rss+xml"/><item><title>The Ansible Tour, Part 1: One Repository, Three Servers – How the Code Is Organised and What Happens During a Run</title><link>https://www.apt-upgrade.me/2026/10/14/ansible-tour-part-1-framework/</link><pubDate>Wed, 14 Oct 2026 15:37:01 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/14/ansible-tour-part-1-framework/</guid><description>&lt;p&gt;&lt;em&gt;First part of a series about the Ansible code behind this blog and two Nextcloud servers. The code is public: &lt;a href="https://github.com/aptupgrademe/www_k3s"&gt;github.com/aptupgrademe/www_k3s&lt;/a&gt;; the series describes release &lt;a href="https://github.com/aptupgrademe/www_k3s/tree/v3.3.0"&gt;v3.3.0&lt;/a&gt;. Part 1 explains the structure and what happens during a run, parts 2 to 6 the roles, the deep dives the technology underneath.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Three servers, 34 roles, four playbooks, about 22,000 lines of YAML and templates. Opening the repository for the first time, you mostly see files. This part explains three things worth knowing first: how one set of roles serves two very different applications, where every value comes from, and what actually happens between &lt;code&gt;ansible-playbook&lt;/code&gt; and the final summary.&lt;/p&gt;</description></item><item><title>My 5-Year IT Learning Roadmap — From Sysadmin to Infrastructure Engineer</title><link>https://www.apt-upgrade.me/2026/08/27/my-5-year-it-learning-roadmap-from-sysadmin-to-infrastructure-engineer/</link><pubDate>Thu, 27 Aug 2026 15:22:44 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/08/27/my-5-year-it-learning-roadmap-from-sysadmin-to-infrastructure-engineer/</guid><description>&lt;p&gt;&lt;strong&gt;Linux. Windows. Networking. Security. Observability. Automation. Cloud. Kubernetes. AI.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;But above all:&lt;/p&gt;&#10;&lt;h2 id="-learn-to-understand-systems--not-just-to-operate-them"&gt;🧠 Learn to understand systems — not just to operate them.&lt;/h2&gt;&#10;&lt;p&gt;I&amp;rsquo;ve been thinking quite a lot about where I want to take my IT skills over the next several years.&lt;/p&gt;&#10;&lt;p&gt;My professional background already gives me a fairly broad foundation:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;🐧 Linux system administration&lt;/li&gt;&#10;&lt;li&gt;📊 Monitoring&lt;/li&gt;&#10;&lt;li&gt;🚨 Technical event management&lt;/li&gt;&#10;&lt;li&gt;📝 Log management&lt;/li&gt;&#10;&lt;li&gt;🌐 Networking&lt;/li&gt;&#10;&lt;li&gt;🔐 Security&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;My current professional focus is increasingly around &lt;strong&gt;Graylog and log management&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>🐧➡️🪟 From Penguin to Windows: Why I’m Running Windows Server 2025 in My Homelab (Again)</title><link>https://www.apt-upgrade.me/2026/07/03/from-penguin-to-windows-why-im-running-windows-server-2025-in-my-homelab-again/</link><pubDate>Fri, 03 Jul 2026 11:13:00 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/07/03/from-penguin-to-windows-why-im-running-windows-server-2025-in-my-homelab-again/</guid><description>&lt;p&gt;I&amp;rsquo;ve been a huge Linux fan for years – and that hasn&amp;rsquo;t changed one bit. I run Linux in VMs, on servers, and pretty much anywhere I can get a shell prompt. I still love its flexibility, openness, and its beautiful CLI-first philosophy. To be honest, there was even a time when I was a full-blown &amp;ldquo;Linux-only&amp;rdquo; evangelist. Not just technically, but ideologically as well.&#10;At the same time, I&amp;rsquo;ve always enjoyed using Windows on the desktop. Both worlds have their strengths and weaknesses. Linux gives me freedom, transparency, and endless opportunities to tinker. Windows, on the other hand, has consistently delivered excellent hardware support, mature drivers, painless firmware updates, reliable power management, and great peripheral compatibility. Things like standby, BIOS updates, fingerprint readers, and random hardware quirks often just work. Sometimes that&amp;rsquo;s worth a lot.&#10;That said, I have mixed feelings about moving more of my private infrastructure back to Windows. Topics like digital sovereignty, privacy, and the current geopolitical climate – including developments in the US and around Donald Trump – definitely make me pause for a moment. As someone who has been deeply involved in the Linux ecosystem for years, I strongly associate Linux with transparency, control over my systems, privacy, and IT security.&#10;For me, Linux was never just an operating system. It was always part of a broader philosophy around digital self-determination and owning your technology instead of merely renting it from someone else. That&amp;rsquo;s also one of the reasons why I&amp;rsquo;ve spent a lot of time looking into privacy-focused projects like GrapheneOS.&#10;If you&amp;rsquo;re interested, I&amp;rsquo;ve written more about that topic &lt;a href="https://www.apt-upgrade.me/2025/12/14/on-digital-sovereignty-de-americanizing-my-software-stack-and-running-whatsapp-in-a-sandbox/"&gt;here&lt;/a&gt;.&#10;And yet... here I am. Again.&#10;&lt;em&gt;Funny enough, I&amp;rsquo;ve actually been down this rabbit hole before. About a year ago, I wrote a blog post about moving parts of my homelab back to Windows. That original post has since been retired, and this article replaces it entirely – because, just like homelabs themselves, opinions, requirements, and architectures tend to evolve over time.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Replacing Cron Jobs with Jenkins for Nextcloud Backups 🚀</title><link>https://www.apt-upgrade.me/2026/06/05/replacing-cron-jobs-with-jenkins-for-nextcloud-backups-%F0%9F%9A%80/</link><pubDate>Fri, 05 Jun 2026 09:09:14 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/06/05/replacing-cron-jobs-with-jenkins-for-nextcloud-backups-%F0%9F%9A%80/</guid><description>&lt;p&gt;Today I spent some time exploring &lt;strong&gt;Jenkins&lt;/strong&gt; in my homelab environment.&lt;/p&gt;&#10;&lt;p&gt;For those who somehow managed to avoid Jenkins during the last decade: Jenkins is one of the most widely used open-source automation servers available today. Originally released in 2011 as a fork of the Hudson project, Jenkins has become one of the cornerstones of modern DevOps workflows. It is primarily used for Continuous Integration (CI) and Continuous Delivery (CD), automating software builds, tests, deployments, and all kinds of recurring administrative tasks. If a process can be automated, Jenkins can probably handle it. 😎&lt;/p&gt;</description></item><item><title>WordPress on K3s — A Nerdy, Layered Update Strategy</title><link>https://www.apt-upgrade.me/2026/03/31/wordpress-on-k3s-a-nerdy-layered-update-strategy/</link><pubDate>Tue, 31 Mar 2026 13:26:24 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/03/31/wordpress-on-k3s-a-nerdy-layered-update-strategy/</guid><description>&lt;p&gt;This article is a direct continuation of the previous guide. If you haven’t read it yet, start here: &lt;a href="https://www.apt-upgrade.me/2026/03/30/from-debian-to-almalinux-to-k3s-or-how-i-accidentally-built-a-mini-cloud-%f0%9f%9a%80/"&gt;Initial Setup: WordPress on K3s (Ansible-managed)&lt;/a&gt;.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;This guide describes a clean, deterministic update pipeline for a WordPress stack running on Kubernetes via &lt;strong&gt;K3s&lt;/strong&gt;, orchestrated with &lt;strong&gt;Ansible&lt;/strong&gt;. Think of it as a layered onion of updates — each layer independently maintainable, yet fully composable. &lt;em&gt;It also serves as a personal reference — a kind of living documentation — until these workflows become second nature to me 😉&lt;/em&gt;&lt;/p&gt;</description></item><item><title>From Debian to AlmaLinux to K3s: Or How I Accidentally Built a Mini Cloud 🚀</title><link>https://www.apt-upgrade.me/2026/03/30/from-debian-to-almalinux-to-k3s-or-how-i-accidentally-built-a-mini-cloud-%F0%9F%9A%80/</link><pubDate>Mon, 30 Mar 2026 20:02:37 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/03/30/from-debian-to-almalinux-to-k3s-or-how-i-accidentally-built-a-mini-cloud-%F0%9F%9A%80/</guid><description>&lt;p&gt;If you’ve stumbled across my previous post&lt;/p&gt;&#10;&lt;a href="https://www.apt-upgrade.me/2026/02/26/%f0%9f%a7%a0-operating-community-nextcloud-instances-with-ansible-almalinux-selinux-and-a-podman-based-collabora-stack/" target="_blank" rel="noopener"&gt; &#10;&lt;p&gt;“Operating Community Nextcloud Instances with Ansible, AlmaLinux, SELinux and a Podman-based Collabora Stack”&lt;/p&gt;&#10;&lt;p&gt;&lt;/a&gt;,&lt;/p&gt;&#10;&lt;p&gt;you already know this started as a totally reasonable idea.&lt;em&gt;(Narrator voice: It was not a totally reasonable idea.)&lt;/em&gt;&lt;/p&gt;&#10;&lt;h2 id="the-original-plan-leave-debian-embrace-selinux"&gt;The Original Plan™: Leave Debian, Embrace SELinux&lt;/h2&gt;&#10;&lt;p&gt;At some point I thought: “Hey, why not move from Debian to AlmaLinux?”&lt;/p&gt;&#10;&lt;p&gt;Main reason? &lt;strong&gt;SELinux&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Because nothing says “fun weekend project” like debugging security contexts at 2 AM.&lt;/p&gt;</description></item><item><title>🧠 Operating Community Nextcloud Instances with Ansible, AlmaLinux, SELinux and a Podman-based Collabora Stack</title><link>https://www.apt-upgrade.me/2026/02/26/%F0%9F%A7%A0-operating-community-nextcloud-instances-with-ansible-almalinux-selinux-and-a-podman-based-collabora-stack/</link><pubDate>Thu, 26 Feb 2026 15:27:38 +0100</pubDate><guid>https://www.apt-upgrade.me/2026/02/26/%F0%9F%A7%A0-operating-community-nextcloud-instances-with-ansible-almalinux-selinux-and-a-podman-based-collabora-stack/</guid><description>&lt;p&gt;I currently operate multiple &lt;strong&gt;Nextcloud instances&lt;/strong&gt; for two local community organizations in a purely voluntary capacity.&lt;/p&gt;&#10;&lt;p&gt;The original motivation was twofold: &lt;strong&gt;enabling digital sovereignty&lt;/strong&gt; while turning the entire setup into a personal &lt;strong&gt;learning sandbox&lt;/strong&gt;. 🚀The initial deployments were provisioned using &lt;strong&gt;Ansible&lt;/strong&gt;. However, the automation pipeline never reached full end-to-end maturity; smaller adjustments and operational tweaks were still executed manually. 🔧Historically, each Nextcloud instance had its own dedicated playbook. While functional, this architecture revealed structural weaknesses over time — particularly when &lt;strong&gt;synchronized or centralized changes&lt;/strong&gt; across both environments became necessary. ⚙️&lt;/p&gt;</description></item><item><title>🤖 From ChatGPT to Claude: Adventures of a Slightly Terrified Nerd in VS Code</title><link>https://www.apt-upgrade.me/2026/02/17/%F0%9F%A4%96-from-chatgpt-to-claude-adventures-of-a-slightly-terrified-nerd-in-vs-code/</link><pubDate>Tue, 17 Feb 2026 21:24:10 +0100</pubDate><guid>https://www.apt-upgrade.me/2026/02/17/%F0%9F%A4%96-from-chatgpt-to-claude-adventures-of-a-slightly-terrified-nerd-in-vs-code/</guid><description>&lt;article style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.7;"&gt;&#10;&lt;header style="margin-bottom: 18px;"&gt;&lt;p style="margin: 0; color: #555;"&gt;AI coding experiments, &lt;a href="https://docs.ansible.com/"&gt;Ansible&lt;/a&gt; chaos, and that moment when the machine stares back at you… 👀&lt;/p&gt;&lt;/header&gt;&#10;&lt;hr style="border: none; border-top: 1px solid #e5e5e5; margin: 18px 0;"/&gt;&#10;&lt;section&gt;&lt;h2&gt;🧠 My AI Workflow So Far&lt;/h2&gt;&lt;p&gt;I’ve been using &lt;strong&gt;ChatGPT&lt;/strong&gt; for over a year now — pretty much daily.&lt;/p&gt;&lt;p&gt;Mostly for generating images, writing code, polishing wording, creating templates,&lt;br/&gt;&#10;and of course for researching and summarizing texts.&lt;/p&gt;&lt;p&gt;Basically: if there’s a repetitive brain task, I outsource it to silicon. 🤓💡&lt;/p&gt;&lt;/section&gt;&#10;&lt;section style="margin-top: 18px;"&gt;&lt;h2&gt;🔄 Plot Twist: Trying Claude&lt;/h2&gt;&lt;p&gt;Today, kind of by accident, I canceled ChatGPT and decided to try &lt;strong&gt;Claude&lt;/strong&gt; instead.&lt;br/&gt;&#10;I’ve read a lot about it, and from what I gather, it might actually have the edge when it comes to coding.&lt;/p&gt;&lt;p&gt;As a full-time nerd, I obviously had to test this theory immediately.&lt;br/&gt;&#10;Because reading about tools is nice — but &lt;em&gt;throwing them into production chaos&lt;/em&gt; is nicer. 😄&lt;/p&gt;&lt;/section&gt;&#10;&lt;section style="margin-top: 18px;"&gt;&lt;h2&gt;💻 VS Code + Claude Plugin = Nerd Playground&lt;/h2&gt;&lt;p&gt;I currently love working with &lt;strong&gt;Visual Studio Code&lt;/strong&gt;, so what really interested me&lt;br/&gt;&#10;was integrating Claude via a plugin.&lt;/p&gt;&lt;p&gt;And now I have this setup:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;VS Code&lt;/li&gt;&lt;li&gt;An Ansible playbook&lt;/li&gt;&lt;li&gt;8 roles&lt;/li&gt;&lt;li&gt;A chat editor directly connected to Claude&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Which basically means: the AI is now sitting right inside my dev environment.&lt;br/&gt;&#10;Not watching… totally not watching… 👀&lt;/p&gt;&lt;/section&gt;&#10;&lt;section style="margin-top: 18px;"&gt;&lt;h2&gt;🚀 The Experiment&lt;/h2&gt;&lt;p&gt;I wrote into the chat:&lt;/p&gt;&lt;blockquote style="padding: 12px; background: #f7f7f7; border-left: 4px solid #7f8c8d; border-radius: 8px;"&gt;&lt;p&gt;“Optimize my Ansible code, apply best practices…”&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="font-size: 20px; font-weight: bold; color: #e74c3c;"&gt;…and BÄÄÄMM!! 💥&lt;/p&gt;&lt;p&gt;The thing has been grinding away for minutes now — finding one issue after another.&lt;br/&gt;&#10;Claude basically has full access to the Ansible codebase and is tearing through it like a senior DevOps engineer on caffeine. ☕🐧&lt;/p&gt;&lt;p&gt;Slightly terrifying. Slightly impressive. Definitely nerd-satisfying.&lt;/p&gt;&lt;/section&gt;&#10;&lt;section style="margin-top: 18px;"&gt;&lt;h2&gt;😱 Meanwhile, In My Head… (The Nerd Image Vibes)&lt;/h2&gt;&lt;p&gt;If I had to visualize this moment, it would look exactly like that image:&lt;/p&gt;&lt;p&gt;A slightly panicking nerd in a server room, sweating, clutching his laptop,&lt;br/&gt;&#10;while an evil-looking AI watches him intensely from a glowing screen.&lt;/p&gt;&lt;p&gt;And yes — he’s still wearing sunglasses. Indoors. At night. In a server room. 😎&lt;/p&gt;&lt;p&gt;Because when an AI starts reviewing your infrastructure code,&lt;br/&gt;&#10;you either:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;stay cool&lt;/li&gt;&lt;li&gt;pretend you planned everything&lt;/li&gt;&lt;li&gt;or whisper: &lt;em&gt;“Please don’t read my TODO comments…”&lt;/em&gt; 😬&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The vibe is somewhere between:&lt;br/&gt;&#10;&lt;span style="background: #fff3cd; padding: 3px 6px; border-radius: 6px;"&gt;“This is amazing”&lt;/span&gt;&lt;br/&gt;&#10;and&lt;br/&gt;&#10;&lt;span style="background: #ffe6e6; padding: 3px 6px; border-radius: 6px; color: #c0392b;"&gt;&lt;br/&gt;&#10;“Oh no… it sees everything.”&lt;br/&gt;&#10;&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&#10;&lt;section style="margin-top: 18px;"&gt;&lt;h2&gt;⏳ Letting It Cook&lt;/h2&gt;&lt;p&gt;For now, I’m just letting Claude do its thing.&lt;/p&gt;&lt;p&gt;Tomorrow I’ll go through the code, check the optimizations, and see:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;how good the improvements actually are&lt;/li&gt;&lt;li&gt;whether I still understand my own infrastructure&lt;/li&gt;&lt;li&gt;and if not… I’ll just have Claude generate documentation and explanations too 😄&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Because why panic when you can automate your understanding?&lt;/p&gt;&lt;p&gt;&lt;img alt="VS Code with Claude Code assisting on an infrastructure repository" class="alignnone size-full wp-image-947" height="1048" src="https://www.apt-upgrade.me/wp-content/uploads/2026/02/vss_code_screenshot-1.webp" width="1854"/&gt;&lt;/p&gt;&lt;/section&gt;&#10;&lt;footer style="margin-top: 24px; padding-top: 14px; border-top: 1px solid #e5e5e5; color: #555;"&gt;&lt;p style="margin: 0;"&gt;&lt;strong&gt;Nerd conclusion:&lt;/strong&gt;&lt;br/&gt;&#10;AI writes code, fixes code, explains code… and quietly judges your old code. 🤖👀&lt;/p&gt;&lt;p style="margin: 6px 0 0 0;"&gt;Next step: see whether Claude becomes my new DevOps co-pilot — or my future replacement. 😅&lt;/p&gt;&lt;/footer&gt;&#10;&lt;/article&gt;</description></item><item><title>Adventures in IPv6, Firewalls &amp; the “Oops-I-Forgot” Department 🚀</title><link>https://www.apt-upgrade.me/2025/08/25/adventures-in-ipv6-firewalls-the-oops-i-forgot-department-%F0%9F%9A%80/</link><pubDate>Mon, 25 Aug 2025 16:17:34 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/08/25/adventures-in-ipv6-firewalls-the-oops-i-forgot-department-%F0%9F%9A%80/</guid><description>&lt;p&gt;So, a few days ago I thought: &lt;em&gt;&amp;ldquo;Hey, let’s be cool, ditch Apache, and hop onto the Nginx hype train because... HTTP/3, baby!&amp;rdquo;&lt;/em&gt; 🎉&lt;/p&gt;&#10;&lt;p&gt;Fast-forward to today, when I decided to show off and run one of those fancy SSL / web server grading tools. You know, the nerd’s equivalent of flexing in front of a mirror. 😎&lt;/p&gt;&#10;&lt;p&gt;...and then BAM 💥: my blog was &lt;strong&gt;completely invisible over IPv6&lt;/strong&gt;. Like, gone. As if Thanos snapped half the packets away. 🫰&lt;/p&gt;</description></item><item><title>How I Managed to Wreck My Firewall Appliance With a Debian 13 Upgrade</title><link>https://www.apt-upgrade.me/2025/08/20/how-i-managed-to-wreck-my-firewall-appliance-with-a-debian-13-upgrade/</link><pubDate>Wed, 20 Aug 2025 21:25:15 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/08/20/how-i-managed-to-wreck-my-firewall-appliance-with-a-debian-13-upgrade/</guid><description>&lt;p&gt;Yesterday I proudly hit publish on a post about my &lt;em&gt;super smooth&lt;/em&gt; upgrade to Debian 13… feeling like a proper Linux wizard. 🧙‍♂️&lt;/p&gt;&#10;&lt;p&gt;A few hours later, reality slapped me in the face: I managed to completely nuke my poor firewall appliance while trying to upgrade it as well. RIP.&lt;/p&gt;&#10;&lt;p&gt;Technically, it still booted and looked fine – no scary red error messages. But this box was the one running &lt;strong&gt;Traefik&lt;/strong&gt;, the gatekeeper to my self-hosted blog. And suddenly… things got weird.&lt;/p&gt;</description></item><item><title>🧼 Cleaning Up Filenames on Linux with &lt;code&gt;detox&lt;/code&gt; – The Tiny Tool That Saved My Backups</title><link>https://www.apt-upgrade.me/2025/07/24/%F0%9F%A7%BC-cleaning-up-filenames-on-linux-with-detox-the-tiny-tool-that-saved-my-backups/</link><pubDate>Thu, 24 Jul 2025 13:05:36 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/07/24/%F0%9F%A7%BC-cleaning-up-filenames-on-linux-with-detox-the-tiny-tool-that-saved-my-backups/</guid><description>&lt;h3 id="-when-a-backup-fails-because-of-a-filename"&gt;😤 When a Backup Fails... Because of a Filename&lt;/h3&gt;&#10;&lt;p&gt;Recently, one of my automated backups on Linux unexpectedly &lt;strong&gt;crashed mid-run&lt;/strong&gt;. No fancy error message, no graceful fallback — just a silent abort.&lt;/p&gt;&#10;&lt;p&gt;After some hardcore &lt;code&gt;grep&lt;/code&gt; and log spelunking, I found the culprit: a single file with a &lt;strong&gt;non-compliant filename&lt;/strong&gt; that the backup tool couldn’t process. Worse yet — the file had come from a &lt;strong&gt;macOS system (MacBook Air)&lt;/strong&gt;. Of course. 😅&lt;/p&gt;</description></item><item><title>🚀 Moving a Grown-Up Nextcloud Instance to a Fresh Server (with Bash &amp; Ansible)</title><link>https://www.apt-upgrade.me/2025/07/15/%F0%9F%9A%80-moving-a-grown-up-nextcloud-instance-to-a-fresh-server-with-bash-ansible/</link><pubDate>Tue, 15 Jul 2025 08:58:30 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/07/15/%F0%9F%9A%80-moving-a-grown-up-nextcloud-instance-to-a-fresh-server-with-bash-ansible/</guid><description>&lt;p&gt;&lt;em&gt;(This article is the logical follow-up to the backup script described here: &lt;a href="https://www.apt-upgrade.me/2025/07/11/%f0%9f%9b%a1%ef%b8%8f-nextcloud-backup-like-a-pro-automated-with-bash/" target="_blank" rel="noopener"&gt;Nextcloud Backup Like a Pro – Automated with Bash&lt;/a&gt;. Both posts go hand in hand to complete the full migration and disaster recovery (workflow.)&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;After several years of running a trusty &lt;strong&gt;Nextcloud&lt;/strong&gt; instance — complete with countless user files, calendars, contacts, and quirky shared folders — it was time for an upgrade. The old server was showing signs of age, and a shiny new machine had been provisioned with &lt;strong&gt;Ansible&lt;/strong&gt; for a clean start.&lt;/p&gt;</description></item><item><title>🛡️🧙‍♂️ Deploying Nextcloud: My Ansible Quest for Ultimate Automation ⚔️☁️</title><link>https://www.apt-upgrade.me/2025/07/08/%F0%9F%9B%A1%EF%B8%8F%F0%9F%A7%99%E2%99%82%EF%B8%8F-deploying-nextcloud-my-ansible-quest-for-ultimate-automation-%E2%9A%94%EF%B8%8F%E2%98%81%EF%B8%8F/</link><pubDate>Tue, 08 Jul 2025 20:07:17 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/07/08/%F0%9F%9B%A1%EF%B8%8F%F0%9F%A7%99%E2%99%82%EF%B8%8F-deploying-nextcloud-my-ansible-quest-for-ultimate-automation-%E2%9A%94%EF%B8%8F%E2%98%81%EF%B8%8F/</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>How I Back Up My Mom’s PC Over VPN — Without the Cloud (or Headaches)</title><link>https://www.apt-upgrade.me/2025/06/05/how-i-back-up-my-moms-pc-over-vpn-without-the-cloud-or-headaches/</link><pubDate>Thu, 05 Jun 2025 21:06:23 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/06/05/how-i-back-up-my-moms-pc-over-vpn-without-the-cloud-or-headaches/</guid><description>&lt;p&gt;Let’s be honest: keeping family members’ devices backed up is something many of us in tech &lt;em&gt;mean&lt;/em&gt; to do — but often don’t. Between the complexity of cloud solutions, the privacy concerns, and the general “if it ain’t broken, don’t touch it” mentality, it’s easy to postpone.&lt;/p&gt;&#10;&lt;p&gt;I finally decided to set up a &lt;strong&gt;simple, reliable, and fully automated backup solution&lt;/strong&gt; for my mother’s PC. Since she lives in a different city, remote access and automation were essential from the beginning. The requirements were clear:&lt;/p&gt;</description></item><item><title>Patch Me If You Can: Keeping Debian VMs Updated with Ansible (Without Losing My Weekend)</title><link>https://www.apt-upgrade.me/2025/05/28/patch-me-if-you-can-keeping-debian-vms-updated-with-ansible/</link><pubDate>Wed, 28 May 2025 09:09:17 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/05/28/patch-me-if-you-can-keeping-debian-vms-updated-with-ansible/</guid><description>&lt;p&gt;I have around 12 Debian-based VMs running in my homelab. A while ago, I used to update them all manually — one by one. SSH into each machine, run &lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade&lt;/code&gt;, wait, reboot if needed... then repeat. It worked, but it was slow, boring, and very easy to forget one or two machines.&lt;/p&gt;&#10;&lt;p&gt;Now I use &lt;strong&gt;Ansible&lt;/strong&gt; to handle everything for me. I wrote a simple playbook, and with &lt;strong&gt;just one command&lt;/strong&gt;, all my VMs update &lt;strong&gt;in parallel&lt;/strong&gt;. If any of them need a reboot, &lt;a href="https://docs.ansible.com/"&gt;Ansible&lt;/a&gt; checks for that and takes care of it too. I just run the playbook and let the automation do the heavy lifting.&lt;/p&gt;</description></item><item><title>📡 Shipping Logs Like a Pro: Fluent Bit Meets Ansible in My Homelab</title><link>https://www.apt-upgrade.me/2025/05/26/%F0%9F%93%A1-shipping-logs-like-a-pro-fluent-bit-meets-ansible-in-my-homelab/</link><pubDate>Mon, 26 May 2025 13:01:05 +0200</pubDate><guid>https://www.apt-upgrade.me/2025/05/26/%F0%9F%93%A1-shipping-logs-like-a-pro-fluent-bit-meets-ansible-in-my-homelab/</guid><description>&lt;p&gt;By now, my little homelab has grown into a small but mighty fleet of virtual machines — almost a dozen of them are humming along nicely. But with more services come more logs… and more chaos. 🌀&lt;/p&gt;&#10;&lt;p&gt;To bring order to that chaos, I&amp;rsquo;m using the open-source log shipper &lt;strong&gt;Fluent Bit&lt;/strong&gt; to collect logs from all my VMs and forward them to a centralized &lt;strong&gt;OpenSearch&lt;/strong&gt; instance for analysis and visualization.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;The goal?&lt;/strong&gt; &lt;em&gt;Collect everything&lt;/em&gt; — from disk space warnings, failed login attempts, and systemd noise to juicy kernel messages. All logs across all my machines should end up neatly indexed and searchable in a single OpenSearch dashboard.&lt;/p&gt;</description></item></channel></rss>