audit: Gitea→Forgejo refs, dcaprod migration note, remove empty stub from nav

This commit is contained in:
Marcus Summers 2026-06-23 19:31:41 -04:00
parent 9834e44eb1
commit 7eace8bc64
6 changed files with 11 additions and 13 deletions

View file

@ -21,8 +21,7 @@ The **MajorsHouse** infrastructure is connected via a private **Tailscale** mesh
| Host | Location | IP | OS | Notes | | Host | Location | IP | OS | Notes |
|---|---|---|---|---| |---|---|---|---|---|
| `dcaprod` | 🇺🇸 US | 100.104.11.146 | Ubuntu 24.04 | DO droplet — live until ~2026-05-22 | | `dcaprod` | 🇺🇸 US | 100.98.223.93 | Ubuntu 24.04 | Hetzner CPX21 (migrated from DO ~2026-05-22) |
| `dcaprod-hetzner` | 🇺🇸 US | 100.98.223.93 | Ubuntu 24.04 | Hetzner CPX21 — migration target; DNS cutover ~May 22 |
| `majortoot` | 🇺🇸 US | 100.110.197.17 | Ubuntu 24.04 | | | `majortoot` | 🇺🇸 US | 100.110.197.17 | Ubuntu 24.04 | |
| `majorhome` | 🇺🇸 US | 100.120.209.106 | Fedora 43 | | | `majorhome` | 🇺🇸 US | 100.120.209.106 | Fedora 43 | |
| `teelia` | 🇬🇧 UK | 100.120.32.69 | Ubuntu 24.04 | | | `teelia` | 🇬🇧 UK | 100.120.32.69 | Ubuntu 24.04 | |
@ -36,4 +35,4 @@ Tailscale is configured as a persistent service on all nodes. Key features used
- **ACLs:** Managed via the Tailscale admin console to restrict cross-group communication where necessary. - **ACLs:** Managed via the Tailscale admin console to restrict cross-group communication where necessary.
--- ---
*Last updated: 2026-05-19* *Last updated: 2026-06-23*

View file

@ -75,7 +75,7 @@ sudo virt-host-validate
## How I Actually Use Both ## How I Actually Use Both
In practice: In practice:
- **Self-hosted services** (Nextcloud, Gitea, Jellyfin, monitoring stacks) → Docker Compose - **Self-hosted services** (Nextcloud, Forgejo, Jellyfin, monitoring stacks) → Docker Compose
- **Gaming/Windows stuff that needs the real deal** → VM with GPU passthrough - **Gaming/Windows stuff that needs the real deal** → VM with GPU passthrough
- **Testing a new distro or destructive experiments** → VM, snapshot before anything risky - **Testing a new distro or destructive experiments** → VM, snapshot before anything risky
- **Network appliances** (pfSense, OPNsense) → VM, not a container - **Network appliances** (pfSense, OPNsense) → VM, not a container

View file

@ -40,14 +40,14 @@ A walkthrough of how MajorWiki is built, configured, and kept in sync — from w
/opt/majwiki-config/ # Config files (outside git) /opt/majwiki-config/ # Config files (outside git)
mkdocs.yml # docs_dir: docs mkdocs.yml # docs_dir: docs
compose.yml # Docker Compose compose.yml # Docker Compose
webhook.py # Gitea webhook handler webhook.py # Forgejo webhook handler
``` ```
## Publishing Flow ## Publishing Flow
1. Write or edit a note in Obsidian 1. Write or edit a note in Obsidian
2. Obsidian syncs the vault to Gitea via git (using Obsidian Git plugin) 2. Obsidian syncs the vault to Gitea via git (using Obsidian Git plugin)
3. Gitea fires a POST to the webhook at port 9091 3. Forgejo fires a POST to the webhook at port 9091
4. Webhook verifies the HMAC signature, runs `git pull` on `/opt/majwiki` 4. Webhook verifies the HMAC signature, runs `git pull` on `/opt/majwiki`
5. Webhook restarts the `majwiki` Docker container 5. Webhook restarts the `majwiki` Docker container
6. MkDocs rebuilds the site and serves the updated content 6. MkDocs rebuilds the site and serves the updated content
@ -143,4 +143,4 @@ git commit -m "wiki: describe your changes"
git push git push
``` ```
From there: Gitea receives the push → fires webhook → majorlab pulls → MkDocs rebuilds → `notes.majorshouse.com` updates. From there: Forgejo receives the push → fires webhook → majorlab pulls → MkDocs rebuilds → `notes.majorshouse.com` updates.

View file

@ -34,7 +34,7 @@ DNS record and Caddy entry have been removed.
- 74 articles across 5 domains - 74 articles across 5 domains
- Source of truth: `MajorVault/30-Areas/MajorWiki/` - Source of truth: `MajorVault/30-Areas/MajorWiki/`
- Deployed via Gitea webhook (push from MajorAir → auto-pull on majorlab) - Deployed via Forgejo webhook (push from MajorAir → auto-pull on majorlab)
## Update Workflow ## Update Workflow
@ -49,7 +49,7 @@ rsync -av --include="*.md" --include="*/" --exclude="*" \
## Backlog ## Backlog
- [✅] Gitea webhook for auto-deploy on push (Active as of 2026-03-11) - [✅] Forgejo webhook for auto-deploy on push (Active as of 2026-03-11)
- [✅] Git repo initialized on MajorAir — push to deploy (2026-03-12) - [✅] Git repo initialized on MajorAir — push to deploy (2026-03-12)
- [✅] Troubleshooting section seeded with articles - [✅] Troubleshooting section seeded with articles
- [ ] Add `03-opensource` articles - [ ] Add `03-opensource` articles
@ -77,7 +77,7 @@ git commit -m "wiki: describe your changes"
git push git push
``` ```
Gitea receives the push → fires webhook → majorlab pulls → MkDocs rebuilds → `notes.majorshouse.com` updates automatically. Forgejo receives the push → fires webhook → majorlab pulls → MkDocs rebuilds → `notes.majorshouse.com` updates automatically.
> [!tip] One-liner wrapper > [!tip] One-liner wrapper
> On MajorRig, the `~/bin/wiki-commit "msg"` helper runs `git pull --rebase --autostash``git add -A``git commit``git push` in one shot. Sidesteps fast-forward rejections from cowork pushes (e.g. MajorAir pushing in parallel) and the empty-credentials issue with HTTPS. > On MajorRig, the `~/bin/wiki-commit "msg"` helper runs `git pull --rebase --autostash``git add -A``git commit``git push` in one shot. Sidesteps fast-forward rejections from cowork pushes (e.g. MajorAir pushing in parallel) and the empty-credentials issue with HTTPS.
@ -113,7 +113,7 @@ Every time a new article is added, the following **MUST** be updated to maintain
--- ---
## Related ## Related
- [[majorlab|majorlab]] — deploy host (port 8092, Caddy reverse proxy, Gitea webhook) - [[majorlab|majorlab]] — deploy host (port 8092, Caddy reverse proxy, Forgejo webhook)
- [[01-Phases|Implementation Phases]] — Phase 9 (wiki & knowledge base) - [[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) - [[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 - [[MajorAir|MajorAir]] — push host for git workflow

View file

@ -141,7 +141,7 @@ updated: 2026-04-30T05:21
- [Qwen2.5-14B OOM on RTX 3080 Ti (12GB)](05-troubleshooting/gpu-display/qwen-14b-oom-3080ti.md) — fixes and alternatives when hitting VRAM limits during fine-tuning - [Qwen2.5-14B OOM on RTX 3080 Ti (12GB)](05-troubleshooting/gpu-display/qwen-14b-oom-3080ti.md) — fixes and alternatives when hitting VRAM limits during fine-tuning
- [yt-dlp YouTube JS Challenge Fix on Fedora](05-troubleshooting/yt-dlp-fedora-js-challenge.md) — fixing YouTube JS challenge solver errors and missing formats on Fedora - [yt-dlp YouTube JS Challenge Fix on Fedora](05-troubleshooting/yt-dlp-fedora-js-challenge.md) — fixing YouTube JS challenge solver errors and missing formats on Fedora
- [Gemini CLI Manual Update](05-troubleshooting/gemini-cli-manual-update.md) — how to manually update the Gemini CLI when automatic updates fail - [Gemini CLI Manual Update](05-troubleshooting/gemini-cli-manual-update.md) — how to manually update the Gemini CLI when automatic updates fail
- [MajorWiki Setup & Pipeline](05-troubleshooting/majwiki-setup-and-pipeline.md) — setting up MajorWiki and the Obsidian → Gitea → MkDocs publishing pipeline - [MajorWiki Setup & Pipeline](05-troubleshooting/majwiki-setup-and-pipeline.md) — setting up MajorWiki and the Obsidian → Forgejo → MkDocs publishing pipeline
- [Gitea Actions Runner: Boot Race Condition Fix](05-troubleshooting/gitea-runner-boot-race-network-target.md) — fixing act_runner crash loop on boot caused by DNS not ready at startup - [Gitea Actions Runner: Boot Race Condition Fix](05-troubleshooting/gitea-runner-boot-race-network-target.md) — fixing act_runner crash loop on boot caused by DNS not ready at startup
- [Cron Heartbeat False Alarm: /var/run Cleared by Reboot](05-troubleshooting/cron-heartbeat-tmpfs-reboot-false-alarm.md) — why `/run` is tmpfs and how a reboot wipes cron heartbeat files, and where to put them instead - [Cron Heartbeat False Alarm: /var/run Cleared by Reboot](05-troubleshooting/cron-heartbeat-tmpfs-reboot-false-alarm.md) — why `/run` is tmpfs and how a reboot wipes cron heartbeat files, and where to put them instead
- [SELinux: Fixing Dovecot Mail Spool Context (/var/vmail)](05-troubleshooting/selinux-dovecot-vmail-context.md) — fixing thousands of AVC denials when /var/vmail has wrong SELinux context - [SELinux: Fixing Dovecot Mail Spool Context (/var/vmail)](05-troubleshooting/selinux-dovecot-vmail-context.md) — fixing thousands of AVC denials when /var/vmail has wrong SELinux context

View file

@ -15,7 +15,6 @@ updated: 2026-06-21T11:46
* [Growing an LVM Volume by Absorbing Another Disk](01-linux/storage/lvm-grow-volume-absorb-disk.md) * [Growing an LVM Volume by Absorbing Another Disk](01-linux/storage/lvm-grow-volume-absorb-disk.md)
* [Linux Distro Guide for Beginners](01-linux/distro-specific/linux-distro-guide-beginners.md) * [Linux Distro Guide for Beginners](01-linux/distro-specific/linux-distro-guide-beginners.md)
* [WSL2 Instance Migration to Fedora 43](01-linux/distro-specific/wsl2-instance-migration-fedora43.md) * [WSL2 Instance Migration to Fedora 43](01-linux/distro-specific/wsl2-instance-migration-fedora43.md)
* [WSL2 Training Environment Rebuild](01-linux/distro-specific/wsl2-rebuild-fedora43-training-env.md)
* [WSL2 Backup via PowerShell](01-linux/distro-specific/wsl2-backup-powershell.md) * [WSL2 Backup via PowerShell](01-linux/distro-specific/wsl2-backup-powershell.md)
* [WSL2 In-Place Upgrade to Fedora 44](01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md) * [WSL2 In-Place Upgrade to Fedora 44](01-linux/distro-specific/wsl2-fedora44-inplace-upgrade.md)
* [Self-Hosting & Homelab](02-selfhosting/index.md) * [Self-Hosting & Homelab](02-selfhosting/index.md)