BeeDifferent Hub is a Hugo-powered personal reference site running as a persistent service on the Mac Studio. It’s the documentation layer for the entire stack โ apps, homelab, AI tools, terminal workflow, and property systems.
Hugo is a static site generator โ it reads Markdown files from content/ and produces a complete HTML site. The dev server watches for file changes and rebuilds automatically, so editing any _index.md shows up in the browser within a second.
| Item | Value |
|---|---|
| Site root | ~/Sync/ED/homelab/bee_hub/ |
| Content | ~/Sync/ED/homelab/bee_hub/content/ |
| Theme | themes/bee-theme/ (custom) |
| Config | hugo.toml |
| Hugo version | v0.155.3+extended (Homebrew) |
| URL (LAN) | http://192.168.8.180:1313 |
| URL (local) | http://localhost:1313 |
| URL (remote) | Via Pangolin โ MacStudio private resource |
Hugo runs as a persistent launchd agent that starts at login and restarts automatically if it crashes.
| Item | Value |
|---|---|
| Plist | ~/Library/LaunchAgents/com.beedifferent.hugo-hub.plist |
| Label | com.beedifferent.hugo-hub |
| Command | hugo server --port 1313 --bind 192.168.8.180 --baseURL http://192.168.8.180:1313 |
| Working dir | ~/Sync/ED/homelab/bee_hub |
| Log | ~/Library/Logs/hugo-hub.log |
| Error log | ~/Library/Logs/hugo-hub.err.log |
Service commands:
# Check status
launchctl list | grep hugo
# Stop
launchctl unload ~/Library/LaunchAgents/com.beedifferent.hugo-hub.plist
# Start
launchctl load ~/Library/LaunchAgents/com.beedifferent.hugo-hub.plist
# Restart
launchctl unload ~/Library/LaunchAgents/com.beedifferent.hugo-hub.plist && \
launchctl load ~/Library/LaunchAgents/com.beedifferent.hugo-hub.plist
# View logs
tail -50 ~/Library/Logs/hugo-hub.log
tail -20 ~/Library/Logs/hugo-hub.err.log
Note: Hugo’s dev server caches hugo.toml. Changes to the menu (adding/removing nav tabs) require a service restart to appear. Content changes (_index.md files) hot-reload automatically.
Every page is a directory containing an _index.md file. The top-level nav is defined in hugo.toml:
| Weight | Tab | URL |
|---|---|---|
| 1 | Mac Apps | /mac-apps/ |
| 2 | Terminal | /terminal/ |
| 3 | System Settings | /system-settings/ |
| 4 | Menu Bar | /menu-bar/ |
| 5 | AI | /ai/ |
| 6 | Homelab | /homelab/ |
| 7 | Misc | /misc/ |
| 8 | Automation | /automation/ |
| 9 | Mac Studio | /mac-studio/ |
| 10 | Tana | /tana/ |
| 11 | Meshtastic | /meshtastic/ |
| 12 | Docs | /docs/ |
Content tree (homelab section example):
content/homelab/
โโโ _index.md โ Category landing (sidebar list)
โโโ proxmox/_index.md โ Proxmox VE reference
โโโ services/_index.md โ Services directory
โโโ music-pipeline/_index.md
โโโ life-archive/_index.md
โโโ mcp-servers/_index.md
โโโ bee-hub/_index.md โ This page
โโโ shelfmark/_index.md
Category landing page โ has a sidebar with sub-page links:
title: "Homelab"
subtitle: "Infrastructure, services, and remote access"
sidebar_sections:
- { url: "/homelab/proxmox/", name: "Proxmox VE" }
sidebar_links:
- { name: "External Link", url: "https://example.com" }
Individual page โ has quick-access link buttons at top:
title: "Music Pipeline"
page_links:
- { label: "Lidarr", url: "http://192.168.8.100:8686", external: true }
- { label: "Internal Link", url: "/homelab/services/", external: false }
The bee-theme provides shortcodes for structuring content. All shortcode files live in themes/bee-theme/layouts/shortcodes/.
| Shortcode | Purpose | Parameters |
|---|---|---|
section |
Collapsible content block | id, title |
app-card |
App info card with links | title, page, docs, shortcuts, cheatsheet |
app-grid |
Grid wrapper for app-cards | none |
cmd |
Styled terminal command block | none (content is the command) |
grid |
Two-column grid layout | none |
tip |
Tip/note callout box | none |
The app-card shortcode supports a docs parameter that renders a ๐ Docs โ link directly on the card โ already used throughout the Mac Apps pages.
Edit an existing page:
Open content/section/page/_index.md in any editor (BBEdit, VS Code, Obsidian). Hugo hot-reloads within ~1 second.
Add a new page:
mkdir -p ~/Sync/ED/homelab/bee_hub/content/homelab/new-page
# Create _index.md with frontmatter and content
# Add to parent _index.md sidebar_sections list
Add a new nav tab:
- Create
content/new-section/_index.md - Add entry to
hugo.tomlwith aname,url, andweight - Restart the Hugo service โ menu changes need a restart, content changes do not
Can I edit in Obsidian?
Yes โ all Hugo content is plain Markdown. Open ~/Sync/ED/homelab/bee_hub/content/ as an Obsidian vault. The YAML frontmatter block must stay intact. Hugo shortcodes show as raw text in Obsidian’s preview but edit safely.
The dev server serves content dynamically โ no build step needed for day-to-day editing.
To regenerate the static /public/ folder:
cd ~/Sync/ED/homelab/bee_hub
hugo
# Output goes to /public/
The /public/ folder is included in the Mac Studio SYNC directory and gets pulled to Proxmox /nvmepool/sync/ by the nightly sync-mac.sh rsync job.