Shade Garden

Sensirion Sps30 Experiments

Sensirion SPS30 Experiments

For some days an air purifier is doing its work here, leading to significant improvements but only if running in manual mode, the automatic mode seems lacking, at least according to my nose.

Because this is not very scientific, I decided to connect another sensor to my pc and see if the values somewhere else in the room differ from what the purifier measures.

A possible reason: to measure airquality, you need to transport enough air to the sensor, but what happens if the automatic mode drops fan speeds so low that it’s not enough to produce accurate reads?

Garden Versioning

Sometimes you should read the changelog

Tags were not working properly, which ended up like this:

../Screenshot_20250608_145452.png

Hugo was complaining in the terminal like this:

hugo server --buildDrafts --disableFastRender
WARN  found no layout file for "html" for kind "term": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

I went down some rabbit holes and stumpled accross an information from the Hugo Docs

Updating Kubernetes on Talos

Upgrading Kubernetes on Talos

Introduction

I pulled the short straw and the builtin talosctl upgrade-k8s did not work for me and after spending some time investigating and failing to find the solution I just decided to go the long way and update things manually.

For Reference: Official Docs v1.10

Upgrade steps

Set environment to the correct cluster

set -gx KUBECONFIG ~/.config/kubeconfig_hcloud
set -gx TALOSCONFIG ~/.config/talosconfig

Ensure everything is running fine.

In case someone wonders about the command, I’m using oc as kubectl replacement because my brain is hardwired through years of working with this thing.

Building Shades

Building Shades

Goals

  • pages written in Markdown, deployed as a static site
  • pages pushed to git, rendered automatically without user interaction
  • low-cost, reasonable performance solution

Infrastructure

  • kubernetes cluster
  • object storage
  • domain
  • git
  • linux workstation

Steps

From Zero to First Post

  • install hugo binary
  • create a git repository and, if not public, create an application token for read access
  • create a bucket where your static files for the webpage are stored
  • install kubernetes manifests for
    • cronjob
      • renders static site using hugo
      • pushes to s3
    • nginx
      • handles serving the static website from s3 to http
    • ingress
      • handles tls termination at the edge
  • configure hugo
  • create a post
  • test locally served page

Technical Details

Hugo Stuff

  • install hugo binary: https://gohugo.io/installation/
    • i.e. pacman -S hugo
    • hugo version #does this work?
  • create git repository
    • create application token
      • permissions: repository read
    • git clone <repo>
  • create a bucket
    • Hetzner Cloud
      • public access
      • no versioning
  • hugo new site garden --force
  • edit hugo.toml, look for a nice theme here: https://themes.gohugo.io/
    • set theme in hugo.toml like theme = 'example'
  • create a post with hugo new content content/posts/something-new.md
  • serve locally hugo server --buildDrafts
  • remember to change draft=true to draft=false in the header of the markdown file
  • commit to repository

Kubernetes Stuff

Example for Hetzner Cloud NBG1 bucket

New Shade

Somewhere in the corner of my mind

something kept nagging me to build a space for those not-so-shiny ideas, thoughts and experiments I come across while tinkering. Lately the garbage collection of my human brain tends to be more thorough with collecting information so i think it might be interesting to see where those bits and pieces are leading to.

And finally, this is the place…

Shades in the Garden

  • Linux
  • Virtualization
  • Containers and Pods
  • Networks
  • Automation
  • Monitoring

Below the surface

  • Hugo
  • Object Storage
  • Kubernetes Cronjob
  • Forgejo