<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MariaDB – apt-upgrade.me – Homelab, Linux &amp; DevSecOps</title><link>https://www.apt-upgrade.me/tag/mariadb/</link><description>One nerd's homelab: Linux, Kubernetes, security, and the occasional disaster.</description><language>en-US</language><lastBuildDate>Mon, 19 Oct 2026 15:52:20 +0200</lastBuildDate><atom:link href="https://www.apt-upgrade.me/tag/mariadb/index.xml" rel="self" type="application/rss+xml"/><item><title>The Ansible Tour, Part 4: Nextcloud – Collabora, Push, Host Database and occ, Role by Role</title><link>https://www.apt-upgrade.me/2026/10/19/ansible-tour-part-4-nextcloud/</link><pubDate>Mon, 19 Oct 2026 15:52:20 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/19/ansible-tour-part-4-nextcloud/</guid><description>&lt;p&gt;&lt;em&gt;Part 4 of the &lt;a href="https://www.apt-upgrade.me/2026/10/14/ansible-tour-part-1-framework/"&gt;Ansible Tour&lt;/a&gt;. After the blog in &lt;a href="https://www.apt-upgrade.me/2026/10/16/ansible-tour-part-3-blog/"&gt;part 3&lt;/a&gt;, here comes the second application: Nextcloud. The series describes release &lt;a href="https://github.com/aptupgrademe/www_k3s/tree/v3.3.0"&gt;v3.3.0&lt;/a&gt;, with later changes added as updates. What matches the blog is only mentioned briefly; the focus is on what is different.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Nextcloud is a file cloud: files, calendars, contacts, team folders and – with Collabora – documents edited together in the browser. Two of the three servers run it, for groups of very different size, with the same code and different values in the inventory. The work is shared by &lt;code&gt;next_mariadb&lt;/code&gt; and &lt;code&gt;next_redis&lt;/code&gt; (database and cache on the host), &lt;code&gt;next_k3s_deploy&lt;/code&gt; (Nextcloud, Collabora and the push service as Kubernetes objects), &lt;code&gt;next_config&lt;/code&gt; (Nextcloud’s settings) and &lt;code&gt;nextcloud_verify&lt;/code&gt;, plus the update playbook.&lt;/p&gt;</description></item><item><title>The Ansible Tour, Part 3: The Blog – WordPress, MariaDB and Redis on K3s, Role by Role</title><link>https://www.apt-upgrade.me/2026/10/16/ansible-tour-part-3-blog/</link><pubDate>Fri, 16 Oct 2026 12:31:10 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/16/ansible-tour-part-3-blog/</guid><description>&lt;p&gt;&lt;em&gt;Part 3 of the &lt;a href="https://www.apt-upgrade.me/2026/10/14/ansible-tour-part-1-framework/"&gt;Ansible Tour&lt;/a&gt;. &lt;a href="https://www.apt-upgrade.me/2026/10/15/ansible-tour-part-2-platform/"&gt;Part 2&lt;/a&gt; built the platform; this part puts the blog on it. The series describes release &lt;a href="https://github.com/aptupgrademe/www_k3s/tree/v3.3.0"&gt;v3.3.0&lt;/a&gt;, with later changes added as updates.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;This blog is WordPress. Four roles take it from an empty Kubernetes cluster to a running, configured and monitored website: &lt;code&gt;blog_k3s_deploy&lt;/code&gt; creates all Kubernetes objects, &lt;code&gt;blog_wordpress&lt;/code&gt; configures the running WordPress from the outside, &lt;code&gt;blog_visitor_stats&lt;/code&gt; counts the visitors anonymously at night, and &lt;code&gt;blog_verify&lt;/code&gt; checks at the end that everything works. An update playbook keeps the blog current.&lt;/p&gt;</description></item><item><title>Bare Metal to K3s: A Nextcloud Migration Battle Log</title><link>https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/</link><pubDate>Mon, 21 Sep 2026 21:50:44 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/</guid><description>&lt;p&gt;Today I moved a production &lt;a href="https://nextcloud.com/"&gt;Nextcloud&lt;/a&gt; from a cozy &lt;strong&gt;native bare-metal install&lt;/strong&gt; to a shiny &lt;strong&gt;K3s/container&lt;/strong&gt; stack. On paper: pull a backup, restore it, flip DNS, done. In practice: a series of small landmines, each invisible until you step on it. Here&amp;rsquo;s the battle log. 🪖&lt;/p&gt;&#10;&lt;h2 id="step-1-shovel-the-data-"&gt;Step 1: shovel the data 🚚&lt;/h2&gt;&#10;&lt;p&gt;The heavy lifting was an &lt;code&gt;rsync&lt;/code&gt; of ~360 GB of user data plus a ~330 MB SQL dump from the backup box into the new node. Because I pre-synced earlier in the day, the final run only shipped the delta — the whole thing came down to a fast incremental copy. Lesson old as time: &lt;em&gt;pre-seed, then the cutover sync is tiny.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>One Year Later: I Finally Open-Sourced My Homelab K3s Stack</title><link>https://www.apt-upgrade.me/2026/05/17/one-year-later-i-finally-open-sourced-my-homelab-k3s-stack/</link><pubDate>Sun, 17 May 2026 19:34:12 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/05/17/one-year-later-i-finally-open-sourced-my-homelab-k3s-stack/</guid><description>&lt;p&gt;In a few of my recent posts I mentioned that I was trying to figure out how to publish my homelab automation code *without accidentally open-sourcing my entire infrastructure along with it* 😅&lt;/p&gt;&#10;&lt;p&gt;Turns out that&amp;rsquo;s a surprisingly non-trivial problem when your Ansible inventory looks like a cyberpunk treasure chest full of vaults, secrets and host-specific variables. 🔐🐉&lt;/p&gt;&#10;&lt;p&gt;After a bit of trial, error, caffeine and questionable life choices… I finally found a setup that works beautifully:&lt;/p&gt;</description></item><item><title>git log –since=”1 year ago”: One Year of apt-upgrade.me &amp;&amp; Publishing the Ansible Playbooks for Nextcloud on K3s</title><link>https://www.apt-upgrade.me/2026/05/15/git-log-since1-year-ago-one-year-of-apt-upgrade-me-publishing-the-ansible-playbooks-for-nextcloud-on-k3s/</link><pubDate>Fri, 15 May 2026 14:18:55 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/05/15/git-log-since1-year-ago-one-year-of-apt-upgrade-me-publishing-the-ansible-playbooks-for-nextcloud-on-k3s/</guid><description>&lt;p&gt;There comes a point in every homelab journey where you look at your pile of&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;bash scripts&lt;/strong&gt;, hand-crafted config files, and sticky notes that say things like&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;&amp;ldquo;remember to chown /data before starting&amp;rdquo;&lt;/em&gt; — and you decide:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;enough.&lt;/strong&gt; 😅&lt;/p&gt;&#10;&lt;p&gt;This is that post. Today I&amp;rsquo;m publishing the Ansible playbooks I&amp;rsquo;ve been using to deploy&lt;/p&gt;&#10;&lt;p&gt;and operate &lt;strong&gt;Nextcloud&lt;/strong&gt; ☁️ and &lt;strong&gt;WordPress&lt;/strong&gt; 📝 on a&lt;/p&gt;&#10;&lt;p&gt;single-node K3s cluster running on AlmaLinux 9.&lt;/p&gt;&#10;&lt;p&gt;Everything is &lt;strong&gt;infrastructure-as-code&lt;/strong&gt;, fully &lt;em&gt;idempotent&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>How to Summon an Observability Beast: Installing Icinga 2 + IcingaDB + Web + Director on Debian</title><link>https://www.apt-upgrade.me/2025/12/09/how-to-summon-an-observability-beast-installing-icinga-2-icingadb-web-director-on-debian/</link><pubDate>Tue, 09 Dec 2025 21:26:05 +0100</pubDate><guid>https://www.apt-upgrade.me/2025/12/09/how-to-summon-an-observability-beast-installing-icinga-2-icingadb-web-director-on-debian/</guid><description>&lt;p&gt;&lt;em&gt;A nerdy homelab story featuring Redis, too many databases, and not enough sleep.&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="-introduction"&gt;📝 Introduction&lt;/h2&gt;&#10;&lt;p&gt;Congratulations, traveler. If you’re reading this, you’ve decided to &lt;strong&gt;monitor your homelab like a responsible adult&lt;/strong&gt; instead of performing the ancient ritual of &lt;em&gt;“turn it off and on again”&lt;/em&gt;.&lt;/p&gt;&#10;&lt;p&gt;This post summarizes — at a high, meta, slightly sarcastic nerd-level — how you assemble the full modern Icinga monitoring stack on Debian:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Icinga 2&lt;/strong&gt; – the core engine&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Redis&lt;/strong&gt; – the lightning-fast event mailbox&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;IcingaDB&lt;/strong&gt; – the shiny new database backend&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MariaDB/PostgreSQL&lt;/strong&gt; – the long-term memory crystal&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Icinga Web 2&lt;/strong&gt; – the visual scrying interface&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Icinga Director&lt;/strong&gt; – your configuration spellbook&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;To add to the epicness: today I participated in a full-day online training by &lt;strong&gt;NETWAYS from Nuremberg&lt;/strong&gt;, which continues for the next &lt;strong&gt;four days&lt;/strong&gt;. After a long day of learning, I spent the evening installing Icinga on my homelab server — successfully! Now that everything is running, I’m heading straight to bed. Even monitoring nerds need their uptime.&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></channel></rss>