<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>K3s-Nm on Janusworx</title><link>https://janusworx.com/tags/k3s-nm/</link><description>Recent content in K3s-Nm on Janusworx</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>feedback@janusworx.com (Mario Jason Braganza)</managingEditor><webMaster>feedback@janusworx.com (Mario Jason Braganza)</webMaster><copyright>© 2026, Mario Jason Braganza</copyright><lastBuildDate>Tue, 03 Feb 2026 11:06:30 +0530</lastBuildDate><atom:link href="https://janusworx.com/tags/k3s-nm/index.xml" rel="self" type="application/rss+xml"/><item><title>2026-02-03 Notes</title><link>https://janusworx.com/nm/2026-02-03/</link><pubDate>Tue, 03 Feb 2026 11:06:30 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-02-03/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Play with and configure Kitty as another option for my terminal&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Work on ZNC&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-02-03 11:00
 &lt;div id="2026-02-03-1100" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-02-03-1100" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;While I got the basics working &lt;a href="https://janusworx.com/nm/2026-01-29/" &gt;the other day&lt;/a&gt;, I finished the rest of the work and got &lt;a href="https://sw.kovidgoyal.net/kitty/overview/" target="_blank" rel="noreferrer"&gt;Kitty&lt;/a&gt; working just the way I want it. I can now launch kitty via ulauncher or gnome-terminal and get a Kitty layout for writing just like I used to&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, with Tmux and Zellij. And now I can copy and paste text as well! Blessed relief!&lt;/li&gt;
&lt;li&gt;Now on to getting my ZNC up and running!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 11:34:&lt;/em&gt; Note to self: I am calling ZNC images in two places in my deployment. Make sure their versions always stay in sync via flux updations&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 12:12:&lt;/em&gt; Ok, figured out the reason for my znc misery. ZNC can accept both irc as well as http traffic on the same port. And if I want traefik to be able to route both sorts of traffic to znc then I cannot terminate tls at traefik. Which I really, really want. Because I don’t want the headache of keeping track of which applications can maintain their own certs and which don’t. Simplest thing (which ZNC supports) is to add another listener port to ZNC. IRC traffic goes to one port, web traffic to another and hopefully all will be well. That’s the idea, in theory at least. Now to go try it out.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 12:22:&lt;/em&gt; Ok. Change znc config to accept web connections on another port and redeployed the pod. Now to get web traffic working first&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 12:29:&lt;/em&gt; It works! My ZNC website is up! Now to go figure out how to route IRC traffic.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 12:47:&lt;/em&gt; Lunch!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-02-03 13:10
 &lt;div id="2026-02-03-1310" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-02-03-1310" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 13:32:&lt;/em&gt; Ok sorta kinda wrote the ingressRouteTCP rule. Now to deploy and test&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 14:38:&lt;/em&gt; It works! ZNC is alive! Will know tomorrow if my history buffers hold :)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 14:49:&lt;/em&gt; Tried a reboot. Still lost history. Need to configure ZNC probably. Checking that now.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 15:30:&lt;/em&gt; Tea time&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 16:00:&lt;/em&gt; Walk&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-02-03 17:40
 &lt;div id="2026-02-03-1740" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-02-03-1740" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;Trying to quickly see if there’s any Lightroom alternative out there in Linux land, that is not Darktable.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 18:00:&lt;/em&gt; Found one. It’s Darktable! But I found that it now has a Sigmoid workflow, that gives me a very Lightroom-esque workflow. Or maybe it’s just that the interface has changed to where I find it familiar. Anyhoo, this makes me so happy! Finally, I can now invest the time in a new tool :)&lt;/li&gt;
&lt;li&gt;Now to some NMC work.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 18:48:&lt;/em&gt; Done. Now to get ZNC to update itself. &lt;em&gt;19:15:&lt;/em&gt; Done!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-02-03 19:25:&lt;/em&gt; Schedule, shutdown complete!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-02-03 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;3 paned layout.&lt;br&gt;
Large pane on the right. For me. For writing or commands or whatever.&lt;br&gt;
Top left pane to run Hugo Liveserver; bottom left pane to run a script that watches today’s daily note and keeps committing to it to the code repo to auto publish&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>2026-01-29 Notes</title><link>https://janusworx.com/nm/2026-01-29/</link><pubDate>Thu, 29 Jan 2026 10:34:21 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-01-29/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Play with and configure Kitty as another option for my terminal&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Work on ZNC&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-01-29 10:40
 &lt;div id="2026-01-29-1040" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-29-1040" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Got tired of being unable to cut and paste out of Tmux and Zellij. Realised what I want is a terminal that lets me do that, not necessarily a muxer. Something that lets me cut and paste text and have layout my little windows in the way I want. The &lt;a href="https://sw.kovidgoyal.net/kitty/overview/" target="_blank" rel="noreferrer"&gt;Kitty&lt;/a&gt; docs suggest this is possible. So I’m giving it a spin.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 10:41:&lt;/em&gt; Do some NMC work first.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 10:41:&lt;/em&gt; Some tea first!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 11:05:&lt;/em&gt; Ok, now NMC work.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 11:26:&lt;/em&gt; Alright, now to go play with Kitty.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 12:16:&lt;/em&gt; Found a theme I liked. (Github Dark. The default theme is called default)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 15:45:&lt;/em&gt; Still struggling. Break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-29 18:45
 &lt;div id="2026-01-29-1845" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-29-1845" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back at work. Found an &lt;a href="https://sw.kovidgoyal.net/kitty/sessions/#sessions" target="_blank" rel="noreferrer"&gt;&lt;em&gt;exact&lt;/em&gt; sample&lt;/a&gt; of what I wanted done in the Kitty docs.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-29 19:30:&lt;/em&gt; Adapted it. Applied it. It works. Done!&lt;/li&gt;
&lt;li&gt;Calling it a night&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-01-29 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2026-01-28 Notes</title><link>https://janusworx.com/nm/2026-01-28/</link><pubDate>Wed, 28 Jan 2026 11:03:17 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-01-28/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Work on ZNC&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Attend my first contribex meeting&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-01-28 12:00
 &lt;div id="2026-01-28-1200" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-28-1200" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Picking up the pieces after a break is darned hard&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-28 19:00
 &lt;div id="2026-01-28-1900" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-28-1900" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Got halfway up to speed.&lt;/li&gt;
&lt;li&gt;Will struggle more tomorrow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-01-28 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2026-01-15 Notes</title><link>https://janusworx.com/nm/2026-01-15/</link><pubDate>Thu, 15 Jan 2026 10:48:18 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-01-15/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;I completely borked my Traefik deployment yesterday and brought down all my sites and web apps.
Spent the day fixing it.&lt;br&gt;
Today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Vote in the local elections&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Continue with my IRC+ZNC quest&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-01-15 10:50
 &lt;div id="2026-01-15-1050" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-15-1050" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Starting with my Duolingo&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-15 11:32:&lt;/em&gt; Break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-15 14:20
 &lt;div id="2026-01-15-1420" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-15-1420" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrading Mint.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-01-15 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2026-01-14 Notes</title><link>https://janusworx.com/nm/2026-01-14/</link><pubDate>Wed, 14 Jan 2026 08:21:12 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-01-14/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;First day with new time table and I’m already behind. Will need to track how much time I spend on morning tasks and be more realistic&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Continue with my work to get IRC+ZNC working on th cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-01-14 10:15
 &lt;div id="2026-01-14-1015" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-14-1015" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Switched to doing Duoling on the desktop. It feels slightly better. Will keep at it.&lt;/li&gt;
&lt;li&gt;Tea time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-14 10:30
 &lt;div id="2026-01-14-1030" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-14-1030" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Now to start on my IRC+ZNC travails&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 11:14:&lt;/em&gt; Think I am going to split them into two separate deployments. They are not going to talk to each other internally anyway. Tackling &lt;del&gt;ZNC&lt;/del&gt; theLounge first.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 12:08:&lt;/em&gt; theLounge is up. Moving on to getting ZNC up and running.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 12:42:&lt;/em&gt; Creating deployments isn’t the hard part. Creating deployments that are gitops ready is.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 12:52:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-14 13:10
 &lt;div id="2026-01-14-1310" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-14-1310" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;Figured it out. Needed an &lt;a href="https://willvaughn.org/articles/running-znc-bouncer-with-k3s/" target="_blank" rel="noreferrer"&gt;init container&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 14:26:&lt;/em&gt; Nap&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-14 16:55
 &lt;div id="2026-01-14-1655" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-14-1655" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back from a walk&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 18:35:&lt;/em&gt; Borked my traefik totally&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-14 19:42:&lt;/em&gt; Got Traefik running. Will do the rest tomorrow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-01-14 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2026-01-13 Notes</title><link>https://janusworx.com/nm/2026-01-13/</link><pubDate>Tue, 13 Jan 2026 10:37:19 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-01-13/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get out of my slump&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Do NMC work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Start Duolingo again&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Redo morning routine to better fit my morning energy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Redo my IRC deployment on Janus&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-01-13 10:40
 &lt;div id="2026-01-13-1040" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-13-1040" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Instant distraction. Trying to figure out if my writing life will get any simpler by switching to &lt;a href="https://ox-hugo.scripter.co/" target="_blank" rel="noreferrer"&gt;ox-hugo&lt;/a&gt;. (A few moments later … No it won’t. My weird workflow, still works for me.)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 11:05:&lt;/em&gt; Ok, buckled down and finished up with my day organisation&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 11:51:&lt;/em&gt; Done with Duolingo&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 13:15:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-13 14:15
 &lt;div id="2026-01-13-1415" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-13-1415" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;Slowly working on my IRC+ZNC combo&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 16:06:&lt;/em&gt; Got distracted with a issue with my network. Back to work&lt;/li&gt;
&lt;li&gt;Move all the old files out. Deleted my namespace. Deleted the deploy on the cluster&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 18:25:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-13 20:25
 &lt;div id="2026-01-13-2025" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-13-2025" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Been thinking hard about how to achieve two way sync between a container and my home machine. Syncthing still seems to be the best bet&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 20:56:&lt;/em&gt; Working on getting a folder setup for ZNC to use&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-13 22:00:&lt;/em&gt; Got syncthing to work and got znc to look at the folder. But it does not seem to login. Will continue tomorrow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-01-13 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2026-01-05 Notes</title><link>https://janusworx.com/nm/2026-01-05/</link><pubDate>Mon, 05 Jan 2026 08:26:33 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2026-01-05/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Happy New Year! 🎉&lt;/li&gt;
&lt;li&gt;Nothing much happened over Chrismas break.&lt;/li&gt;
&lt;li&gt;I wanted to finish a couple of long pending books on IPv6 and Computer Architecture, but I couldn’t find the time.&lt;/li&gt;
&lt;li&gt;Today I decided to add a new service to the cluster. Am going to hunt for some book tracking service and use that to for my books.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://janusworx.com/archives/#2025" &gt;143 posts in 2025.&lt;/a&gt; This once I feel pretty proud. Most of them are these notes. But even that counts. I wanted a sustained writing habit, and this was the first year, I wrote all throughout.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2026-01-05 08:45
 &lt;div id="2026-01-05-0845" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-05-0845" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Coffee time!&lt;/li&gt;
&lt;li&gt;I need to be done by 2!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 08:55:&lt;/em&gt; Got distracted, went looking for &lt;a href="https://www.goodreads.com/review/show/6066616246" target="_blank" rel="noreferrer"&gt;updates&lt;/a&gt; on &lt;a href="https://www.goodreads.com/review/show/3033788007" target="_blank" rel="noreferrer"&gt;Alecto&lt;/a&gt;, instead of looking for my book software&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 09:00:&lt;/em&gt; Found Booklogr. Trying it out.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 09:10:&lt;/em&gt; Nope. Not for me.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 09:13:&lt;/em&gt; Found Jelu.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 09:17:&lt;/em&gt; Nope. Continuing Search&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 09:23:&lt;/em&gt; Found Tome&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 09:49:&lt;/em&gt; Nope&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 10:02:&lt;/em&gt; Not booktracker&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 10:23:&lt;/em&gt; Not Koha. Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-05 10:50
 &lt;div id="2026-01-05-1050" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-05-1050" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. If I don’t find stuff, then I probably will use one of the above tools.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 11:12:&lt;/em&gt; Just remembered a fan of the Cal Newport podcast had built a similar page in Notion. Looking at if I can do something similar with Obsidian or Affine&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 11:25:&lt;/em&gt; Too fidgety&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 11:33:&lt;/em&gt; Trying booklogr again. Nope. Back to Obsidian&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 12:45:&lt;/em&gt; Gave up on Obsidian. It’s not fun. I’m going to have to install Bookwyrm, aren’t I?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 13:14:&lt;/em&gt; Gave up. Will stick to the same old, same old, plain reading post this year. And keep an eye out for something that’ll help me.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2026-01-05 13:36:&lt;/em&gt; Created a new page for this years reading. Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2026-01-05 19:15
 &lt;div id="2026-01-05-1915" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2026-01-05-1915" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Time for bed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2026-01-05 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-19 Notes</title><link>https://janusworx.com/nm/2025-12-19/</link><pubDate>Fri, 19 Dec 2025 07:04:20 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-19/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Everything came to a head yesterday. Was able to bend the last two months of learning towards quickly moving most of my remaining services across. All that’s left is Anki and a few finishing touches.&lt;/li&gt;
&lt;li&gt;Today
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan!&lt;/a&gt;, to see if anything needs adding or changing.&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Add my CI/CD runner key to the new VM via Ansible&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move Anki to the server.&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out if image updations for the new apps and create them if warranted.
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Hedgedoc&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Huginn: do it the old fashioned way. Reminder in org mode to check for a new release every quarter and upgrade manually&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Joplin&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Mastodon Archive Blog&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Decommission the old VM. Au revoir, mon ami!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-19 08:10
 &lt;div id="2025-12-19-0810" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-0810" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Begin!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 08:15:&lt;/em&gt; All this work has proven itself. All I had to do to update Lego on the VM was update a variable and run my ansible-pull script!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 08:20:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-19 08:55
 &lt;div id="2025-12-19-0855" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-0855" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;Reading up on how to wrangle a Python container&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 09:15:&lt;/em&gt; Moved Anki’s DNS to point to the new VM. That’s the last of it. All my records now point to the new VM.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 09:28:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-19 11:00
 &lt;div id="2025-12-19-1100" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-1100" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 12:03:&lt;/em&gt; Built a small Anki image, by pip installing into the standard Python image&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 12:41:&lt;/em&gt; Slimmed the image and uploaded it. Lunch break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-19 13:10
 &lt;div id="2025-12-19-1310" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-1310" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-19 14:15
 &lt;div id="2025-12-19-1415" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-1415" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;And we’re done!&lt;/li&gt;
&lt;li&gt;Goodbye Janus! You were a good VM!&lt;/li&gt;
&lt;/ul&gt;

&lt;figure&gt;
 &lt;img class="my-0 rounded-md" src="https://janusworx.com/images/2025/janus-vm.png" alt=" " /&gt;
 
 
 &lt;/figure&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-19 14:30
 &lt;div id="2025-12-19-1430" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-1430" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Break. Back later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-19 16:25
 &lt;div id="2025-12-19-1625" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-19-1625" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 16:48:&lt;/em&gt; Got ansible to install the public key for Forgejo blog deploys to the VM.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-19 17:50:&lt;/em&gt; Most all apps now update themselves thanks to Flux CD.&lt;/li&gt;
&lt;li&gt;The doing was fun! And now to slow down and think and write about all I’ve done.&lt;/li&gt;
&lt;li&gt;Also think of some project that I could deploy on AWS, so I can show that off as part of my portfolio.&lt;/li&gt;
&lt;li&gt;But right now, to enjoy Christmas break. I will be sporadic until the next year.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-19 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-18 Notes</title><link>https://janusworx.com/nm/2025-12-18/</link><pubDate>Thu, 18 Dec 2025 08:34:56 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-18/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Got Sendy to move. It felt like pushing Pinko’s (my big stray mutt) butt across the floor when he does &lt;em&gt;not&lt;/em&gt; want to move. I can now craft and send emails to my little list from the cluster! My old sysadmin skills are proving darned handy here.&lt;/li&gt;
&lt;li&gt;Am also getting better at troubleshooting stuff when it does not work …&lt;/li&gt;
&lt;li&gt;Today
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan!&lt;/a&gt;, to see if anything needs adding or changing&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move Joplin Server to the cluster&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move Hedgedoc to the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-18 08:40
 &lt;div id="2025-12-18-0840" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-18-0840" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Let’s begin.&lt;/li&gt;
&lt;li&gt;Pointing Joplin to the new server location so that the original one stops serving requests and lets me back it up&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 09:30:&lt;/em&gt; Zipped up all the data and moved it from the old server to the new one. Thank you Syncthing!&lt;/li&gt;
&lt;li&gt;Created a namespace and dumped all the environment variables from the old &lt;code&gt;.env&lt;/code&gt; file into a secret.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 09:52:&lt;/em&gt; Moved some data out into a configmap&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 12:48:&lt;/em&gt; Lunch. Was struggling with two containers in the same pod. This approach does not seem to jibe well with the Joplin image. Will come back and split it into two pods.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-18 14:00
 &lt;div id="2025-12-18-1400" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-18-1400" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back at it&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 14:38:&lt;/em&gt; And now that there are multiple containers, everything just works. Joplin has moved over. Hedgedoc is next!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 18:13:&lt;/em&gt; Hedgedoc done.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 19:13:&lt;/em&gt; Got the mastodon archive site down to my local machine, committed to git and publishing to the new server, just like the main site.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-18 21:05:&lt;/em&gt; Only one service remaining. All the others have moved! 🎉&lt;/li&gt;
&lt;li&gt;Tomorrow:
&lt;ul&gt;
&lt;li&gt;Add Moi’s key to authorised keys on the remote machine, via Ansible&lt;/li&gt;
&lt;li&gt;Create a folder for moi to publish files to&lt;/li&gt;
&lt;li&gt;Move Anki&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-18 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-17 Notes</title><link>https://janusworx.com/nm/2025-12-17/</link><pubDate>Wed, 17 Dec 2025 07:48:01 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-17/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Sendy is proving to be quite hard. Continuing work on moving it today.&lt;/li&gt;
&lt;li&gt;Today
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan!&lt;/a&gt;, to see if anything needs adding or changing&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move Sendy (my email list software) to the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-17 07:50
 &lt;div id="2025-12-17-0750" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-17-0750" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Let’s dive in.&lt;/li&gt;
&lt;li&gt;Will first start with trying to replace the current php/apache image I am using with one from Ubuntu. (A few minutes later … nope!)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 08:07:&lt;/em&gt; From Sendy’s docs, it looks like I need more php extensions than are provided. There are &lt;a href="https://github.com/bubbajames-docker/sendy/blob/master/Dockerfile" target="_blank" rel="noreferrer"&gt;good folks on the net, who have already done this work!&lt;/a&gt; Will copy and adapt.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 08:08:&lt;/em&gt; Screw adapt. I think I will just copy. The only adaptation I think I will do is figure out how to enable Docker repos on forgejo and use them as a private repo, so I can do this in a private pipeline. Quite a bit of yak shaving this is turning out to be!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-17 09:15
 &lt;div id="2025-12-17-0915" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-17-0915" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Created a new user and transferred most of the git repos I did not use to it.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 09:41:&lt;/em&gt; Modified my git backup services and ensured they were still running.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 10:03:&lt;/em&gt; Update profile. Tea break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-17 10:35
 &lt;div id="2025-12-17-1035" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-17-1035" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Trying to figure out docker login for forgejo now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 10:52:&lt;/em&gt; Forgejo confige changed. Docker login succeeded. Now to figure out how to make and upload one there&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 12:15:&lt;/em&gt; Built and pushed and used and tested a basic apache+php image to the private repo&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 12:16:&lt;/em&gt; I always wondered what it would be like to build my own docker image. Well, I don’t have to wonder any longer 😂 Now to spend the rest of the day, beavering at creating one for sendy&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 12:24:&lt;/em&gt; Lunch break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-17 12:50
 &lt;div id="2025-12-17-1250" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-17-1250" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Getting something sorta kinda working locally.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 13:55:&lt;/em&gt; Nap&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-17 14:08
 &lt;div id="2025-12-17-1408" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-17-1408" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Now trying my tiny custom apache/php image on the cluster&lt;/li&gt;
&lt;li&gt;Figured that I need a secret of the type:&lt;code&gt;docker-registry&lt;/code&gt; to stuff my code forge’s credentials into&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 15:30:&lt;/em&gt; Got the basic install working with my custom image! Needs a bit of tweaking to automate mail sending. Manual stuff works! Tea break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;&lt;em&gt;2025-12-17 16:00&lt;/em&gt;
 &lt;div id="2025-12-17-1600" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-17-1600" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 17:26:&lt;/em&gt; Most of my stumbles seem to be something I never could have foreseen. Am struggling with cron jobs in a container as I write this&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 18:06:&lt;/em&gt; One final tweak to cronjobs and everything clicked into place and started working!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 18:20:&lt;/em&gt; Cleaning up everything.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-17 18:22:&lt;/em&gt; Packing up for today. Tomorrow, Joplin!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-17 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-16 Notes</title><link>https://janusworx.com/nm/2025-12-16/</link><pubDate>Tue, 16 Dec 2025 09:13:12 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-16/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Yesterday was was quite hard, but it ended in the traefik on the cluster, managing its own certificates rather than me having to provide it manually. My IRC client (theLounge IRC) moved as well.&lt;/li&gt;
&lt;li&gt;Today
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan!&lt;/a&gt;, to see if anything needs adding or changing&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Move Sendy (my email list software) to the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-16 09:20
 &lt;div id="2025-12-16-0920" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-16-0920" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Let’s start (at the very beginning … )&lt;/li&gt;
&lt;li&gt;I like the fact, that despite all the upheavel, my writing process has essentially remained unaffected. I don’t think I had a single day I could not write and publish my thoughts and updates as I go through the move. I am grateful to the &lt;a href="https://en.wikipedia.org/wiki/Muses" target="_blank" rel="noreferrer"&gt;muses&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Fates" target="_blank" rel="noreferrer"&gt;the kindly ones&lt;/a&gt; for that&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 10:22:&lt;/em&gt; Been doing research on sendy migrations. Tea break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-16 10:45
 &lt;div id="2025-12-16-1045" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-16-1045" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Continuing research&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 11:18:&lt;/em&gt; Too tough to do directly online in production. Trying stuff on the home cluster first&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 12:28:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-16 12:55
 &lt;div id="2025-12-16-1255" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-16-1255" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back to work&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 13:57:&lt;/em&gt; Overwhelmed. Doing some other chores for a bit&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 14:32:&lt;/em&gt; Back at work&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 14:56:&lt;/em&gt; Gave up on the idea of locally doing this. Too cumbersome. Will try it online&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 17:10:&lt;/em&gt; Figured that I’d use the hostpath approach just like I did for the Hugo blog. Being single node makes a lot of things really easy. I really need to do a bigger multi-node cluster to understand what’s on the other side though. I’d hazard that data and databases are out in some shared thing somewhere, not in the cluster&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 17:19:&lt;/em&gt; Also realised that there’s a fantastic MariaDB helm chart, but I’m sticking to my manual copy/paste/adapt of a simpler docker image, since my needs are not complex.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-16 19:35:&lt;/em&gt; Giving up for today. Will continue tomorrow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-16 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-15 Notes</title><link>https://janusworx.com/nm/2025-12-15/</link><pubDate>Mon, 15 Dec 2025 08:40:19 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-15/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Had some time yesterday and realised, I must have gotten out of &lt;a href="https://janusworx.com/nm/2025-12-10/#:~:text=got%20locked%20out" &gt;Letsencrypt jail&lt;/a&gt; by now. So I decided to tackle my certificate situation. Figured out how to generate a cert and renew it. And put them into my Ansible tasks&lt;/li&gt;
&lt;li&gt;Low hanging yet extremely important to me, my contacts and calendar moved from the old VM to the new cluster on Saturday&lt;/li&gt;
&lt;li&gt;Today
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan!&lt;/a&gt;, to see if anything needs adding or changing&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out to get the newly minted certificates into the cluster (Settled on traefik generating certs independantly in-cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; ~~ &lt;del&gt;Move Sendy (Email list)&lt;/del&gt; ~~ not today&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move IRC (theLounge), if there is time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-15 09:10
 &lt;div id="2025-12-15-0910" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-15-0910" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update the Big Plan to make the &lt;em&gt;why&lt;/em&gt; more explicit do near future Jason, when he decides to tear his hair out, or tries to overengineer things&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 09:43:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-15 10:25
 &lt;div id="2025-12-15-1025" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-15-1025" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;While I was on the break, I was thinking about the certs, and whether I’m missing something. I need the certs on the node. At least for now. Ok. Now the question becomes, how do I convert it into a sealed secret and push it into the cluster itself? Do it on the VM? That’ll mean putting kubeseal on the VM. Do it at home on my main machine? What happens when I am not there and the machine is off? Do it on a &lt;em&gt;third&lt;/em&gt; machine? How do I now integrate that bugger into my flow? Hmmm. Thinking a bit more …&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 10:33:&lt;/em&gt; Should a runner on my code forge do it? I’ll need to save the sealed-secret there then? Do I have something against having a copy of my repo on the VM? That happens with Ansible Pull anyway? Oh, but that is a different repo.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 10:46:&lt;/em&gt; Taking the simplest (and most secure) route for now and doing it all locally. The only (only but BIG) con I see to this approach is if my main machine is off for a few days or I am travelling and &lt;em&gt;that&lt;/em&gt; period coincides with a cert expiry.&lt;/li&gt;
&lt;li&gt;Hmmmm. So should Traefik take over cert generation renewal stuff for the cluster then? I was trying to avoid multiple requests to Letsencrypt as much as possible, but then this seems to be the cleanest approach rather then.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 10:52:&lt;/em&gt; Ok. I seem to enjoy making more work for myself. Let’s knuckle down and figure this out then. How would Traefik get certs?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 12:05:&lt;/em&gt; Got my porkbun creds as a sealed secret into the cluster&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 12:44:&lt;/em&gt; Been reading Traefik docs. Lunch break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-15 14:02
 &lt;div id="2025-12-15-1402" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-15-1402" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Back&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 15:07:&lt;/em&gt; Tea break. The traefik documentation is driving me nuts!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 15:30:&lt;/em&gt; Back at it&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 17:05:&lt;/em&gt; Alright! Done! Took a lot of search, looking at examples, asking ChatGPT and fixing typos. But it got done. I had the sense this time, to try it all out with Letsencrypt staging first! :)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-15 17:30
 &lt;div id="2025-12-15-1730" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-15-1730" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;cleaned stuff up as much as I could. Love Flux CD and containers now!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 17:36:&lt;/em&gt; Starting with theLounge now. Hopefully this should not be hard &lt;em&gt;(fingers crossed!)&lt;/em&gt;. This is just setting up a new instance, with no data coming over.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 17:45:&lt;/em&gt; Am getting pretty good at translating &lt;code&gt;docker-compose&lt;/code&gt; files into kubernetes manifests 😂&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 18:23:&lt;/em&gt; Well not that good. Still miss plenty of stuff.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-15 19:12:&lt;/em&gt; Done. I forgot to make a note of what channels I was in, before I retired the old ZNC/TheLounge setup. But never mind. The important ones I have rejoined.&lt;/li&gt;
&lt;li&gt;Tomorrow: Move Sendy (Also only pick up one task a day now onwards.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-15 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-13 Notes</title><link>https://janusworx.com/nm/2025-12-13/</link><pubDate>Sat, 13 Dec 2025 08:00:18 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-13/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan (&lt;em&gt;Done!&lt;/em&gt; 🎉🎉🎉)&lt;/a&gt;, to see if anything needs adding or changing&lt;/li&gt;
&lt;li&gt;Made steady progress yesterday. Got both my websites moved over&lt;/li&gt;
&lt;li&gt;Sent my last newsletter of the year. Decided to do that, in case Sendy crashed and burned during the move and I couldn’t send stuff&lt;/li&gt;
&lt;li&gt;Today
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Change fan on the Pi 5&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move kanboard to the cluster&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Update image repositories for both websites + kanboard + miniflux, so they update automatically&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Client call&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Move baikal to the cluster (if possible)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-13 07:30
 &lt;div id="2025-12-13-0730" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-13-0730" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The 3rd party fan/heatsink on the Pi5 finally gave up the ghost. Thankfully, I saw it coming and ordered an officially Raspberry Pi fan now. I’d kept the original case as well. So off came the old and in went the new fan.
My music server is back online!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 08:00:&lt;/em&gt; Updated my Papermod theme. Everything went off without a hitch.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 08:14:&lt;/em&gt; Got today’s note up and running. Now to tackle kanboard, before the client call at 11.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-13 08:20
 &lt;div id="2025-12-13-0820" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-13-0820" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Beginning work on Kanboard&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 08:41:&lt;/em&gt; Got sidetracked by two hungry stray doggies. Back to work&lt;/li&gt;
&lt;li&gt;Pointed the domain at kanboard.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 09:02:&lt;/em&gt; Moved Kanboard. Moved the data. All good!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-13 09:05
 &lt;div id="2025-12-13-0905" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-13-0905" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Will move Baikal first before doing creating image updations for all the stuff I’ve moved&lt;/li&gt;
&lt;li&gt;Pointed the URL to the new server, and disabled the site in nginx, so that nothing touches the old stuff now. Hopefully DNS will timeout and point to the new server shortly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-13 10:45
 &lt;div id="2025-12-13-1045" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-13-1045" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Done with Baikal. Moved data from the old machine and into the new cluster. All is well!&lt;/li&gt;
&lt;li&gt;Everything’s changed behind the scenes and my phone and computer just chug along like nothing’s happened. Gives me quite a thrill!&lt;/li&gt;
&lt;li&gt;Now to go do my client call&lt;/li&gt;
&lt;li&gt;*2025-12-13 13:40: Done with the meeting. Off to my lunch break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-13 17:30
 &lt;div id="2025-12-13-1730" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-13-1730" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back at work. Had another meeting and then a tea break&lt;/li&gt;
&lt;li&gt;Now I understand why PVC. The backing storage could change tomorrow, but as long as I can mount it with a name at a path, nothing changes for my app. The other way around too. The app could keep changing, but as long as the data is kept away from it and accessed in the right manner, (is it a db that allows multiple access? or a file that only a single thread can touch at one time?), it’s all cool&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 17:55:&lt;/em&gt; Not touching image stuff for Baikal. Need to figure out how to filter out a custom thing from a tag.&lt;/li&gt;
&lt;li&gt;Got Kanboard to update! Now to Nginx for both the websites&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 18:27:&lt;/em&gt; Both sites automatically updated to the latest version of Nginx!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 19:20:&lt;/em&gt; Got baikal up and updating too! It needed a tiny bit of regex to filter the tag.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-13 19:40:&lt;/em&gt; Think I’ve done all the low hanging fruit. Now to tackle the rest, one by one Monday onwards
Some will mean moving things to my desktop (the Mastodon mirror script) and some will probably mean creating my own docker images (anki) and finally some I’ll just have to be really careful migrating data over (sendy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-13 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-12 Notes</title><link>https://janusworx.com/nm/2025-12-12/</link><pubDate>Fri, 12 Dec 2025 08:15:59 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-12/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Read a book on &lt;a href="https://www.oreilly.com/library/view/traefik-api-gateway/9781484263761/" target="_blank" rel="noreferrer"&gt;Traefik&lt;/a&gt;, yesterday. Pretty helpful. It covered the older version of Traefik though, so I’ll have to adapt the advice to my new version. I tried reading the actual documentation next, but they are umm, I cannot put my finger on it, but I keep getting lost. What is written, is pretty well written, but I think there is a lack of a connecting link from the big picture to the nitty gritty, or if there is, is just glossed over. If it wasn’t for the book, I’d be pretty lost. But as a reference though, it is really good.&lt;/li&gt;
&lt;li&gt;The cluster is still up and running well. Miniflux works. Been using it all day yesterday and today. Pretty please with the decision to move to a cluster, now that it is set up.&lt;/li&gt;
&lt;li&gt;Look at &lt;a href="https://janusworx.com/work/the-big-plan-change-my-vm-to-be-gitops-driven/" &gt;The Big Plan (&lt;em&gt;Done!&lt;/em&gt; 🎉🎉🎉)&lt;/a&gt;, to see if anything needs adding or changing&lt;/li&gt;
&lt;li&gt;Today, figure out http to https redirects. And move the main site &lt;a href="https://janusworx.com" target="_blank" rel="noreferrer"&gt;https://janusworx.com&lt;/a&gt; to the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-12 09:15
 &lt;div id="2025-12-12-0915" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-12-0915" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Let’s get to work!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 09:30:&lt;/em&gt; Changed all my Hugo archetypes to no longer include links to my discourse. Will need to maket the time someday to remove existing links from all the pages.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 10:04:&lt;/em&gt; Got my http to https redirect working! Also fixed my tls sealed-secret for traefix. Nothing big, but in my haste, yesterday, I forgot to export it in yaml. And today, I wondered why my manifest was formatted so queerly, until I realisde I was looking at json. Surprisingly, Traefik had taken that json-in-yaml manifest and worked without complaint! Tea break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-12 10:30
 &lt;div id="2025-12-12-1030" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-12-1030" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Thoughts to move &lt;a href="https://janusworx.com" target="_blank" rel="noreferrer"&gt;https://janusworx.com&lt;/a&gt; to the new cluster.
&lt;ul&gt;
&lt;li&gt;Doing this first, because this is the most public facing part of my VM. If there are any issues here, better get them out as soon as possible.&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Have a folder that I can rsync all my new posts to (like it is on the old one)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Have an nginx container look at it via some hostpath pvc?&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Serve!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Now to go stumble about doing it and fixing any hiccoughs along the way&lt;/li&gt;
&lt;li&gt;Disabled miniflux on the old VM as well&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 10:45:&lt;/em&gt; Ok think I will first fix my deploy action to sync to the new VM&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 11:27:&lt;/em&gt; Use ansible to create a folder for my hugo deploy&lt;/li&gt;
&lt;li&gt;Switched variables in my forgejo action to the new VM, gave it my new key, as well as updated known hosts (No other change)&lt;/li&gt;
&lt;li&gt;Manually running the action now. Did &lt;em&gt;not&lt;/em&gt; realise how big my site has grown in size over the years&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 11:33:&lt;/em&gt; Ok my action timed out. Think I will manually move stuff first with a syncthing sync. (Thank god i set it up yesterday!)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 11:40:&lt;/em&gt; Running action again. It works! It works!&lt;/li&gt;
&lt;li&gt;Now I know why gitops! Change a few variables, drink some soup et voilà, your new site deploy is done! Wow! Love this!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 11:45:&lt;/em&gt; Also realised my original manual action run had not timed out. It was, in fact, interrupted by a subsequent automated run, which had succeeded!&lt;/li&gt;
&lt;li&gt;Now that the data is in place, I’m off to get nginx working in the cluster.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 12:45:&lt;/em&gt; Just realised, I might have to have &lt;em&gt;two&lt;/em&gt; containers. One for &lt;a href="https://fr.janusworx.com" target="_blank" rel="noreferrer"&gt;https://fr.janusworx.com&lt;/a&gt; as well. Seems wasteful. Checking to see, if one pod / nginx instance can do both.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 12:57:&lt;/em&gt; Realised, I am then asking Nginx to do another level of routing. Hmm, no thank you. I’ll keep things simple, be a little wasteful and run two nginx containers.&lt;/li&gt;
&lt;li&gt;Lunch break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-12 13:30
 &lt;div id="2025-12-12-1330" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-12-1330" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back for a while&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 14:28:&lt;/em&gt; Yay! Done! &lt;a href="https://janusworx.com" target="_blank" rel="noreferrer"&gt;https://janusworx.com&lt;/a&gt; is now served from the cluster! Done with work for the day :)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-12 14:45
 &lt;div id="2025-12-12-1445" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-12-1445" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Some NMC work now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 15:00:&lt;/em&gt; Tea. Be back later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-12 16:20
 &lt;div id="2025-12-12-1620" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-12-1620" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Done with French. Off for a walk.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-12 17:30
 &lt;div id="2025-12-12-1730" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-12-1730" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 18:00:&lt;/em&gt; Send out a mail to the newsletter list. I might not be able to later, with this migration.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-12 19:20:&lt;/em&gt; Moved the french version of the site over as well. One less thing to do tomorrow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;Tomorrow
 &lt;div id="tomorrow" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tomorrow" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Enable image updation of the nginx image for both jw and fr.jw&lt;/li&gt;
&lt;li&gt;Figure out how to go about moving the mastodon archive and keeping it updated&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-12 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-11 Notes</title><link>https://janusworx.com/nm/2025-12-11/</link><pubDate>Thu, 11 Dec 2025 08:18:29 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-11/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I think, I &lt;em&gt;think,&lt;/em&gt; that most of the fundamental pieces are in places after yesterday’s work.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;The Big Plan is done!&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Now to move each production item from the old VM to the new cluster.&lt;/li&gt;
&lt;li&gt;Today, figure out http to https redirects. And move one app.&lt;/li&gt;
&lt;li&gt;Note to Self: Quit at 1p. Get back to life.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan (&lt;em&gt;Done!&lt;/em&gt; 🎉🎉🎉)
 &lt;div id="the-big-plan-done-" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan-done-" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Certmanager&lt;/del&gt; (Not using it)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to automate deployment of manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to migrate there if there is any in an old app&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figue out how to automate updation of images in manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get another app (Miniflux) deployed&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out what needs to happen as part of the lifecycle. What you want in the cluster, what stays out, do they intersect, how do updates of cluster happen? VM (node) updates as well?&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Then begin to think along the lines of Live Deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go live! Git is source of truth. Two repos.
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; One for the Main node and its update
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Terraform will provision node and install package, setup firewall&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to get Terraform to get the node talking to the git forge&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Structure repo, copy every thing node related there, and make sure stuff gets updated periodically and idempotantly, via ansible pull and a systemd timer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; The other one for k3s and flux
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert everything I have done locally to run on prod. Add more steps as you do them below&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-11 09:30
 &lt;div id="2025-12-11-0930" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-11-0930" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The night passed well for the new VM. It rebooted on time, just as scheduled. Hetzner backed it up, just as instructed.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 09:37:&lt;/em&gt; Also, &lt;em&gt;&lt;strong&gt;Oi, wot?&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;&lt;a href="https://doc.traefik.io/traefik/reference/install-configuration/tls/certificate-resolvers/acme/#the-different-acme-challenges" target="_blank" rel="noreferrer"&gt;Traefik natively supports what I have been trying to do with Lego!&lt;/a&gt;&lt;/em&gt; Get Lego to generate certs and install them as a sealed secret into the cluster for Traefik to use. Will try to figure out what to do once my Letsencrypt jail time gets over. Maybe do both. Traefik can handle stuff for the cluster and Lego can get them as well and keep them in another place in the VM in case I need it outside the cluster.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 09:55:&lt;/em&gt; Don’t think I want to work on the VM today. Will sit and read a book about Traefik. Tea Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-11 10:15
 &lt;div id="2025-12-11-1015" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-11-1015" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Begin reading!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 12:42:&lt;/em&gt; Lunch. Finished half of the book. Will do the rest after lunch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-11 13:05
 &lt;div id="2025-12-11-1305" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-11-1305" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back to the book.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 13:30:&lt;/em&gt; Done with the book. Nap time!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-11 17:15
 &lt;div id="2025-12-11-1715" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-11-1715" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Did my Duolingo and had a long walk after quite a few weeks&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 17:16:&lt;/em&gt; Reading Traefik docs&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 17:54:&lt;/em&gt; Client call&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-11 18:35
 &lt;div id="2025-12-11-1835" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-11-1835" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-11 19:12:&lt;/em&gt; Shutting down for the day!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-11 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-10 Notes</title><link>https://janusworx.com/nm/2025-12-10/</link><pubDate>Wed, 10 Dec 2025 08:26:26 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-10/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Got Ansible Pull working, so now I can update a playbook and the VM fetches it and does what I tell to! Who’s a good VM?&lt;/li&gt;
&lt;li&gt;Struggled with getting LEGO to generate a first time cert. And then like a ignorant fool, I made too many requests of Letsencrypt and got locked out. Shoulda done dry runs! I forgot!
Will simply copy over my certs from ye olde plaice and then figure out a way to do the renew script. Even for later, methinks I will leave initial certificate generation to be a manual thing. For the big AWS project, I will figure something else out.&lt;/li&gt;
&lt;li&gt;Will focus on getting Lego and certs working and getting an app or two at most deployed on the new production cluster.&lt;/li&gt;
&lt;li&gt;Note to Self: Quit at 3p. Get back to life.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Certmanager&lt;/del&gt; (Not using it)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to automate deployment of manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to migrate there if there is any in an old app&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figue out how to automate updation of images in manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get another app (Miniflux) deployed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Figure out what needs to happen as part of the lifecycle. What you want in the cluster, what stays out, do they intersect, how do updates of cluster happen? VM (node) updates as well?&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Then begin to think along the lines of Live Deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go live! Git is source of truth. Two repos.
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; One for the Main node and its update
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Terraform will provision node and install package, setup firewall&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to get Terraform to get the node talking to the git forge&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Structure repo, copy every thing node related there, and make sure stuff gets updated periodically and idempotantly, via ansible pull and a systemd timer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; The other one for k3s and flux
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert everything I have done locally to run on prod. Add more steps as you do them below&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-10 09:50
 &lt;div id="2025-12-10-0950" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-10-0950" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Paused a systemd service via Ansible-Pull. Feels very cool!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 10:21:&lt;/em&gt; I keep getting distracted with the bigger picture and what ifs rather than focussing on what is right in front of me.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 13:00:&lt;/em&gt; Lots of ansible work. Good progress. Lunch break. I used to think that Ansible roles were too granular and now I seem to be doing the same with my tasks 😂&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-10 14:15
 &lt;div id="2025-12-10-1415" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-10-1415" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Will just copy the certs for now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 17:23:&lt;/em&gt; Got the plays structured nad worknig just the way i want&lt;br&gt;
Got syncthing installed, service installed, and working through the firewall.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 18:14:&lt;/em&gt; Copied files and got sealed secrets up and runnig within seconds!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 18:35:&lt;/em&gt; Got Kubeseal installed via ansible, without a single hitch!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 19:24:&lt;/em&gt; Manually put in the secret to the cluster. Will look at automation after a few days when Letsencrypt decides to talk to me.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 19:25:&lt;/em&gt; And just like that Traefik is up!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 20:06:&lt;/em&gt; Couldn’t get Miniflux working. Will work on it tomorrow. Calling it a night.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 20:30:&lt;/em&gt; Couldn’t quite leave it alone. I think I forgot to encrypt the cert with the new cluster’s sealed certificate. Will give that a try. If it works good. If not, we try again tomorrow! :)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-10 21:00:&lt;/em&gt; It was the damned cert! Ok, now I know I was not going batty :)&lt;/li&gt;
&lt;li&gt;Figure out http to https tomorrow. Haproxy was doing it here. Need to figure out how to do it with Traefix directly. Time for bed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-10 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-09 Notes</title><link>https://janusworx.com/nm/2025-12-09/</link><pubDate>Tue, 09 Dec 2025 09:05:32 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-09/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Got Terraform working and the node is now up, exactly the way I want it!&lt;/li&gt;
&lt;li&gt;The cluster also got installed perfectly and I was able to connect to it.&lt;/li&gt;
&lt;li&gt;Today will work on Ansible, so that local updates are easy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Certmanager&lt;/del&gt; (Not using it)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to automate deployment of manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to migrate there if there is any in an old app&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figue out how to automate updation of images in manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get another app (Miniflux) deployed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Figure out what needs to happen as part of the lifecycle. What you want in the cluster, what stays out, do they intersect, how do updates of cluster happen? VM (node) updates as well?&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Then begin to think along the lines of Live Deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go live! Git is source of truth. Two repos.
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; One for the Main node and its update
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Terraform will provision node and install package, setup firewall&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to get Terraform to get the node talking to the git forge&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Structure repo, copy every thing node related there, and make sure stuff gets updated periodically and idempotantly, via ansible pull and a systemd timer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; The other one for k3s and flux
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert everything I have done locally to run on prod. Add more steps as you do them below&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-09 09:00
 &lt;div id="2025-12-09-0900" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-09-0900" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-09 10:13:&lt;/em&gt; The net is down, so am trying to work via codeberg. Makes me thankful, that I worked out of a private repo and didn’t commit private stuff to it&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-09 10:13:&lt;/em&gt; Tea break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-09 10:52
 &lt;div id="2025-12-09-1052" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-09-1052" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-09 11:21:&lt;/em&gt; Now learing the push/pull dance with ansible-pull. Making changes here. Pushing to the forge and then pulling in on the VM is a novel experience. As compared to editing conf files on the VM itself&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-09 13:12:&lt;/em&gt; Lunch. making steady progress though&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-09 13:39
 &lt;div id="2025-12-09-1339" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-09-1339" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Got ansible pull working as well.&lt;/li&gt;
&lt;li&gt;Now, to take all the changes I’ve done, commit them to git and rebuild the cluster, hopefully, one last time&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-09 15:00:&lt;/em&gt; It worked! It all worked! Tea break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-09 17:20
 &lt;div id="2025-12-09-1720" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-09-1720" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bootstrapped flux on the VM cluster&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-09 21:01
 &lt;div id="2025-12-09-2101" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-09-2101" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bootstrapping a Letencrypt cert with lego is causing no end of problems.&lt;/li&gt;
&lt;li&gt;Tomrrow will just import. and then use the current certs&lt;/li&gt;
&lt;li&gt;And adapt the ansible playbook to just do an install&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-09 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-08 Notes</title><link>https://janusworx.com/nm/2025-12-08/</link><pubDate>Mon, 08 Dec 2025 09:25:33 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-08/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Thank you &lt;a href="https://psaggu.com" target="_blank" rel="noreferrer"&gt;PS&lt;/a&gt;, for being my sounding board.&lt;/li&gt;
&lt;li&gt;Created repos and moved around directories and fixed scripts so that most of my infrastructure stuff is properly organised. Created the repos I needed for the new VM and the single node cluster that will run on it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Certmanager&lt;/del&gt; (Not using it)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to automate deployment of manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to migrate there if there is any in an old app&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figue out how to automate updation of images in manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get another app (Miniflux) deployed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Figure out what needs to happen as part of the lifecycle. What you want in the cluster, what stays out, do they intersect, how do updates of cluster happen? VM (node) updates as well?&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Then begin to think along the lines of Live Deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go live! Git is source of truth. Two repos.
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; One for the Main node and its update
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Terraform will provision node and install package, setup firewall&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to get Terraform to get the node talking to the git forge&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Structure repo, copy every thing node related there, and make sure stuff gets updated periodically and idempotantly, via ansible pull and a systemd timer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; The other one for k3s and flux
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert everything I have done locally to run on prod. Add more steps as you do them below&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-08 09:00
 &lt;div id="2025-12-08-0900" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-08-0900" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Client call&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-08 10:30
 &lt;div id="2025-12-08-1030" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-08-1030" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Beginning work&lt;/li&gt;
&lt;li&gt;Installed the 1Password CLI tool and figured out how to read stuff into an environment variable. Will see how to integrate this with scripts over time. I am getting tired of copy pasting stuff. Plus a few critical secrets are on text files on the disk. The disk is encrypted, so I’m not that worried; but still.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-08 11:10:&lt;/em&gt; Found &lt;a href="https://yaml-multiline.info/" target="_blank" rel="noreferrer"&gt;https://yaml-multiline.info/&lt;/a&gt;. Pretty handy!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-08 12:16:&lt;/em&gt; Lunch Break. Got into a flow state after a long time&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-08 13:30
 &lt;div id="2025-12-08-1330" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-08-1330" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;Currently working on setting up and getting ansible-pull installed and working.&lt;/li&gt;
&lt;li&gt;Ansible lint wasn’t working. Got it to work. Ansible and Ansible Lint&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-08 16:15:&lt;/em&gt; Tea Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-08 17:15
 &lt;div id="2025-12-08-1715" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-08-1715" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back.&lt;/li&gt;
&lt;li&gt;Thought I had it all setup, and the VM gets deployed, but I cannot seem to login&lt;/li&gt;
&lt;li&gt;Simplifying my cloud-init and doing things one by one&lt;/li&gt;
&lt;li&gt;TIL, even if I botch my cloud-init config, keys are inserted into the root login, so I can do a root login and diagnose. This helps!&lt;/li&gt;
&lt;li&gt;Stuff was getting stuck, because point 1. an operation had to be deferred to the end. Checking the second thing now&lt;/li&gt;
&lt;li&gt;Figured it out. It was some multiline data, that is sticking in cloud-init’s craw. Now to base64 encode it and pass it.&lt;/li&gt;
&lt;li&gt;Done! At least the Terraform bit :) The cluster’s up.&lt;/li&gt;
&lt;li&gt;Most of the plumbing for Ansible updates is done as well. I can talk to my Git forge from the VM. Next step is to get VM updates working tomorrow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-08 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-06 Notes</title><link>https://janusworx.com/nm/2025-12-06/</link><pubDate>Sat, 06 Dec 2025 08:08:02 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-06/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tried a long day yesterday, to finish Miniflux out of spite.&lt;/li&gt;
&lt;li&gt;Body gave up and I went to be 9.30ish.&lt;/li&gt;
&lt;li&gt;Did figure and learn a lot as I re-did things yesterday.&lt;/li&gt;
&lt;li&gt;More confident operating the cluster&lt;/li&gt;
&lt;li&gt;Today, will try to finish Miniflux.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Certmanager&lt;/del&gt; (Not using it)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to automate deployment of manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to migrate there if there is any in an old app&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figue out how to automate updation of images in manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get another app (Miniflux) deployed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Figure out what needs to happen as part of the lifecycle. What you want in the cluster, what stays out, do they intersect, how do updates of cluster happen? VM (node) updates as well?&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Then begin to think along the lines of Live Deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Go live! Git is source of truth. Two repos.
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; One for the Main node and its update
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Terraform will provision node and install package, setup firewall&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Figure out how to get Terraform to get the node talking to the git forge&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Structure repo, copy every thing node related there, and make sure stuff gets updated periodically and idempotantly, via ansible pull and a systemd timer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; The other one for k3s and flux
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert everything I have done locally to run on prod. Add more steps as you do them below&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-06 08:10
 &lt;div id="2025-12-06-0810" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-06-0810" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Beginning today. Setting everything up.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 08:20:&lt;/em&gt; Coffee!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 09:00:&lt;/em&gt; Fed the strays. Now to work.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 10:04:&lt;/em&gt; Got miniflux running manually! First multi container pod! and first readiness check! Yay! Break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-06 10:35
 &lt;div id="2025-12-06-1035" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-06-1035" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 11:04:&lt;/em&gt; Got Miniflux working via flux.
Now to use it a bit to test if storage works&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 11:35:&lt;/em&gt; Yes. Got state and storage working as well!&lt;br&gt;
Now to don thinking cap again and figure out what needs to happen live.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 11:45:&lt;/em&gt; Decided to reboot the machine to see what happens. All state is safe :)&lt;/li&gt;
&lt;li&gt;Back to thinking
&lt;ul&gt;
&lt;li&gt;A cloud init is a one time thing. Cannot use terraform to keep messing with the machine. So all I will use it for is to bring up the cluster? And a few select tools.&lt;/li&gt;
&lt;li&gt;Ansible needs to handle the rest. So now figure out a playbook to manage the new server.&lt;/li&gt;
&lt;li&gt;Spoke to PS to make sure, I wasn’t being a boob.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 12:23:&lt;/em&gt; Oof! forgot that Miniflux needs automatic image updation. Alright. Hard hat on. Work in progress&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 12:57:&lt;/em&gt; Miniflux updated itself to the latest version! Lunch break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-06 19:00
 &lt;div id="2025-12-06-1900" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-06-1900" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Had a client meeting.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 19:35:&lt;/em&gt; Done for the day. Did a lot of thinking about how I want to provision and update my Hetzner node. Will try and put it into practice on Monday. Stuff is up in the plan above&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-06 20:20:&lt;/em&gt; Shutdown!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-06 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-05 Notes</title><link>https://janusworx.com/nm/2025-12-05/</link><pubDate>Fri, 05 Dec 2025 08:12:48 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-05/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Yesterday was filled with client meetings&lt;/li&gt;
&lt;li&gt;And K3s was one unmitigated disaster after another. The cluster died by the end of the day.&lt;/li&gt;
&lt;li&gt;I got lucky with my late night slog, and got back up not just the cluster, but even Traefik, Sealed Secrets &lt;em&gt;and&lt;/em&gt; my Kanboard app!&lt;/li&gt;
&lt;li&gt;Now I realise the power of declarative files. I did not have to screw around with the command line much last night, with a couple of exceptions. I got things out of my backups&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; and then copied and pasted them around and adapted and simplified them and everything came back up like magic!&lt;/li&gt;
&lt;li&gt;And on the bright side of this morbid situation, I do know more about the innards of cluster administration than I did before.&lt;/li&gt;
&lt;li&gt;Today will be an attempt and getting old data from an existing install into an app.&lt;/li&gt;
&lt;li&gt;And if that works, spend the rest of the day, spinning up and setting up the production cluster on Hetzner, so that I can then test here and then deploy there. Right now I am keeping the two (home and production) separate and apart in different repos, even though Flux does let me have the option of having multiple environments. I am just being my usual paranoid self.&lt;/li&gt;
&lt;li&gt;Note to Self: Remember! There is no tearing down &lt;strong&gt;this&lt;/strong&gt; VM once it comes up. Time for play is over!&lt;/li&gt;
&lt;li&gt;Also Note to Self: Monday onwards, strict cutoff at 2p. Work meetings, try to schedule as much as possible, in the evening block between 4p-8p&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to automate deployment of manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out how to migrate there if there is any in an old app&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figue out how to automate updation of images in manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Once another app is done, then start live deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-05 00:45
 &lt;div id="2025-12-05-0045" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-0045" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Got the cluster back up in its entirety, pretty much the way I want it.&lt;br&gt;
With Kanboard working! Woohooooo! 🎉&lt;br&gt;
Time for bed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-05 08:15
 &lt;div id="2025-12-05-0815" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-0815" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Starting up slowly … still sleepy&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 08:40:&lt;/em&gt; Everything is booted up and ready. Time for work!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 08:56:&lt;/em&gt; Slightly sluggish. Note to self: Do things slowly and carefully!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 09:14:&lt;/em&gt; The all Terraform + Flux driven cluster dream of mine probably needs a little compromise. I &lt;em&gt;will&lt;/em&gt; have to get Ansible or some automation tool into the mix, because I &lt;em&gt;will&lt;/em&gt; have to use at least a couple of things natively on my VM. Syncthing is one thing that comes to mind. Runing something like that on/via a cluster is &lt;em&gt;really&lt;/em&gt; overkill to me. It also seems a bit antithetical in terms of values. Syncthing concerns itself entirely with state and data, while Kubernetes veers in the other direction. OS updates are another thing. I don’t want to keep deploying new os images and moving data around. I am not made of money, to run that kind of setup. Will need to figure such a use case to build up the big portfolio project on AWS though.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 09:30:&lt;/em&gt; While the dream is always, oh everything is driven by code, there comes a time when stuff cannot be automated completely. So for most deployments folks do VMs and apps on the cloud, where the computer has been abstracted away. In my case, it hasn’t so I can’t treat my single VM as a fungible, disposable thing. Similarly even in the “cloud”, I’m sure there are worker bees, buzzing around machines in datacenters, babysitting them.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 09:35:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-05 10:30
 &lt;div id="2025-12-05-1030" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-1030" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 10:54:&lt;/em&gt; Moved old data into Kanboard. It just works!&lt;br&gt;
Learned to pause flux while I work on something:&lt;br&gt;
&lt;code&gt;flux suspend kustomization &amp;lt;name&amp;gt;&lt;/code&gt; and&lt;br&gt;
&lt;code&gt;flux resume kustomization &amp;lt;name&amp;gt;&lt;/code&gt;&lt;br&gt;
Same with &lt;code&gt;helmrelease&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 11:04:&lt;/em&gt; Trying to install extra controllers into flux&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 11:13:&lt;/em&gt; image-reflector-controller and image-automation-controller installed&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 12:18:&lt;/em&gt; Break. Tried everything, but the image won’t update. Need to clear my head&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 12:19:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-05 12:40
 &lt;div id="2025-12-05-1240" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-1240" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 13:22:&lt;/em&gt; Got it to work. I had pointed the automation manifest to the wrong folder&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 13:22:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-05 13:50
 &lt;div id="2025-12-05-1350" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-1350" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Thought up a rule of thumb. Anything exposed out to the web, ought to run in the cluster. Anything local, or exposed only to me, can stay on the node (would prefer it on the cluster, but if not, that’s fine too)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 14:10:&lt;/em&gt; And now I have figured out how to convert a docker compose into auto updating Kubernetes manifests, that relieves me of the need to desperately hunt down Helm packages.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 14:21:&lt;/em&gt; Starting with Miniflux locally. If all goes well, then off to the production races we go&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 14:31:&lt;/em&gt; Just realised, Miniflux runs on Postgres. So production work will have to wait. This is going to take a while&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 16:07:&lt;/em&gt; Struggling to figure out why my letsencrypt certs aren’t updating within the cluster.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 17:00:&lt;/em&gt; Fixed it. Cron has limited access to an environment and the &lt;code&gt;KUBECONFIG&lt;/code&gt; variable is not set and so no secret or sealed secret was being generated. All I had were empty yaml files. Told the bash script to set &lt;code&gt;KUBECONFIG=/dev/null&lt;/code&gt; since I was only generating manifests, not talking to a cluster. And everything started working.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-05 17:15
 &lt;div id="2025-12-05-1715" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-1715" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back to figuring out Miniflux&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 19:30:&lt;/em&gt; Dinner&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-05 20:30
 &lt;div id="2025-12-05-2030" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-05-2030" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back to try and finish this&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-05 21:46:&lt;/em&gt; Still struggling. So just packing up and going to bed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-05 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Paranoid backups save your ass. Who knew? I did! I have been bitten more times than I can count. Ergo, the habit!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>2025-12-04 Notes</title><link>https://janusworx.com/nm/2025-12-04/</link><pubDate>Thu, 04 Dec 2025 07:16:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-04/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Figured out every thing I needed that I needed to spin up the cluster the way I wanted it. (Update 2025-12-04: Figured out everything I need to deploy and expose an app, as well)&lt;/li&gt;
&lt;li&gt;Figured things out at a brisk clip yesterday (not fast, not slow either). Got Kanboard up and running!&lt;/li&gt;
&lt;li&gt;Will try and redo Kanboard &lt;em&gt;(once again)&lt;/em&gt;; this time with an gitopsy Flux CD approach&lt;/li&gt;
&lt;li&gt;And leave it at that, since the rest of the day is filled with meeetings&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Figure out how to automate manual manifests&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Once another app is done, then start live deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-04 08:05
 &lt;div id="2025-12-04-0805" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-04-0805" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Updated my reading list for November&lt;/li&gt;
&lt;li&gt;Did my NMC run. It’s always fun getting new members into the Kubernetes community&lt;/li&gt;
&lt;li&gt;Now to focussed work&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 08:25:&lt;/em&gt; I &lt;em&gt;love&lt;/em&gt; Kubernetes namespaces! Lets me delete everything in a jiffy!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 08:50:&lt;/em&gt; Client call&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-04 09:30
 &lt;div id="2025-12-04-0930" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-04-0930" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 09:50:&lt;/em&gt; Client call&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-04 10:10
 &lt;div id="2025-12-04-1010" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-04-1010" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 11:18:&lt;/em&gt; Learning to handwrite kubernetes manifests with the help of IDE completion&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 11:55:&lt;/em&gt; Troubleshot my first yaml mistyped key. I should not depend on the IDE so much. I know I have to use &lt;code&gt;ReadWriteOnce&lt;/code&gt; and yet, somehow I have &lt;code&gt;ReadWriteMany&lt;/code&gt;!&lt;/li&gt;
&lt;li&gt;But the speed at which I can tear down and recreate stuff and iterate is amazing!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 12:30:&lt;/em&gt; Bumped version in a yaml, Flux made the deployment follow suit! Woohoo!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 12:43:&lt;/em&gt; Both my automation controllers are borked. Need to figure out what to do.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 12:58:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-04 13:20
 &lt;div id="2025-12-04-1320" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-04-1320" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Killing cluster. Rebuilding bit by bit. paying attention.&lt;/li&gt;
&lt;li&gt;Besides one more good thing to try is to move even my cluster state to the big hdd&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 13:42:&lt;/em&gt; Got cluster up! Verified data is now stored on the big hdd&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 14:23:&lt;/em&gt; Installed flux without the additional image controllers. So far so good&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 14:33:&lt;/em&gt; Troubleshooting errors comes more easily now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 14:41:&lt;/em&gt; Sealed secrets installed. It also took my letsencrypt cert that I create with the new key&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 14:42:&lt;/em&gt; Client call&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-04 16:50
 &lt;div id="2025-12-04-1650" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-04-1650" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Trying to get back into the swing of things&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 16:52:&lt;/em&gt; Realised the new cluster is a clean sweep too.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 16:58:&lt;/em&gt; Traefik &lt;em&gt;and&lt;/em&gt; kanboard deployed in minutes! Gitops is amazing!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 17:00:&lt;/em&gt; Client call&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-04 20:33
 &lt;div id="2025-12-04-2033" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-04-2033" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Somehow managed to screw up Traefik. Redoing&lt;/li&gt;
&lt;li&gt;Fat fingered and deleted both my flux repo and my files. That should teach me not to do things at night after a stressful day&lt;/li&gt;
&lt;li&gt;Well, one advantage is this will let me do things even more simpler! Now that I’ve gotten a grasp on things.&lt;/li&gt;
&lt;li&gt;Worst case, I had made a paranoid backup in the morning. I can refer to that and redo things&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 21:38:&lt;/em&gt; Simplified the config maps I use for Helm Releases&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 22:31:&lt;/em&gt; Cert ready for Traefik&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-04 23:12:&lt;/em&gt; Nothing seems to work Traefik wise. Calling it a night. Will start afresh with a new cluster tomorrow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-04 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-03 Notes</title><link>https://janusworx.com/nm/2025-12-03/</link><pubDate>Wed, 03 Dec 2025 09:16:22 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-03/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Figured out every thing I needed that I needed to spin up the cluster the way I wanted it.&lt;/li&gt;
&lt;li&gt;Apps are a different thing apparently. This now, is my next windmill to tilt at. I assumed most apps I use would have neatly created Helm packages available. There aren’t. So will learn how to convert from docker-compose to kubernetes manifests and deploy accordingly&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing Letsencrypt certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?); 2025-12-03: Kanboard it is!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Convert a docker-compose to kubernetes manifests&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Make Kubernetes manifests work with flux&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Once another app is done, then start live deploys. Prototype locally and once it works, migrate to production immediately&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Convert Kubernetes manifests to Helm Charts (optional, based on energy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-03 09:30
 &lt;div id="2025-12-03-0930" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-03-0930" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Writing the recap daily helps me focus!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-03 11:54:&lt;/em&gt; Ok, went down a rabbit hole. I think I need to figure out how to write my own yaml&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-03 12:10:&lt;/em&gt; Realised most code editors generate scratch manifests from templates to fill in. This should hopefully make things easier. IntelliJ Idea for e.g.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, lets me just type in &lt;code&gt;kdeployment&lt;/code&gt; and it creates one with the most frequent values&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-03 12:44:&lt;/em&gt; Lunch. Think I watched enough videos to get a grasp on what I need to write. Will begin with Kanboard when I come back&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-03 14:00
 &lt;div id="2025-12-03-1400" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-03-1400" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ok, back to work&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-03 18:00:&lt;/em&gt; Been so busy, I forgot to update here&lt;/li&gt;
&lt;li&gt;It’s been a steady iterative process. Have gotten the namespace, a configmap, a pv/pvc combo and a deployment all working for a test kanboard install&lt;/li&gt;
&lt;li&gt;Figured out how to move the location of where my containers will store data by modifying the local path provisioner’s settings. They now save to my big hard disk&lt;/li&gt;
&lt;li&gt;Trying to figure out how to expose the app to the outside world! (reading up tells me I need a clusterip service and a Traefik Ingress Route)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-03 19:06:&lt;/em&gt; It works! I think I have most of my bases covered!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-03 19:12:&lt;/em&gt; Stopping for the day. Time for dinner and bed. Note to Self: Can slow down to a normal routine tomorrow onwards&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-03 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;after installing the Kubernetes plugin&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>2025-12-02 Notes</title><link>https://janusworx.com/nm/2025-12-02/</link><pubDate>Tue, 02 Dec 2025 07:49:58 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-02/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I crashed Traefik at the end of the day yesterday. At least that shows me what’ll happen when stuff crashes in my cluster and how good a job I’ve done with setting things up. This is the first order of the day today.&lt;/li&gt;
&lt;li&gt;Stand Traefik back up and figure out how to get it to accept my wildcard cert&lt;/li&gt;
&lt;li&gt;Yesterday I learned that an &lt;em&gt;“ingress”&lt;/em&gt; and an &lt;em&gt;“ingressRule”&lt;/em&gt; were two different beasts. Ingress is a Kubernetes native thing and IngressRule is a Traefik definition. I &lt;em&gt;could&lt;/em&gt; use either, but better to do IngressRules for now. Go all in on Traefik.&lt;/li&gt;
&lt;li&gt;Pat on the back for setting up my Haproxy well enough, that network routing from the outside to the cluster worked without a hitch! (2025-12-02 11:09: Spoke too soon. Local sites on the network are borked 😂)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing certs)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out a way to get certs automatically into the cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, figure out an app to move (Miniflux or Hedgedoc?)&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Cert will probably be needed (Wildcard cert works now, just like it does without the cluster)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy (Traefik does this natively)&lt;/li&gt;
&lt;li&gt;Figure out other apps later&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-02 08:30
 &lt;div id="2025-12-02-0830" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-02-0830" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed the bloody traefik cert issue. Classic case of fat fingers and I didn’t know any better. At least this will teach me to always check my yaml indentation.&lt;br&gt;
I did:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;tlsStore&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;defaultCertificate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;secretName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;letsencrypt-cert&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;instead of the actual (Line 4’s indentation is fixed):&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;tlsStore&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;defaultCertificate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;secretName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;letsencrypt-cert&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 09:44:&lt;/em&gt; Figured out a way to get my remote certs into my machine.&lt;br&gt;
Dumped the commands into a bash script. Here’s the command for the cert. I have to to the same with the key.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh user@certificate-host &lt;span class="s1"&gt;&amp;#39;sudo cat /path/to/certificates/wildcard.crt&amp;#39;&lt;/span&gt; &amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/local/directory/certificates/wildcard.crt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Since the key and the cert are protected file and I don’t want to mess with remote file permissions, I just &lt;code&gt;cat&lt;/code&gt; each file with &lt;code&gt;sudo&lt;/code&gt; access and then dump the contents into a local file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 09:49:&lt;/em&gt; Tea break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-02 10:20
 &lt;div id="2025-12-02-1020" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-02-1020" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back, now to scribble another script to update the wildcard sealed secret&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 11:15:&lt;/em&gt; I wrote about borking my Haproxy. No it wasn’t. It was just a caching issue. All is fine! Claps all around 👏&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 11:17:&lt;/em&gt; Think I got the cert thing working. Now to put them into &lt;code&gt;cron&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 11:18:&lt;/em&gt; Trying to force flux to update the secret to see if it works&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 12:06:&lt;/em&gt; Does not seem to make a difference. Will see when the cert changes itself.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 12:07:&lt;/em&gt; Client Meeting&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 13:57:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-02 14:25
 &lt;div id="2025-12-02-1425" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-02-1425" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 14:46:&lt;/em&gt; Ok scripts in place. One script gets certs into the local node. The other creates a sealed secret and commits it to git&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 16:20:&lt;/em&gt; Client meeting&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-02 18:48
 &lt;div id="2025-12-02-1848" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-02-1848" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Trying to get some work done now!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 19:25:&lt;/em&gt; Kanboard does not seem to be Kubernetes ready. Will need one of my apps that is compatible with what I have done so far, so I can see if it all works. Maybe Miniflux or Hedgedoc if they have ready made helm charts. Converting one of the other apps to a kubernetes deployment is something to tackle later&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-02 20:10:&lt;/em&gt; Ok nothing is available. I’ll just have to go do it myself. Will write straight deployments and use flux to reconcile them. That seems to be the most straightforward approach. I need automatic upgrades and that Flux can do with its annotations and ImageRepository/ImageUpdateAutomation stuff. Time for bed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-02 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-12-01 Notes</title><link>https://janusworx.com/nm/2025-12-01/</link><pubDate>Mon, 01 Dec 2025 09:51:41 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-12-01/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Last we heard, our intrepid explorer was at an impasse on how to do wild card certificates for his apps. There is no golden path to follow ala Funky Penguin, because there is no direct cert-manager for DNS challenges via Porkbun. The alternatives then are to get a bit more complex and bring Vault into the mix or …&lt;/li&gt;
&lt;li&gt;Simplify and do some shell script / cron job / kubeseal / kubectl hackery and get the certificates Lego generates already into my cluster and use them as the default Traefik certificate. Think this is what I’ll do.&lt;/li&gt;
&lt;li&gt;What about internal tls traffic between apps using cert manager? I have none currently, so that can wait until I come to that bridge&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;The Big Plan
 &lt;div id="the-big-plan" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-big-plan" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing certs)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Cert will probably be needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-12-01 09:55
 &lt;div id="2025-12-01-0955" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-01-0955" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Starting slow, today&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 10:30:&lt;/em&gt; Figuring out Traefik basics&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 10:35:&lt;/em&gt; Tea Break&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 10:55:&lt;/em&gt; Back&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 11:28:&lt;/em&gt; Ok manually got the certs over from the other machine, created a tls secret with kubectl, converted it into a sealed-secret with kubeseal and pushed it to the git repo. Et voilà! I have it as a secret in my cluster barely a minute later! Thank you flux!&lt;/li&gt;
&lt;li&gt;Trying to figure out how to replicate my secrets clusterwide now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 11:54:&lt;/em&gt; Decided not to do it. If I run into such a need, I shall later&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 12:15:&lt;/em&gt; Getting into the swing of creating a primitive, committing to git and then watching flux create it live and then fix my mistakes and then iterate. This is fun!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 12:30:&lt;/em&gt; Also getting confident enough to write stuff and push knowing Flux will handle the rest.&lt;/li&gt;
&lt;li&gt;Need to remember to later change these frequent intervals to something reasonable. If I need something right now, I can always manually trigger stuff&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 13:05:&lt;/em&gt; Off to lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-01 13:25
 &lt;div id="2025-12-01-1325" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-01-1325" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Continuing with Traefik. There seems to be some hiccough with the default values I provided&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 14:00:&lt;/em&gt; Botched my podinfo deploy. Flux is not fixing it. Troubleshooting in progress&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 14:10:&lt;/em&gt; Got podinfo working there is something wrong with my values. Commenting them all out did the trick. Trying it one more time.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 14:15:&lt;/em&gt; Attemping a manual deletion of podinfo. Hoping to get it back via flux&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 14:22:&lt;/em&gt; Got it working. Figured out the offending bits in the values.yaml&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 14:24:&lt;/em&gt; Alos getting fluent*-er* with the limited subset of flux / kubectl commands I am learning&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 14:38:&lt;/em&gt; Accessed podinfo from outside! Basically means the network works! Not available over ssl. Need to check why. That can wait until tomorrow. Done with K3s for the day&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-12-01 15:15
 &lt;div id="2025-12-01-1515" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-12-01-1515" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Doing some NMC work&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-12-01 15:30:&lt;/em&gt; Done for the day. Will do tea, walk, some french and then bed&lt;/li&gt;
&lt;li&gt;Tomorrow, redo Traefik and figure out why it is not taking my wildcard cert&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-12-01 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-30 Notes</title><link>https://janusworx.com/nm/2025-11-30/</link><pubDate>Sun, 30 Nov 2025 11:02:34 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-30/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Trying to do a tiny bit today&lt;/li&gt;
&lt;li&gt;Got secrets to work yesterday. Now to get certs working&lt;/li&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;del&gt;Letsencrypt&lt;/del&gt; (using pre existing certs)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Cert will probably be needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-30 11:15
 &lt;div id="2025-11-30-1115" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-30-1115" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Funky Penguin has an &lt;a href="https://geek-cookbook.funkypenguin.co.nz/kubernetes/external-dns/" target="_blank" rel="noreferrer"&gt;External DNS guide&lt;/a&gt;, but I’d rather point to the services manually. They don’t change that often.&lt;/li&gt;
&lt;li&gt;I already have a wild card certificate going with Lego. Web+LLM searches tell me I &lt;em&gt;can&lt;/em&gt; have two different sources request wild card certs. Let’s see how this goes&lt;/li&gt;
&lt;li&gt;I, sort of like the idea, that the Funky Penguin guide is a little out of date. So while I get at the principles and the big ideas, the execution of everything is now up to me&lt;/li&gt;
&lt;li&gt;And now that I know what I am doing, it’s easier to go search for and adapt things. &lt;a href="https://cert-manager.io/docs/installation/continuous-deployment-and-gitops/#using-the-flux-helm-controller" target="_blank" rel="noreferrer"&gt;Cert Manager&lt;/a&gt;, for example has a page that does exactly what I want with Flux. I would not have know earlier though&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-30 13:40:&lt;/em&gt; Did my first app deploy with zero errors! Hopefully more practice will lend me speed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-30 14:30
 &lt;div id="2025-11-30-1430" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-30-1430" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back after a short break&lt;/li&gt;
&lt;li&gt;Now to move on to configuring Letsencrypt as a certificate issuer with Cert Manager&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-30 16:00:&lt;/em&gt; Hiccough! Porkbun isn’t natively supported as a DNS challenge solver. Need to figure out what to do next. Get Porkbun challenges working somehow? Or change my domain’s DNS to a cert-manager supported DNS provider? Or can it use my existing lego generated certs? Pondering hat on …&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-30 18:00:&lt;/em&gt; Break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-30 18:50
 &lt;div id="2025-11-30-1850" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-30-1850" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back&lt;/li&gt;
&lt;li&gt;Think I won’t touch cert-manager for now. Will probably use it for inter app communication if needed later&lt;/li&gt;
&lt;li&gt;Will just use the existing lego wildcard certs, use sealed secrets to post them to git, and then have flux pull it in as a tls secret for use by traefik. Ok this is the big idea. Now to put it into practice&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-30 20:15:&lt;/em&gt; Was still reading up. Rubber hits the road tomorrow morn&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-30 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-29 Notes</title><link>https://janusworx.com/nm/2025-11-29/</link><pubDate>Sat, 29 Nov 2025 09:01:00 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-29/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Got the cluster up and running finally yesterday. Figured out how git and flux and kubernetes interact&lt;/li&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Letsencrypt and Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Cert will probably be needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any (for now sealed secrets ok, figure out vault and vault injection later)&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-29 09:15
 &lt;div id="2025-11-29-0915" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-29-0915" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Short day today. Have a client meeting coming up&lt;/li&gt;
&lt;li&gt;Was confused between whether to do Traefik first. But past Jason seems to have already figured that out for me. Looking at &lt;a href="https://github.com/bitnami-labs/sealed-secrets" target="_blank" rel="noreferrer"&gt;Sealed Secrets&lt;/a&gt; next&lt;/li&gt;
&lt;li&gt;I think I want to change my mind. Looking at vault&lt;/li&gt;
&lt;li&gt;Mind changed again. Back to Sealed Secrets. Implementing &lt;em&gt;another&lt;/em&gt; running service to herd, is not what I want to do right now. But it &lt;em&gt;is&lt;/em&gt; important. I ought to look at Vault someday. I was worried about what would happen if my K3s cluster crashed, taking my secrets along with it. Most LLMs suggest that I can backup the key and reuse it. So mind relieved. Worst case, I can just create new secrets by resealing. I do have all my secrets “unencrypted”, but stored in a password manager anyway&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-29 11:00:&lt;/em&gt; Off to work&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-29 19:00
 &lt;div id="2025-11-29-1900" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-29-1900" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-11-29 20:00&lt;/em&gt; Got sealed secrets installed. Did all the yaml and the wiring myself. Gettingt the hang of installing apps (as well as troubleshooting flux, when things don’t work)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-29 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-28 Notes</title><link>https://janusworx.com/nm/2025-11-28/</link><pubDate>Fri, 28 Nov 2025 09:34:32 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-28/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Had a busy few days, consulting out in the field with clients last week + the early part of this week and then lost steam over the next few days. Will slow down and not push to hard. Do tiny bits.&lt;br&gt;
Other goals, same as Monday, considering I tore everything down at the end of the day&lt;/li&gt;
&lt;li&gt;So think I’ll noodle a bit to see if I can get something done today. No pressure&lt;/li&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Letsencrypt and Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Cert will probably be needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-28 17:45
 &lt;div id="2025-11-28-1745" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-28-1745" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Been at it slowly all day&lt;/li&gt;
&lt;li&gt;Nothing works yet. But a few more things have clicked in my head&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-28 19:00
 &lt;div id="2025-11-28-1900" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-28-1900" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Got it working! I got it to work, gosh darn it! Yippeee!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-28 20:00
 &lt;div id="2025-11-28-2000" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-28-2000" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Ok, tried it all again, so that I know this was not a fluke. Wrote down all the commands&lt;/li&gt;
&lt;li&gt;Will try to do auto updation of this demo app on Monday&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-28 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-17 Notes</title><link>https://janusworx.com/nm/2025-11-17/</link><pubDate>Mon, 17 Nov 2025 08:53:01 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-17/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://janusworx.com/nm/2025-11-15/" &gt;Saturday was slow progress!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;So think I’ll noodle a bit to see if I can get something done today. No pressure&lt;/li&gt;
&lt;li&gt;The plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Letsencrypt and Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Cert will probably be needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-17 17:45
 &lt;div id="2025-11-17-1745" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-17-1745" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Struggling to get cert-manager installed. No dice&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-17 18:15:&lt;/em&gt; Got frustrated. Tore it all down. Will be back day after&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-17 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-15 Notes</title><link>https://janusworx.com/nm/2025-11-15/</link><pubDate>Sat, 15 Nov 2025 08:11:40 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-15/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://janusworx.com/nm/2025-11-14/" &gt;Yesterday was a another long day!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;But I think I’ve finally got my arms around Flux CD and how it can help me with my cluster. I was trying to follow &lt;a href="https://geek-cookbook.funkypenguin.co.nz/kubernetes/" target="_blank" rel="noreferrer"&gt;Funky Penugin’s guide&lt;/a&gt;, since it did nearly everything that I needed done. But it does it, in its own opinionated way, and that is a little restricting for me&lt;br&gt;
So what I think I’ll do is do it may way with what I learned yesterday, using FP as an ideal. It may well be, that I might come to implement things the way they do with time&lt;/li&gt;
&lt;li&gt;So the plan is to redo the cluster again and do my own instance of
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; K3s&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Sealed Secrets&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Letsencrypt and Certmanager&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Get Traefik Ingress to work&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And once &lt;em&gt;that&lt;/em&gt; is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Cert will probably be needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-15 08:50
 &lt;div id="2025-11-15-0850" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-15-0850" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Let’s get to work&lt;/li&gt;
&lt;li&gt;A wee bit of thinking and I seem to be creating the same kind of folder structure on my own as FP 😂&lt;/li&gt;
&lt;li&gt;Stopped a while to &lt;a href="https://www.youtube.com/watch?v=mJccPYV7UGA" target="_blank" rel="noreferrer"&gt;listen to this&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-15 09:58:&lt;/em&gt; Tea time. Did a lot of reading to figure out how to deal with the fact thta I might undersize PVs for my pods to store data in (tldr; possible for the pv to retain data. set it that way. and then the old pvc needs to be deleted and the new one attached to the PV that still carries the data. Take backups!)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-15 10:30
 &lt;div id="2025-11-15-1030" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-15-1030" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-11-15 11:13:&lt;/em&gt; No OIDC for me, but definitely for the project. The problem for future Jason is to find a project that will give me the excuse to implement all this&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-15 11:43:&lt;/em&gt; Tore down the old cluster&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-15 13:04:&lt;/em&gt; Got k3s and flux up. Breaking for lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-15 14:25
 &lt;div id="2025-11-15-1425" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-15-1425" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-11-15 16:13:&lt;/em&gt; Got my first service/deployment done via flux! Sealed secrets is now installed. I can now push secret stuff with ease! Tea break&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-15 18:39:&lt;/em&gt; Try as I might, I could not get cert manager installed. Will try on Monday now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-15 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-14 Notes</title><link>https://janusworx.com/nm/2025-11-14/</link><pubDate>Fri, 14 Nov 2025 07:36:20 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-14/</guid><description>
&lt;h2 class="relative group"&gt;Goals + Recap
 &lt;div id="goals--recap" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals--recap" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://janusworx.com/nm/2025-11-13/" &gt;Yesterday was a doozy!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;And stuff just worked today morning! I didn’t have to do anything at all!
I had done everything correctly last night and then my tired brain was testing stuff with a typo in my commands. It also taught me that most stuff is easy. And I should be open to learning new stuff if it interests me. I stuck with Nginx out of inertia for far to long. HAProxy actually fits my mental model of a proxy / load balancer. I find its config easier and more intuitive. Should have switched long ago&lt;/li&gt;
&lt;li&gt;Continue with doing MetalLB&lt;/li&gt;
&lt;li&gt;Once that is done, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-14 09:35
 &lt;div id="2025-11-14-0935" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-14-0935" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Slow start today. Was trying to figure out what Metal LB meant by a pool and did it mean my DHCP pool (No. it does note)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 09:45:&lt;/em&gt; Tea break.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-14 10:15
 &lt;div id="2025-11-14-1015" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-14-1015" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back to work&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 11:35:&lt;/em&gt; Giving up on MetalLB for now. Sticking to the inbuilt load balancer. Nothing’s quite clicking right and I don’t know where to start troubleshooting. Maybe I’ll give myself until lunch and then decide&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 11:37:&lt;/em&gt; Yea, no. Tearing down the cluster and bringing it back up with ServiceLB&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 12:56:&lt;/em&gt; Lunch.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 13:21:&lt;/em&gt; Cleared the decks so I could work afternoon as well&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 15:36:&lt;/em&gt; Got sealed secrets installed. Trying to copy paste and modify these things myself now. Tea break. External DNS is next on the list&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-14 16:20
 &lt;div id="2025-11-14-1620" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-14-1620" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 17:26:&lt;/em&gt; Decided not to do External DNS. Another one for the AWS project list. I want to retain control by &lt;em&gt;some&lt;/em&gt; manual work. External DNS does not help or hinder in this regard. Better off without it for my personal use. Will come back to it, if needs change&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 18:01:&lt;/em&gt; Reading flux documentation&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 18:09:&lt;/em&gt; Switched to a video course&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 20:41:&lt;/em&gt; Going through the course makes me realise that Funky Penguin’s structure is maybe a little too strict for me. Will have to look into adapting it a bit to my liking&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 21:58:&lt;/em&gt; Making good progress with the course&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-14 22:57:&lt;/em&gt; Done. Calling it a night!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-14 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-13 Notes</title><link>https://janusworx.com/nm/2025-11-13/</link><pubDate>Thu, 13 Nov 2025 08:05:52 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-13/</guid><description>
&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Flux setup yesterday! Try and get Metal LB working.&lt;/li&gt;
&lt;li&gt;Found [Funky Penguin’s guide][]. Will use it to, uhm, guide me through my setup.e&lt;/li&gt;
&lt;li&gt;Once the CD stuff works, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-13 08:40
 &lt;div id="2025-11-13-0840" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-13-0840" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Updated hcloud cli and lego on both my machines&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 09:51:&lt;/em&gt; Utterly botched all my network machines
Will do a tea break and then go look at the mess I made&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 10:44:&lt;/em&gt; Fixed the network&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 11:22:&lt;/em&gt; Trying to get Nginx stream proxying to work. Grrrr&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 13:23:&lt;/em&gt; Completely buggered up the Nginx machine now. Needs a complete redo!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 14:14:&lt;/em&gt; MetalLB seems like a distant dream right now!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 14:14:&lt;/em&gt; Trying to get myself an alternative to Nginx which (hopefully) does better layer 4 routing? Looking at haproxy.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 18:17:&lt;/em&gt; Got haproxy working for the forgejo instance somehow with a lot of help from the docs and various llms&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 19:01:&lt;/em&gt; The &lt;a href="https://www.haproxy.com/documentation/haproxy-configuration-tutorials/" target="_blank" rel="noreferrer"&gt;haproxy tutorials page&lt;/a&gt; is dammed helpful!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-13 21:31:&lt;/em&gt; Calling it a night. Exhausted. Most everything is done.
Need to figure out a way to somehow serve static files at the files path for the forgejo instance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-13 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-12 Notes</title><link>https://janusworx.com/nm/2025-11-12/</link><pubDate>Wed, 12 Nov 2025 07:11:15 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-12/</guid><description>
&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kanboard moved yesterday! Now to do it again!&lt;/li&gt;
&lt;li&gt;Found &lt;a href="https://geek-cookbook.funkypenguin.co.nz/" target="_blank" rel="noreferrer"&gt;Funky Penguin’s guide&lt;/a&gt;. Will use it to, uhm, guide me through my setup.&lt;/li&gt;
&lt;li&gt;One change: decided to switch to Flux instead of Argo for continuous deployment. Why? Just because. Just because I fancy Flux more. And because I am new and learning still and these decisions have few consequence at this stage&lt;/li&gt;
&lt;li&gt;I also figured out the easiest, most manual way of proxying my traffic to the cluster from my other machine that runs nginx. The home router is (obviously) incapable of routing at layer 7. So http/https traffic is routed to Nginx on my always running NUC, from where the traffic for the apps on the cluster will come, thanks to Nginx proxying it forward. I tried a blind stream proxy approach with Nginx, but that did not seem to play nice with my existing setup and local sites&lt;/li&gt;
&lt;li&gt;Once the CD stuff works, do kanboard again&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-12 07:35
 &lt;div id="2025-11-12-0735" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-12-0735" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Alright, let’s begin&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 08:26:&lt;/em&gt; Bootstrapping flux via forgejo failed. will try github first.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 08:43:&lt;/em&gt; Redoing K3s install. Trying without &lt;code&gt;serviceLB&lt;/code&gt; this time&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 09:11:&lt;/em&gt; Running into reconciliation issues. Ok this is good practice with troubleshooting&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 09:42:&lt;/em&gt; Tea break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-12 10:00
 &lt;div id="2025-11-12-1000" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-12-1000" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Realised that K3s was running slightly degraded. Note to self, try and keep only one NIC active when installing + make sure that I &lt;a href="https://docs.k3s.io/installation/requirements?os=debian#operating-systems" target="_blank" rel="noreferrer"&gt;open up the proper ports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 10:14:&lt;/em&gt; Running into the same issues on Github as I did with my Forgejo. It’s both a relief that I did do things right, as well as slightly maddening at the same time&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 10:30:&lt;/em&gt; Ok stuff seems to have changed in FluxCD world ever since the guide was done. Had to update api versions and remove a field from a yaml file&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 10:31:&lt;/em&gt; Now to try replicating this with Forgejo.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 10:39:&lt;/em&gt; Et voilà! It now works with Forgejo too!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-12 13:02:&lt;/em&gt; Break for lunch. Be back in the eve. MetalLB is hard to configure!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-12 18:30
 &lt;div id="2025-11-12-1830" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-12-1830" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Come back really late. Will continue tomorrow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-12 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-11 Notes</title><link>https://janusworx.com/nm/2025-11-11/</link><pubDate>Tue, 11 Nov 2025 07:27:15 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-11/</guid><description>
&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Continue moving Kanboard. We got it up yesterday. Data does not show up though&lt;/li&gt;
&lt;li&gt;Once the manual approach works, move it to&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-11 08:05
 &lt;div id="2025-11-11-0805" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-11-0805" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Wrote up a post on load balancers that bit me&lt;/li&gt;
&lt;li&gt;Continuing with yesterday’s work now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 09:05:&lt;/em&gt; Switching folders, enabling and disabling deploys, setting permissions and now I realise why I need charts and gitops&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 09:28:&lt;/em&gt; Yea baby yea! Dumb permissions issue! Kanboard migrated successfully! Now to make it accessible from the outside&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 09:30:&lt;/em&gt; Tea Break&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 11:14:&lt;/em&gt; Struggled for close to 45 minutes before I realised I had not brought up a service after deleting it!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 11:22:&lt;/em&gt; I have made my way step by step from a docker file to a working app on kubernetes. Feels good&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 11:37:&lt;/em&gt; Now that I seem to have a good handle on making things work, I should make it a habit of reading the docs bit by bit&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 12:34:&lt;/em&gt; Found &lt;a href="https://geek-cookbook.funkypenguin.co.nz/kubernetes/" target="_blank" rel="noreferrer"&gt;Funky Penguin!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 12:43:&lt;/em&gt; Tore everything down. Again!&lt;/li&gt;
&lt;li&gt;Will do more in the evening sesssion using Funky Penguin’s suggestions, most of which, I arrived at independantly. So that gives me a lot of self confidence&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-11 16:50
 &lt;div id="2025-11-11-1650" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-11-1650" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The hard part now is to somehow proxy requests from my nginx gateway to this here k3s cluster&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-11 19:24:&lt;/em&gt; Calling it a night. Will follow the Penguin tomorrow, because he is doing the same thing that I want&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-11 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-10 Notes</title><link>https://janusworx.com/nm/2025-11-10/</link><pubDate>Mon, 10 Nov 2025 07:35:11 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-10/</guid><description>
&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Same as Friday with &lt;em&gt;one&lt;/em&gt; change! We begin by moving Kanboard (an app to do Kanban project tracking (by the same fine folks who make Miniflux))&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Kanboard to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Miniflux next, followed by Hedgedoc&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-10 07:40
 &lt;div id="2025-11-10-0740" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-10-0740" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Monday! Sluggish as a snail right now. Slightly lost as well. Slowly ramping up to speed&lt;/li&gt;
&lt;li&gt;I need to work faster, more purposefully and with more intent in the mornings. I always underestimate, how much time I have and before I know it, the morning’s flown and I (feel like I) have hardly made progress.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-10 08:03:&lt;/em&gt; Torn between just doing the move vs actually trying to figure out each step. Think I’ll stick to the move and learn via troubleshooting. The intentional learning I will keep for the AWS project I’ll tackle next&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-10 09:15:&lt;/em&gt; Migrated Kanboard data to my local desktop and ensured the local install is running&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-10 11:59:&lt;/em&gt; Yes, I said I wouldn’t fiddle with my terraform plan any more, but cert manager was something I just had to install into the cluster at init time&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-10 12:38:&lt;/em&gt; Grr. SSH! solved it anyhoo. logged into the new cluster. all works fine. really appreciate terraform now!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-10 19:07:&lt;/em&gt; Got a basic service running. I can access the kanboard page. It does not seem to have taken my data though. Will continue tomorrow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-10 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-08 Notes</title><link>https://janusworx.com/nm/2025-11-08/</link><pubDate>Sat, 08 Nov 2025 08:34:30 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-08/</guid><description>
&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Same as yesterday!&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Miniflux to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Hedgedoc next&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-08 08:40
 &lt;div id="2025-11-08-0840" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-08-0840" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Reading a Kubernetes book&lt;/li&gt;
&lt;li&gt;More like exploring. Finding some new term, something clicks, go and find out about it, then come back to book. Slow, but interesting going&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-08 16:50:&lt;/em&gt; Have read and learned enough about Kuberntes to have finally gotten the big picture and to be able to ask intelligent “dumb” questions now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-08 18:47:&lt;/em&gt; Calling it a night! Full steam ahead Monday now! Look into Kompose and Katenary! Both are installed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-08 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-07 Notes</title><link>https://janusworx.com/nm/2025-11-07/</link><pubDate>Fri, 07 Nov 2025 07:44:06 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-07/</guid><description>
&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The cluster’s up! Learn to deploy apps to it.&lt;/li&gt;
&lt;li&gt;Begin by moving (lifting and shifting in popular parlance) Miniflux to the cluster
&lt;ul&gt;
&lt;li&gt;Cert will probably be needed&lt;/li&gt;
&lt;li&gt;Learn how to configure an app with code&lt;/li&gt;
&lt;li&gt;Figure out secrets, if there are any&lt;/li&gt;
&lt;li&gt;Learn how to tunnel through and reverse proxy&lt;/li&gt;
&lt;li&gt;Learn how to store data and back it up&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move Hedgedoc next&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-07 07:55
 &lt;div id="2025-11-07-0755" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-07-0755" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Quickly skim through the Helm book&lt;/li&gt;
&lt;li&gt;Dumb thought: Backups should get easier. All the data will probably lie in one directory somewhere on disk and configs will lie in code&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 09:02:&lt;/em&gt; Think I’ll install things manually and then “gitops” it. Because right now, everything feels turtles all the way down AND chicken and egg to me&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 09:41:&lt;/em&gt; Trying to get a local cluster environment going&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 09:56:&lt;/em&gt; Tea break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-07 10:25
 &lt;div id="2025-11-07-1025" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-07-1025" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back at it, attempting to install traefik on a local cluster&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 12:09:&lt;/em&gt; Got tired trying to adapt Kind to the K3s way of doing things. Switching to K3s on the local system as well, because I keep forgetting that kind itself runs inside a docker container. K3s is light enough to run on my local system as well.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 12:35:&lt;/em&gt; K3s installed and configured. One happy accident is that I don’t have to install Traefik (plus associated sofware like load balancers) any more&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 12:54:&lt;/em&gt; Lunch&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-07 16:25
 &lt;div id="2025-11-07-1625" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-07-1625" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back.&lt;/li&gt;
&lt;li&gt;Installing argocd on the home cluster as well. the cloud-init for my hetzer vm has come in really handy!&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 16:52:&lt;/em&gt; Back to the helm book&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-07 19:31:&lt;/em&gt; Still with the book. Will come back to it and the rest of work tomorrow. Calling it a night&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-07 Notes
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item><item><title>2025-11-06 Notes aka The Plan for My New Hetzner VM</title><link>https://janusworx.com/nm/2025-11-06/</link><pubDate>Thu, 06 Nov 2025 08:03:54 +0530</pubDate><author>feedback@janusworx.com (Mario Jason Braganza)</author><guid>https://janusworx.com/nm/2025-11-06/</guid><description>
&lt;h2 class="relative group"&gt;Update: &lt;a href="https://janusworx.com/nm/2025-12-11/" &gt;2025-12-11&lt;/a&gt;
 &lt;div id="update-2025-12-11" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#update-2025-12-11" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://janusworx.com/nm/2025-12-11/" &gt;&lt;em&gt;I got it done!&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;Preamble
 &lt;div id="preamble" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#preamble" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;If this post is weird and stream of consciousness like, that’s by design.&lt;br&gt;
You are seeing a &lt;a href="https://janusworx.com/" &gt;notes and miscellanea&lt;/a&gt; post, in the work category.&lt;br&gt;
I want to be able to think through what I am doing. Mostly to clarify, document and explicitly state &lt;em&gt;&lt;strong&gt;what&lt;/strong&gt;&lt;/em&gt; I want. To avoid shifting goalposts (or rather to shift them intentionally, if need be.)&lt;br&gt;
I’ll be updating and revising this post as I think and learn and experience things&lt;/p&gt;

&lt;h2 class="relative group"&gt;Goals
 &lt;div id="goals" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Think about and write what I want to get done with my hetzner&lt;/li&gt;
&lt;li&gt;For now, the how does not matter&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;What I want
 &lt;div id="what-i-want" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-want" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A VM running K3s, that I can deploy my Hugo website to, as well all the apps that I choose to run on Janusworx&lt;/li&gt;
&lt;li&gt;My main need with a cluster is the GitOps aspect. Not the scaling or redundancy.
I want infrastructure as code and automated updates, as much as possible.&lt;/li&gt;
&lt;li&gt;Everything goes through my Forgejo instance at home&lt;/li&gt;
&lt;li&gt;I write a post and it should deploy to the website somehow&lt;/li&gt;
&lt;li&gt;Apps that I put in there, either just my config files of already published images/deployments, or my own custom things, ought to be pushed to or pulled by the cluster and deployed. Upgrades should be a matter of manipulating code&lt;/li&gt;
&lt;li&gt;Secrets should be self hosted, via environment variables or some self hosted solution. Never at a third party service&lt;/li&gt;
&lt;/ul&gt;
&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;


&lt;h3 class="relative group"&gt;2025-11-06 09:35
 &lt;div id="2025-11-06-0935" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-06-0935" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Got tangled with Hugo in the morning.&lt;/li&gt;
&lt;li&gt;I think I got the basics down, the VM comes up. K3s in installed, but in what order do I move my apps over?&lt;/li&gt;
&lt;li&gt;Think I’ll the root domail last. And try beginning with the “simpler” apps first&lt;/li&gt;
&lt;li&gt;Begin with familiarising myself with Helm&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 10:06:&lt;/em&gt; Tea break&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 13:06:&lt;/em&gt; Lunch break&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;2025-11-06 16:00
 &lt;div id="2025-11-06-1600" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2025-11-06-1600" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back. Trying to port my dev terraform setup to production. It should &lt;em&gt;just&lt;/em&gt; work. But it does not.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 16:59:&lt;/em&gt; Solved. I had somehow borked my Terraform state. Nuked it. And then things started working again&lt;/li&gt;
&lt;li&gt;Show stopper now. My GPG key has expired. Need to figure out how to sign my git commits with SSH now&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 18:26:&lt;/em&gt; I &lt;em&gt;think&lt;/em&gt; I’ve licked it. Both Github and Forgejo don’t seem to be complaining. Let’s see what else I’ve broken over the coming days&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2025-11-06 20:00:&lt;/em&gt; Done! My production cluster is up! &lt;em&gt;&lt;strong&gt;And&lt;/strong&gt;&lt;/em&gt; I can tear it down and build it up consistently. Now to work with it tomorrow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;hr style='margin-left: auto; margin-right: auto; margin-bottom: 40px; margin-top: 50px; width:100px; border: none; background-color:rgb(238, 238, 238); color: rgb(238, 238, 238); height: 1px;'/&gt;

Feedback on this post?&lt;br&gt;
Mail me at &lt;a href="mailto:feedback@janusworx.com?subject=%22Feedback on post: 2025-11-06 Notes aka The Plan for My New Hetzner VM
%22" &gt;feedback at this domain&lt;/a&gt;.
&lt;br&gt;
&lt;/p&gt;</description></item></channel></rss>