148 lines
5.4 KiB
Markdown
148 lines
5.4 KiB
Markdown
---
|
|
title: MajorWiki Deployment Status
|
|
status: deployed
|
|
project: MajorTwin
|
|
updated: '2026-03-12'
|
|
---
|
|
|
|
# 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
|
|
|
|
- 42 articles across 5 domains
|
|
- Source of truth: `MajorVault/20-Projects/MajorTwin/08-Wiki/`
|
|
- 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/20-Projects/MajorTwin/08-Wiki/ \
|
|
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 20-Projects/MajorTwin/08-Wiki/
|
|
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`
|