Skip to main content

Changelog — 2026-01-28: Site changes & notes

This page documents the changes made on 2026-01-28 so you can quickly find what was changed, where, and why. Use this as a reference if you want to revert or adjust behaviour later.

Summary of changes
#

  • Menus updated to make Docs and My HomeLab top-level main menu items, and to add tag-filtered submenus under My HomeLab.
  • Site-wide background image added via custom CSS, with blur and dark overlay applied for readability.
  • Created a new example post for the Plex + Arr stack (two compose placeholders) and updated templates and archetypes to standardize Homelab content creation.
  • Added a tagging guidelines page and archetypes for host/service/runbook/incident.
  • Favicon implementation: copied favicon files from favicon_io 2/ to static/ folder for browser tab icon and app icons.

How it works (simple)
#

  1. Menus are defined in config/_default/menus.en.toml.
  • Each [[main]] entry has name, pageRef and weight.
  • pageRef can point to a category (e.g. categories/HomeLab) or a tag (e.g. tags/media).
  • weight controls ordering (lowest first).
  • Sub-menus are created by adding another [[main]] with parent = "My HomeLab".
  1. What appears on each menu page depends on the pageRef target:
  • If pageRef = "categories/HomeLab", the page lists content with categories: ["HomeLab"].
  • If pageRef = "tags/media", the page lists content that has tags: ["media"].
  1. Example front matter (TOML) and what it does:
  • Appear in the main My HomeLab (category-based):
title = "My Host"
date = 2026-01-28
draft = false
categories = ["HomeLab"]
tags = ["proxy","nginx"]
  • Appear in My HomeLab main and Media sub-menu (both):
title = "Plex setup"
date = 2026-01-28
draft = false
categories = ["HomeLab"]
tags = ["media","plex"]
  • Appear ONLY in the Media sub-menu (not in main):
title = "Subtitle setup"
date = 2026-01-28
draft = false
# no HomeLab category
tags = ["media","bazarr"]
  1. If you want the main My HomeLab menu to be tag-based (so it lists tags/homelab), change its pageRef in config/_default/menus.en.toml from categories/HomeLab to tags/homelab.

  2. Testing and quick checks:

hugo server -D
# visit http://localhost:1313 and click the menus to confirm the right pages
  1. Quick edits:
  • Change submenu target: edit pageRef under that [[main]] entry to a different tags/<tag>.
  • Reorder menus: change weight values.
  • Rename visible labels: change name.

Files changed / created
#

  • config/_default/menus.en.toml

    • What: Moved Docs and My HomeLab into [[main]]. Added sub-menu entries (as [[main]] with parent = "My HomeLab") that link to tag pages: tags/media, tags/infrastructure, tags/monitoring, tags/security.
    • Why: Make My HomeLab a first-class menu and have submenus show only posts with the matching tag.
    • How to change: edit pageRef (e.g., tags/media) to point to different tags or change name/weight to reorder items.
  • config/_default/params.toml

    • What: An attempt was made to enable defaultBackgroundImage but the change was reverted. Current advised approach uses CSS.
    • Why: The theme-level param did not take effect (or was reverted), so we used custom CSS to guarantee site-wide background behavior.
  • assets/color.jpg

    • What: The image used as background (stored as assets/color.jpg).
    • Why: Source used by the custom CSS.
  • assets/css/custom.css (new)

    • What: Added site-wide background CSS and visual effects:
      • body::before contains the blurred background image (currently filter: blur(8px))
      • body::after adds a dark overlay (background-color: rgba(0,0,0,0.5)) to improve text contrast
    • Why: Achieve a blurred, darkened background across the whole site while keeping content readable.
    • Quick edits:
      • Change blur: edit filter: blur(8px) to another value (e.g., 5px lighter, 15px heavier).
      • Change darkness: edit rgba(0,0,0,0.5) (0.0 = transparent, 1.0 = black).
      • Change image: update url('/color.jpg') to another path under assets/.
  • content/posts/plex-arr-stack/index.md (new)

    • What: New published post titled “Plex and the Arr Stack - Media Automation Setup” with two placeholder compose snippets.
    • Tags: includes homelab and media, so it will appear under the My HomeLab main menu and the Media & Entertainment submenu.
    • Why: Example content and to populate the media submenu so tag-based filtering can be tested.
  • template.md (site-level template)

    • What: Updated with TAGGING GUIDELINES section to help author consistent posts.
    • Why: Ensure new posts follow the tagging strategy so menus display as expected.
  • archetypes/host.md, archetypes/service.md, archetypes/runbook.md, archetypes/incident.md (new)

    • What: Archetypes created to standardize front matter for hosts, services, runbooks, and incidents.
    • Why: Use hugo new --kind to create new content with consistent fields (tags, status, host_id, maintainer, impact, etc.).
  • content/templates/TAGGING_GUIDELINES.md (new)

    • What: Canonical categories and recommended tags, plus rules (lowercase, hyphen-separated) and how to use archetypes.
    • Why: Keep taxonomy consistent across docs and sites.
  • static/ (favicon files from favicon_io 2/)

    • What: Added favicon files (favicon.ico, apple-touch-icon.png, android-chrome-*.png, site.webmanifest) to static folder.
    • Why: Make the site’s favicon (browser tab icon) and app icons visible across browsers and devices.
    • How to change: Replace files in static/ with new favicon files from a favicon generator; use hex colors #1697de (blue) or #ed5d2e (orange) from the site background for consistency.
  • config/_default/menus.en.toml (cleanup)

    • What: Removed old, unused commented [[subnavigation]] blocks and duplicate examples to declutter the file.
    • Why: Keep the file maintainable and ensure there’s no confusion between main and subnavigation usage.

How to revert a single change
#

  • To restore a file to the last committed state:
git checkout -- config/_default/menus.en.toml
git checkout -- assets/css/custom.css
  • To inspect diffs before reverting:
git status
git diff HEAD -- config/_default/menus.en.toml
  • To revert the entire commit (if changes were committed):
git log --oneline
# find the commit sha and then
git revert <commit-sha>

Where to edit later (quick pointers)
#

  • Menu labels, targets, ordering: config/_default/menus.en.toml — edit name, pageRef, and weight.
  • Tag targets for submenus: pageRef = "tags/<tag>" (change <tag> to your canonical tag).
  • Site-wide background/blur/darkness: assets/css/custom.css — adjust filter and rgba values.
  • Template guidance and tag lists: content/templates/TAGGING_GUIDELINES.md and template.md.
  • Use archetypes to create new pages consistently:
hugo new --kind host inventories/hosts/my-host.md
hugo new --kind service docs/services/my-service.md
hugo new --kind runbook runbooks/my-runbook.md
hugo new --kind incident runbooks/incidents/rca.md

Notes and rationale
#

  • Tag-based submenus allow fine-grained control: a post tagged homelab appears in the main My HomeLab listing; posts tagged only media will show only in the Media submenu. This gives flexibility over where content appears.
  • CSS approach for backgrounds is used because the theme param did not produce the expected result or was reverted; CSS is reliable and gives precise control (blur/overlay).
  • Archetypes and a central TAGGING_GUIDELINES.md make it easy to keep new content consistent and ensure menus work as intended.

Future Implementation Notes (Step 3)
#

Templates Visibility
#

The template files (POST_TEMPLATE.md, TAGGING_GUIDELINES.md, CHANGELOG_2026-01-28.md) are stored in content/templates/ but are currently not visible in your main menus. They exist on the site but require direct links to access.

Why: Templates don’t have the categories/tags that menus target (e.g., documentation, HomeLab, media, etc.).

Options for future implementation:

  1. Create a Templates landing page — Add content/templates/_index.md that lists and links to all template files. This makes them discoverable in one place.
  2. Add Templates menu item — Add a new [[main]] entry in config/_default/menus.en.toml pointing to templates/ so it appears in the header.
  3. Keep as hidden references — Set draft: true on all template files if you prefer them as internal-only documentation (accessible via repo, not on the published site).

Direct URLs (current):

  • https://skui.io/templates/post-template/
  • https://skui.io/templates/tagging-guidelines/
  • https://skui.io/templates/changelog-2026-01-28/

Choose which approach fits your workflow and implement when ready.


If you want, I can:

  • Add a short CHANGELOG entry to the repo root README.md.
  • Create a small script to scan Homelab-Doc and suggest tag mappings for existing files (preview before applying).
Steffen Skui
Author
Steffen Skui
Working in IT in the private sector, spending free time on automation, self-hosted services, and small homelab experiments. Father of two.