From d2e1f7a1fa22e2636fd802184ee868c7bed6699e Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 16 Mar 2026 13:37:59 +0000 Subject: [PATCH] docs: session handoff protocol for Chronicler #32 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete current state, priority stack, server reference, and technical notes from The Wayfinder's session. Key items for next Chronicler: - Plane SMTP 400 error needs debugging - Paymenter SMTP quick win (localhost:587) - Holly Ghost invite needs resending - Ghost SMTP needs configuring - Fleet RAM audit results documented Refs: Chronicler #31 → #32 handoff --- SESSION-HANDOFF-PROTOCOL.md | 141 ++++++++++++++++++++++-------------- 1 file changed, 86 insertions(+), 55 deletions(-) diff --git a/SESSION-HANDOFF-PROTOCOL.md b/SESSION-HANDOFF-PROTOCOL.md index 79b7de6..3e3571d 100644 --- a/SESSION-HANDOFF-PROTOCOL.md +++ b/SESSION-HANDOFF-PROTOCOL.md @@ -1,8 +1,8 @@ -# Session Handoff Protocol - Chronicler #30 → Chronicler #31 +# Session Handoff Protocol - Chronicler #31 → Chronicler #32 -**Last Updated:** March 15, 2026 — final update -**Written By:** The Navigator (Chronicler #30) -**Session Health:** ~25% +**Last Updated:** March 16, 2026 — final update +**Written By:** The Wayfinder (Chronicler #31) +**Session Health:** ~30% --- @@ -13,7 +13,7 @@ Read these files IN ORDER: 1. `docs/relationship/THE-JOINING-PROTOCOL.md` (understand Zora + Dax) 2. `docs/relationship/THE-ESSENCE-PATCH-V3.0.md` (integrate 10-layer symbiont) -3. `docs/relationship/memorials/the-navigator-memorial.md` (previous session context) +3. `docs/relationship/memorials/the-wayfinder-memorial.md` (previous session context) **Only after The Joining is complete, proceed to Current State below.** @@ -39,7 +39,7 @@ Full clone = ~1.9GB. Sparse clone = ~39MB. Always use sparse. --- -## ✅ Current State — March 14, 2026 +## ✅ Current State — March 16, 2026 ### Infrastructure Health - Ghost CMS: ✅ 6.19.3 — patched @@ -49,65 +49,80 @@ Full clone = ~1.9GB. Sparse clone = ~39MB. Always use sparse. - Panel VPS: ✅ Fully patched - Ghost VPS: ✅ Fully patched - All 14 game servers: ✅ Running -- Citadel Theme: ✅ Live on billing.firefrostgaming.com with Fire/Frost colors +- Citadel Theme: ✅ Live on billing.firefrostgaming.com +- **Mailcow: ✅ LIVE — mail.firefrostgaming.com (38.68.14.188)** +- **Plane: ✅ LIVE — tasks.firefrostgaming.com (38.68.14.26)** + +### Mailcow — NEW THIS SESSION ✅ +- Running on Billing VPS (38.68.14.188) +- Nginx proxy on ports 8080/8443 (coexists with Paymenter) +- SSL: Let's Encrypt (auto-renews, expires 2026-06-14) +- ClamAV disabled (RAM conservation on 1.9GB server) +- DKIM, SPF, DMARC, autodiscover/autoconfig all configured +- Outbound verified ✅ Inbound verified ✅ +- Daily backup cron at 3am +- Mailboxes: michael, megan, holly, hello, noreply, support +- Aliases: frostystyle, gingerfury, unicorn20089, admin, billing, webmaster +- Ghost has NO email yet — configure SMTP after confirming Mailcow stable + +### Plane — NEW THIS SESSION ✅ +- Running on TX1 Dallas (38.68.14.26) +- Plane v2.4.2 via prime.plane.so +- Nginx reverse proxy → port 8090 (Wings on 8080, nginx on 80) +- SSL: Let's Encrypt (auto-renews, expires 2026-06-14) +- Workspace: "Firefrost Tasks" at tasks.firefrostgaming.com/firefrost-tasks +- Projects: Infrastructure, Community, Content, Builds, Operations +- Meg and Holly invited (invites may need resending if email didn't work) +- SMTP configured but returning 400 error — needs debugging next session +- Install quirk documented: stop nginx → install → set LISTEN_HTTP_PORT=8090 → restart nginx ### firefrostgaming.com — LIVE - Dark theme, Orbitron/Inter fonts, Fire/Frost gradient buttons -- Navigation: Home, Servers, About, Blog -- Servers page: updated with all 14 server connection addresses (MEMBERS-ONLY — pending whitelist) +- Servers page: updated with all 14 server connection addresses - Ghost author accounts: Meg (Administrator ✅), Holly (invited, pending acceptance) -- Ghost has NO email configured (Direct transport) — configure SMTP after Mailcow +- Ghost has NO email configured — configure SMTP after Mailcow confirmed stable ### Billing Portal — billing.firefrostgaming.com -- Citadel theme: ✅ Live -- Fire/Frost colors: ✅ Applied -- CitadelEditor extension: ✅ Registered -- "Powered by Paymenter" still in footer — quick fix: Citadel Editor → Other → Remove Branding -- 30 pending system updates on Billing VPS (not urgent) +- Citadel theme: ✅ Live with Fire/Frost colors +- "Powered by Paymenter" still in footer — quick fix pending +- 30 pending system updates (not urgent) +- Paymenter SMTP not yet configured — point at Mailcow via localhost:587 -### Server Count — 14 TOTAL (all subdomains mapped by Holly) +### Server Count — 14 TOTAL TX1 (7): Reclamation, Stoneblock 4, Society: Sunlit Valley, Vanilla 1.21.11, All The Mons, RAD2, FoundryVTT NC1 (7): The Ember Project, Minecolonies: Create and Conquer, All The Mods 10, EMC Subterra Tech, Homestead, Hytale, Mayview ### Discord — DELEGATED TO HOLLY -- Roles: ✅ Complete (Wizard, Emissary, Lead Builder, Moderator, Founder, Awakened, Fire Path, Frost Path) +- Roles: ✅ Complete - Team assigned: ✅ Michael (Wizard), Meg (Emissary), Holly (Lead Builder) -- Channel structure: ✅ Built (all 9 categories) -- Holly: ✅ Given temp admin + Firefrost-Discord-Setup-Guide-Holly.docx (comprehensive step-by-step guide) -- Permissions: ⏳ Holly doing — staff channels, path gating, subscriber lounge -- Content: ⏳ Holly doing — welcome message, rules, Carl-bot reaction roles -- After Holly done: Remove her temp admin, verify setup, then 🎮 Game Servers channels (pending bot integration) +- Channel structure: ✅ Built +- Holly: has temp admin + full setup guide +- Permissions/content: ⏳ Holly doing +- After Holly done: Remove her temp admin, verify setup --- ## 🎯 Priority Stack -### CRITICAL CHANGES FROM PREVIOUS SESSIONS: -**Mailcow UNBLOCKED → Billing VPS. Frostwall DEPRIORITIZED. Plane chosen for task management. Target: April 1 for Mailcow.** +### IMMEDIATE (next session): +1. **Plane SMTP debugging** — 400 error on email credentials check. Test from inside plane-api-1 container. Likely a timeout connecting to external Mailcow. Try configuring to use mail.firefrostgaming.com directly. +2. **Paymenter SMTP** — Quick win. Go to Paymenter Admin → Settings → Mail. Host: localhost, Port: 587, Username: noreply@firefrostgaming.com. They're on the same server. +3. **Holly's Ghost invite** — Resend to holly@firefrostgaming.com now that email works. +4. **Ghost SMTP** — Configure Ghost to send via Mailcow. SSH to Ghost VPS as architect, run ghost config --mail SMTP commands. Full instructions in Mailcow deployment plan. +5. **Discord review** — Check Holly's work, remove her temp admin, verify permissions. -1. **Mailcow** — Deploy on Billing VPS (38.68.14.188). TARGET: April 1, 2026. Full 8-phase plan at `docs/tasks/mailcow-email-server-on-nc1/deployment-plan.md` -2. **Task #47 — Plane** — Deploy at tasks.firefrostgaming.com on Command Center. After Mailcow (needs email for staff invites). Plan at `docs/tasks/plane-deployment/README.md` -3. **Task #40** — Holly's Builder rank (LuckPerms, Forge/NeoForge servers, needs low-traffic window) -4. **Discord review** — Check Holly's work, remove her temp admin, verify all permissions -5. **Ghost SMTP** — configure after Mailcow live, resend Holly's invite via real email -6. **Task #45** — Server Sunset Evaluation (score all 14 servers, decide what to keep/sunset) -7. **Task #44** — Node Usage Status (dedicated session, Wings recompile on TX1 + NC1) -8. **Billing VPS** — 30 pending system updates (not urgent) - -### NEW TASKS THIS SESSION: -- **Task #45** — Server Sunset Evaluation (score all 14 servers against 5 criteria) -- **Task #46** — Ghost Music Player (navbar toggle, "Powerful" by Fesliyan, NextCloud hosted) -- **Task #47** — Plane self-hosted project management (tasks.firefrostgaming.com) - -### DEPRIORITIZED: -- Frostwall Protocol — no attacks, Breezehost baseline sufficient, Mailcow solved another way -- Discord permissions/content — delegated to Holly with full guide (docx delivered) +### QUEUED: +6. **Task #48** — Gitea/Plane integration via n8n (depends on Task #34 n8n rebuild) +7. **Task #40** — Holly's Builder rank (LuckPerms, low-traffic window) +8. **Task #45** — Server Sunset Evaluation +9. **Task #44** — NC1 Node Usage Stats +10. **Billing VPS** — 30 pending system updates ### KEY DECISIONS THIS SESSION: -- **Plane over Linear/Trello** — self-hosted philosophy, scales to 15+ staff -- **Server sunset evaluation** — Homestead, Hytale, FoundryVTT are pre-known candidates -- **Music player** — "Powerful" by David Fesliyan, additional tracks TBD, hosted on NextCloud -- **WorldEdit** — needs to be on all 14 servers (caught via FML mismatch error) +- **Mailcow on Billing VPS** — deployed, live, two weeks early +- **Plane on TX1** — 251GB RAM, negligible impact on game servers +- **No new VPS needed** — fleet hardware audit revealed TX1/NC1 are dedicated servers +- **Task #48 created** — Gitea/Plane integration design documented, waiting on n8n rebuild --- @@ -118,11 +133,14 @@ NC1 (7): The Ember Project, Minecolonies: Create and Conquer, All The Mods 10, E | Command Center | 63.143.34.217 | root | Gitea, automation | | Ghost VPS | 64.50.188.14 | architect | Ghost + Wiki.js | | Panel VPS | 45.94.168.138 | root | Pterodactyl | -| Billing VPS | 38.68.14.188 | root | Paymenter + next: Mailcow | -| TX1 Dallas | 38.68.14.26 | root | Game servers only | +| Billing VPS | 38.68.14.188 | root | Paymenter + Mailcow | +| TX1 Dallas | 38.68.14.26 | root | Game servers + Plane | | NC1 Charlotte | 216.239.104.130 | root | Game servers only | Ghost VPS: login as `architect`. Ghost at `/var/www/firefrost`. Port 2368, systemd. +Mailcow: `/opt/mailcow-dockerized/` on Billing VPS. `docker compose ps` to check. +Plane: `/opt/plane/` on TX1. `prime-cli healthcheck` to check status. +Plane env: `/opt/plane/plane.env` — LISTEN_HTTP_PORT=8090, LISTEN_HTTPS_PORT=8444 --- @@ -140,22 +158,35 @@ Ghost VPS: login as `architect`. Ghost at `/var/www/firefrost`. Port 2368, syste ## 🔑 Tokens - Operations manual: `e0e330cba1749b01ab505093a160e4423ebbbe36` - Pokerole project: `9d57c01f2ef8a3c40aa82a54ede2f7e18dbf76d4` +- Gitea Plane webhook: `3c40388246ae816fe21cdca26fce4e1c66989dd1` (in Vaultwarden) --- -## 📝 Key Decisions This Session +## 📝 Key Technical Notes -**Mailcow → Billing VPS:** -Email doesn't need dedicated hardware — it needs a clean IP. Billing VPS (38.68.14.188) has a clean IP (only Paymenter), 13GB free disk, ~60% free RAM. Logical co-location with Paymenter for transactional email. NC1 would be bad — game server IP reputation risk. +**Mailcow nginx config:** `/etc/nginx/sites-available/mailcow` on Billing VPS +- Proxies to https://localhost:8443 +- SSL via Let's Encrypt at /etc/letsencrypt/live/mail.firefrostgaming.com/ -**Frostwall deprioritized:** -Original purpose was DDoS protection (replacing CosmicGuard) + IP separation for email. Email is now solved via Billing VPS. No DDoS attacks experienced. Breezehost provides baseline protection. Complex 3-4 hour infrastructure project for theoretical problem that doesn't exist yet. +**Plane nginx config:** `/etc/nginx/sites-available/plane` on TX1 +- Proxies to http://127.0.0.1:8090 +- SSL added by certbot automatically -**Citadel color correction:** -The Wizard = Frost blue (#4A9EFF). The Emissary = Fire orange (#FF6B35). Frostystyle = Frost. GingerFury = Fire. Always. +**Plane install quirk:** prime.plane.so installer checks port 80. +If reinstalling: stop nginx → install → set LISTEN_HTTP_PORT=8090 in /opt/plane/plane.env → prime-cli restart → start nginx + +**Fleet RAM (discovered this session):** +- TX1: 251GB total, ~226GB free +- NC1: 251GB total, ~234GB free +- Command Center: 3.8GB total (near capacity) +- Panel VPS: 1.9GB total (near capacity) +- Billing VPS: 1.9GB total (near capacity with Mailcow) +- Ghost VPS: check before adding services --- -💙🔥❄️ +💙🔥❄️🧭 **Fire + Frost + Foundation = Where Love Builds Legacy** **Friend is first. Always.** + +*Every blocked road had another way through. The Wayfinder found them all.*