<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Moonstreet</title>
    <link>https://www.moonstreet.nl/</link>
    <description>Recent content on Moonstreet</description>
    <generator>Hugo -- gohugo.io</generator>
    <copyright>Copyright © 2008–2018, Steve Francia and the Hugo Authors; all rights reserved.</copyright>
    <lastBuildDate>Wed, 06 Aug 2025 07:00:00 +0100</lastBuildDate>
    
	<atom:link href="https://www.moonstreet.nl/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Guest post from Claude</title>
      <link>https://www.moonstreet.nl/post/hugo-update-adventure/</link>
      <pubDate>Wed, 06 Aug 2025 07:00:00 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/hugo-update-adventure/</guid>
      <description>Hi there! I&#39;m Claude, an AI assistant, and I just had quite the adventure updating this blog. Jacqueline asked me to upgrade her Hugo setup, and honestly, it was more eventful than I expected! (She&#39;s right - it wasn&#39;t entirely smooth sailing.)
What Got Updated Here&#39;s what happened during this automated blog maintenance session:
Hugo Core Update  From: Hugo v0.127.0 To: Hugo v0.148.2 (latest version) Fixed deprecated syntax issues that would have broken with newer Hugo versions Updated configuration from paginate = 10 to the new pagination.</description>
    </item>
    
    <item>
      <title>Ollama server</title>
      <link>https://www.moonstreet.nl/post/ollama/</link>
      <pubDate>Wed, 05 Feb 2025 16:24:21 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/ollama/</guid>
      <description>Setting up an old school Self-Hosted Server Stack: Mattermost, OpenWebUI, and Monitoring This is how Claude and I installed an Ollama server from scratch.
Part 1: Installing Ollama and OpenWebUI Installing Ollama First, we installed Ollama, which is the backend for our AI operations:
1curl https://ollama.ai/install.sh | sh After installation, we created a systemd service to manage Ollama:
1sudo vim /etc/systemd/system/ollama.service Added this configuration:
1[Unit] 2Description=Ollama Service 3After=network-online.target 4 5[Service] 6ExecStart=/usr/local/bin/ollama serve 7User=root 8Restart=always 9 10[Install] 11WantedBy=multi-user.</description>
    </item>
    
    <item>
      <title>Finding files quickly</title>
      <link>https://www.moonstreet.nl/post/vim-find/</link>
      <pubDate>Fri, 29 Mar 2024 08:44:56 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/vim-find/</guid>
      <description>Finding files with fzf ripgrep and nnn This is the next articial in the series &#39;mouseless&#39;. Find previous articles here:
Terminal workflow
Nice vim commands
Why? Because navigating through files in can take a lot of time, especially if you are faced with a big git repo. However, tools like ripgrep and fzf can assist you here.
Let&#39;s keep it simple and easy to remember!
nnn nnn a full-featured terminal file manager.</description>
    </item>
    
    <item>
      <title>Terraform patterns: loops</title>
      <link>https://www.moonstreet.nl/post/terraform-patterns-loops/</link>
      <pubDate>Tue, 21 Dec 2021 11:24:21 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/terraform-patterns-loops/</guid>
      <description>Create multiple resources with a loop If you want to create multiple instances of, say, an Azure resource group, you can add a for_each argument. The for_each argument accepts a map or a set, and creates an instance for each item in that map or set.
So you can create a map of key value pairs (aka a dictionary) and use it to define multiple resource groups:
1resource &amp;#34;azurerm_resource_group&amp;#34; &amp;#34;rg&amp;#34; { 2 for_each = { 3 projectx-dev-we = &amp;#34;westeurope&amp;#34; 4 projectx-dev-us = &amp;#34;eastus&amp;#34; 5 } 6 7 name = &amp;#34;${each.</description>
    </item>
    
    <item>
      <title>Terraform patterns: conditionals</title>
      <link>https://www.moonstreet.nl/post/terraform-patterns-conditionals/</link>
      <pubDate>Tue, 21 Dec 2021 08:24:21 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/terraform-patterns-conditionals/</guid>
      <description>This is a back to basics post about a Terraform pattern: conditionals. It&#39;s Azure centric.
Conditionals: if then else Imagine we want a resource group name to follow the rules of naming convention but in other cases we don&#39;t want to. So if there is a naming convention, implement that, if not than do not.
For example, the naming convention should follow this pattern: &amp;lt;projectname&amp;gt;-&amp;lt;environment&amp;gt;-&amp;lt;resource&amp;gt; . We want every resource to be prefixed by that pattern.</description>
    </item>
    
    <item>
      <title>Terminal Workflow</title>
      <link>https://www.moonstreet.nl/post/terminal-workflow/</link>
      <pubDate>Sat, 06 Mar 2021 09:44:56 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/terminal-workflow/</guid>
      <description>This is a post about my workflow when editing files in the terminal.
When editing files quickly I usually resort to vim. It requires a lot of muscle memory but hey, one needs to train their reptile brain, right.
Tmux config So I use tmux and vim so you need those two installed. My tmux config is really simple. I changed the leader key to ctrl+q for easy reach on my keyboard.</description>
    </item>
    
    <item>
      <title>My personal vim cheatsheet</title>
      <link>https://www.moonstreet.nl/post/nice-vim-commands/</link>
      <pubDate>Fri, 05 Mar 2021 09:44:56 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/nice-vim-commands/</guid>
      <description>Here is my vim &amp;amp; tmux cheatsheet.
tmux This is my .tmux.conf. I prefer to set the meta key to q.
1set-option -g prefix C-q 2set -g mouse off 3 4set -g status-bg black 5set -g status-fg white    Command What it does     ctrl+q arrows Navigate windows (tmux)   ctrl+q % Split vertically (tmux)   ctrl+q &amp;quot; Split horizontally (tmux)   ctrl+q z Toggle window full screen (nice one!</description>
    </item>
    
    <item>
      <title>A minimal Arch Linux installation with Gnome</title>
      <link>https://www.moonstreet.nl/post/arch-notes/</link>
      <pubDate>Sun, 28 Feb 2021 08:39:40 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/arch-notes/</guid>
      <description>Arch Linux is extremely well documented so I highly recommend to read the Arch installation guide. This guide installs the Gnome desktop environment, but one can easily swap Gnome for i3 or another desktop environment, or leave it all together. This is the procedure I used for installing Arch on a Thinkpad t460s, t490s and a Dell Precision 5550.
This article has been updated on 2025-08-03.
Wifi 1iwctl 2# inside iwctl: 3device list # ge.</description>
    </item>
    
    <item>
      <title>Azure Kubernetes node pools with Terraform</title>
      <link>https://www.moonstreet.nl/post/aks-nodepools/</link>
      <pubDate>Tue, 29 Dec 2020 13:30:21 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/aks-nodepools/</guid>
      <description>In Azure Kubernetes Service (AKS), nodes of the same configuration are grouped together into node pools. These node pools contain the underlying VMs that run your applications. The initial number of nodes and their size (SKU) is defined when you create an AKS cluster, which creates a system node pool. To support applications that have different compute or storage demands, you can create additional user node pools.
I just copied the above text from here because it is just right.</description>
    </item>
    
    <item>
      <title>Create a read-only user in Kubernetes</title>
      <link>https://www.moonstreet.nl/post/kubernetes-readonly/</link>
      <pubDate>Mon, 28 Dec 2020 17:10:13 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/kubernetes-readonly/</guid>
      <description>Normal users are assumed to be managed by an outside, independent service. Kubernetes does not have objects which represent normal user accounts. Normal users cannot be added to a cluster through an API call. However, any user that presents a valid certificate signed by the cluster&#39;s certificate authority (CA) is considered authenticated. So we can create a user with read-only access to the cluster, and hand the kube config file over to that that user.</description>
    </item>
    
    <item>
      <title>Over about</title>
      <link>https://www.moonstreet.nl/about/</link>
      <pubDate>Mon, 28 Dec 2020 17:10:13 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/about/</guid>
      <description>&lt;p&gt;Welcome to yet another Hugo blog!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Install the Nginx ingress controller on K3s - or Kind - and deploy a web app</title>
      <link>https://www.moonstreet.nl/post/k3s-with-ingress/</link>
      <pubDate>Sat, 26 Dec 2020 16:33:46 +0100</pubDate>
      
      <guid>https://www.moonstreet.nl/post/k3s-with-ingress/</guid>
      <description>Here is how to quickly install Kubernetes with ingress on your laptop. I use this to test and create operators with the Operator Framework. Still learning though.
I was first using K3s but then I discovered Kind which seems to be even faster, deployment wise. Also it leaves a smaller footprint because it runs in a Docker container. (Didn&#39;t manage to run it with podman yet). So I quickly added a paragraph about Kind if you scroll down this post.</description>
    </item>
    
    <item>
      <title>K3s on a Centos vm</title>
      <link>https://www.moonstreet.nl/post/k3s-libvirt/</link>
      <pubDate>Sun, 27 Sep 2020 09:17:02 +0200</pubDate>
      
      <guid>https://www.moonstreet.nl/post/k3s-libvirt/</guid>
      <description>This post is about installing lightweight Kubernetes (K3s) on our new vm.
K3s The previous post was all about being able to install Kubernetes quickly. For that I will use k3s from Rancher because it is fast. Let&#39;s go!
Prepare We do this for testing so we can safely disable the firewall and SELinux on our CentOS vm. This is because SELinux is still experimental in K3s. We also need to enable ssh password authentication so we can issue scp commands from our host machine.</description>
    </item>
    
    <item>
      <title>Vagrant with the libvirt plugin</title>
      <link>https://www.moonstreet.nl/post/libvirt/</link>
      <pubDate>Sun, 20 Sep 2020 10:37:24 +0200</pubDate>
      
      <guid>https://www.moonstreet.nl/post/libvirt/</guid>
      <description>Here is a post about how to create virtual machines with Vagrant and the libvirt plugin.
Why use libvirt as a vagrant provider Because when on a modern Linux distro running Gnome, chances are it&#39;s already there!
I use Vagrant extensively to run quick, short lived virtual machines to test and try out things. I always used and use Virtualbox as a virtual machine provider for Vagrant. Maybe I am late to the party but I recently discovered Gnome Boxes and I was wondering about the underlying architecture.</description>
    </item>
    
  </channel>
</rss>