--- title: MajorWiki Deployment Status status: deployed project: MajorTwin updated: 2026-04-07T10:48 created: 2026-04-02T16:10 --- # MajorWiki Deployment Status ## Status: Deployed ✅ **URL:** https://notes.majorshouse.com **Host:** majorlab (`/opt/majwiki`) **Port:** 8092 (internal), proxied via Caddy **Engine:** MkDocs Material (squidfunk/mkdocs-material) ## Stack - Docker Compose at `/opt/majwiki/compose.yml` - `network_mode: host` — container binds directly to host network - MkDocs serves on `0.0.0.0:8092` - Caddy proxies `notes.majorshouse.com → :8092` - Let's Encrypt cert provisioned 2026-03-11, valid until 2026-06-09 ## Why notes.majorshouse.com `wiki.majorshouse.com` was provisioned and configured correctly but Google Fiber blocks TLS handshakes for SNI hostnames containing "wiki" at the ISP level. `notes.majorshouse.com` works fine on the same IP and port. `wiki.majorshouse.com` DNS record and Caddy entry have been removed. ## Content - 74 articles across 5 domains - Source of truth: `MajorVault/30-Areas/MajorWiki/` - Deployed via Gitea webhook (push from MajorAir → auto-pull on majorlab) ## Update Workflow ```bash # From MajorRig (majorlinux user) rsync -av --include="*.md" --include="*/" --exclude="*" \ /mnt/c/Users/majli/Documents/MajorVault/30-Areas/MajorWiki/ \ root@majorlab:/opt/majwiki/docs/ # MkDocs hot-reloads automatically — no container restart needed ``` ## Backlog - [✅] Gitea webhook for auto-deploy on push (Active as of 2026-03-11) - [✅] Git repo initialized on MajorAir — push to deploy (2026-03-12) - [✅] Troubleshooting section seeded with articles - [ ] Add `03-opensource` articles ## Incident Log ### 2026-03-11 — 502 Error & Webhook Repair - **Issue:** Wiki returned 502 Bad Gateway. - **Cause:** `majwiki` container was in a restart loop due to a `LiterateNavParseError` in `SUMMARY.md` (invalid globbing syntax). - **Repair:** Rewrote `SUMMARY.md` with explicit links. Repaired `majwiki-webhook.service` by killing an orphaned process and correcting the Caddy reverse proxy routing for `/webhook`. - **Result:** Site live and auto-deployment functional. --- *Updated 2026-03-15* ## Canonical Update Workflow Obsidian Git plugin was evaluated and dropped — too convoluted. Manual git from the terminal is the workflow going forward. ```bash cd ~/Documents/MajorVault git add 30-Areas/MajorWiki/ git commit -m "wiki: describe your changes" git push ``` Gitea receives the push → fires webhook → majorlab pulls → MkDocs rebuilds → `notes.majorshouse.com` updates automatically. ## 📋 Wiki Maintenance Protocol Every time a new article is added, the following **MUST** be updated to maintain index integrity: 1. **`SUMMARY.md`**: Add the article to the navigation tree. 2. **Category Index**: Update the `index.md` within the specific domain folder (e.g., `05-troubleshooting/index.md`). 3. **Main `index.md`**: - Update the **Article count**. - Add the article to the domain section. - Add the article to the **Recently Updated** table. 4. **Root `README.md`**: Sync with the main `index.md` (Article count, domain lists, and Recently Updated). > [!note] The rsync one-liner in the Update Workflow section above was a one-off during initial setup. It is no longer the canonical method. --- ## Related - [[majorlab|majorlab]] — deploy host (port 8092, Caddy reverse proxy, Gitea webhook) - [[01-Phases|Implementation Phases]] — Phase 9 (wiki & knowledge base) - [[09-Lessons-Learned-v5|Lessons Learned v5]] — ISP SNI filtering on wiki.majorshouse.com (why it's notes.majorshouse.com) - [[MajorAir|MajorAir]] — push host for git workflow - [[MajorRig|MajorRig]] — alternative git push host (WSL2 path documented) - [[03-11-2026|Status Update 2026-03-11]] — deployment date journal entry - [[03-13-2026|Status Update 2026-03-13]] — content expansion and SUMMARY.md sync --- ## Session Update — 2026-03-16 **Article count:** 45 (was 42) **New articles added:** - `01-linux/distro-specific/wsl2-rebuild-fedora43-training-env.md` — full MajorTwin training env rebuild guide - `01-linux/distro-specific/wsl2-backup-powershell.md` — WSL2 backup via PowerShell scheduled task - `02-selfhosting/security/ansible-unattended-upgrades-fleet.md` — standardizing unattended-upgrades across Ubuntu fleet **SUMMARY.md:** Updated to include all 3 new articles. Run SUMMARY.md dedup script if duplicate content appears (see board file cleanup pattern). **Updated:** `updated: 2026-03-16` ## Session Update — 2026-03-17 **Article count:** 47 (was 45) **New articles added:** - `05-troubleshooting/networking/windows-sshd-stops-after-reboot.md` — Windows OpenSSH sshd not starting after reboot - `05-troubleshooting/ollama-macos-sleep-tailscale-disconnect.md` — Ollama drops off Tailscale when MajorMac sleeps **Updated:** `updated: 2026-03-17` ## Session Update — 2026-03-18 (morning) **Article count:** 48 (was 47) **New articles added:** - `02-selfhosting/monitoring/netdata-docker-health-alarm-tuning.md` — tuning docker_container_unhealthy alarm to prevent flapping during Nextcloud AIO updates **Updated:** `updated: 2026-03-18` ## Session Update — 2026-03-18 (afternoon) **Article count:** 49 (was 48) **New articles added:** - `02-selfhosting/monitoring/netdata-new-server-setup.md` — full Netdata deployment guide: install via kickstart.sh, email notification config, Netdata Cloud claim **Updated:** `updated: 2026-03-18` ## Session Update — 2026-04-02 **Article count:** 74 (was 49) **New article this session:** - `02-selfhosting/security/fail2ban-wordpress-login-jail.md` — Fail2ban custom jail for WordPress login brute force (access-log-based, no plugin required) **Also today:** Major wiki audit added 8 articles from archive, fixed 67 wikilinks, added frontmatter to 43 files, moved wiki from `20-Projects/MajorTwin/08-Wiki/` to `30-Areas/MajorWiki/`. See daily note for full details. **Updated:** `updated: 2026-04-02`