//nbkelley /homelab

hugoboss

hugoboss#

What Was Established#

hugoboss (192.168.1.237) is a lightweight Ubuntu server dedicated to Hugo static site development. It serves as the authoring and scaffolding machine for all Hugo-based sites in the homelab. A full machine audit was conducted 2026-05-01; repos were synced and organised 2026-05-02.

Identity#

  • Hostname: hugoboss
  • IP: 192.168.1.237 (VLAN Gandalf)
  • OS: Ubuntu 24.04.3 LTS (Noble Numbat), kernel 6.8.0-88-generic
  • User: iluvatar
  • Disk: 63G total, ~12G used, 49G free
  • Memory: 3.8G total, ~2.7G available

Hugo Installation#

Hugo is installed via Homebrew (linuxbrew), not via apt or direct binary download.

Hinterflix Help Site - Cloudflare Deployment

Hinterflix Help Site - Cloudflare Deployment#

What Was Established#

The Hinterflix help site (help.hinterflix.com) is deployed as a static Hugo site on Cloudflare Workers. The domain is managed within the same Cloudflare account.

Key Decisions#

  • Hosting: Cloudflare Workers Pages (static hosting).
  • Domain: help.hinterflix.com (root subdomain of hinterflix.com).
  • DNS: CNAME record pointing to the Cloudflare Workers subdomain (*.workers.dev). Proxy status set to Proxied (orange cloud).
  • SSL/TLS: Automatically provisioned by Cloudflare. “Always Use HTTPS” enabled in SSL/TLS settings.

Configuration Steps#

  1. Cloudflare DNS Setup:

Hugo Deployment to Cloudflare Pages - Troubleshooting

Hugo Deployment to Cloudflare Pages - Troubleshooting#

What Was Established#

Patterns for resolving missing assets (favicons, CSS, styling) and build failures when deploying Hugo-generated static sites to Cloudflare Pages.

Key Decisions#

  • Build Configuration: Set build command to hugo, output directory to public, and explicitly match the local Hugo version in Cloudflare Pages settings.
  • Static Asset Placement: Ensure all static files (e.g., favicon.ico, CSS) reside in the static/ directory root or theme-specific static folders.
  • Rebuild Enforcement: Use hugo --cleanDestinationDir or manually remove the public/ directory to force Hugo to regenerate all assets and detect changes.
  • Cache Management: Clear both Cloudflare Pages deployment cache and browser cache to prevent stale asset delivery.
  • Verification Workflow: Validate locally via hugo server, inspect the generated public/ directory, review Cloudflare deployment logs, and confirm full Git commits.

Current Configuration#

  • Build Command: hugo
  • Output Directory: public
  • Static Directory: static/
  • Config File: config.toml / config.yaml (verify baseURL matches target domain)

Obsidian Integration for Hugo Date Format#

Hugo expects ISO 8601 dates with timezone offset: 2025-11-22T23:11:12-05:00

Hugo Git Submodule Extraction Pattern

Hugo Git Submodule Extraction Pattern#

What Was Established#

Hugo themes installed as Git submodules (e.g., git submodule add <url> themes/theme-name) carry their own Git history. When you want to customize the theme beyond configuration, extracting the submodule into the main repository gives you full control over theme files without managing a separate submodule repository.

The Pattern#

  1. Remove the submodule registration:
    git submodule deinit themes/theme-name
    git rm themes/theme-name
  2. Re-add the theme as regular files:
    git clone <theme-url> /tmp/theme-temp
    cp -r /tmp/theme-temp/* themes/theme-name/
    git add themes/theme-name/
    git commit -m "Extract theme-name from submodule into main repo"
  3. Result: Theme files are now tracked directly in the main repository.

When to Use#

  • You need to modify theme templates, layouts, or partials beyond what config allows
  • The upstream theme is stable and you don’t need to pull updates
  • You want simpler CI/CD without recursive submodule clones

When Not to Use#

  • The theme receives frequent updates you want to track
  • You only need CSS overrides (use assets/ or static/ instead)

Git Push Authentication, Ilmarë Website, Self-Hosted CMS Options & Landscape

Ilmarë Website

Ilmarë Website#

What Was Established#

  • Static Hugo site hosted on Varda (192.168.1.131).
  • Features CSS Grid layout, hamburger menu, and parallax hero.

Development Patterns#

Conditional Title Suffixes#

  • Goal: Append a suffix (e.g., /home) to the page title only on the index page.
  • Implementation: Leverage Hugo’s .IsHome boolean within template conditionals.
  • Pattern:
    {{ if .IsHome }}{{ .Site.Title }}/home{{ else }}{{ .Title }}{{ end }}
    or using a variable for cleaner syntax:
    {{ $suffix := "" }}
    {{ if .IsHome }}{{ $suffix = "/home" }}{{ end }}
    {{ if .IsHome }}{{ .Site.Title }}{{ $suffix }}{{ else }}{{ .Title }}{{ end }}
  • Context: Applied to layouts/index.html or base templates to differentiate the root URL from inner pages.

Current Configuration#

  • Host: Varda (192.168.1.131)
  • Stack: Hugo static site generation
  • Template Engine: Go templates

Historical Notes#

  • Conversation dated 2025-11-24. Pattern confirmed for Hugo static site generation.

Open Questions#

  • None.

Sources#

  • ingested/chats/115-Adding -home to index page conditionally.md