Skip to main content

Runbook — Add Documentation

Step-by-step process for adding a new page to this Docusaurus site.

Prerequisites

Step 1 — Create the markdown file on Vera

cd /home/southville-forge/Southville-Forge-System/Sites/docsaurus-echohuman

Create a new .md file in the appropriate docs/ subdirectory:

# Example: adding a new Helsinki2 page
nano docs/helsinki2/new-page.md

Frontmatter required at the top of every page:

---
id: new-page
title: My New Page Title
sidebar_position: 7
---

# My New Page Title

Content goes here...

The sidebar_position controls order within the section. Use the next available number.

Step 2 — Add to sidebars.js

Open sidebars.js and add the page id to the correct section:

nano sidebars.js

Find the relevant sidebar category (e.g. helsinki2Sidebar) and add the new page id:

items: [
'helsinki2/proxmox-overview',
'helsinki2/ct-and-vm-inventory',
'helsinki2/new-page', // ← add here
],

Step 3 — Build on Vera

cd /home/southville-forge/Southville-Forge-System/Sites/docsaurus-echohuman
npm run build

Confirm the build succeeds with [SUCCESS] Generated static files in "build".

Fix any broken link warnings before deploying.

Step 4 — Deploy to VM700

Run both rsync steps from the Proxmox host ([email protected]):

# Pull build from Vera to Proxmox
rsync -avz --delete \
[email protected]:'/home/southville-forge/Southville-Forge-System/Sites/docsaurus-echohuman/build/' \
/tmp/docsaurus-build/

# Push from Proxmox to VM700
rsync -avz --delete \
/tmp/docsaurus-build/ \
[email protected]:/opt/stacks/echohuman-docsaurus/site-build/

No container restart needed. nginx serves static files directly from site-build/.

Step 5 — Verify

curl -I https://docsaurus.echohuman.org
curl -s https://docsaurus.echohuman.org/helsinki2/new-page | grep '<title>'

Troubleshooting

ProblemCauseFix
New page not appearing in sidebarID missing from sidebars.jsAdd the page id and rebuild
Build fails with broken linkA link references a non-existent pageFix the link or set onBrokenLinks: 'warn'
Public URL shows old contentBrowser cacheHard refresh (Ctrl+Shift+R) or test with curl
site-build has old content after rsyncRsync ran before build finishedRe-run rsync after build completes