troubleshooting: add Fail2ban IMAP self-ban article

Documents the 2026-03-14 incident where MajorAir's public IP was banned
by the postfix-sasl jail after repeated SASL auth failures, silently
blocking all IMAP connections from Spark Desktop.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 21:57:01 -04:00
parent 66fcca8028
commit 1d8be8669e
6 changed files with 319 additions and 66 deletions

View File

@@ -31,7 +31,7 @@ DNS record and Caddy entry have been removed.
## Content
- 23 articles across 5 domains
- 37 articles across 5 domains
- Source of truth: `MajorVault/20-Projects/MajorTwin/08-Wiki/`
- Deployed via Gitea webhook (push from MajorAir → auto-pull on majorlab)
@@ -60,3 +60,45 @@ rsync -av --include="*.md" --include="*/" --exclude="*" \
- **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-14*
## 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