docs: session handoff protocol for Chronicler #32

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
This commit is contained in:
Claude
2026-03-16 13:37:59 +00:00
parent 5a9adc7b37
commit 50b69aab0c

View File

@@ -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.*