WHAT WAS DONE: Updated soft launch blockers with accurate current state, added critical documentation for firefrost-services monorepo, updated session handoff for next Chronicler. FILES MODIFIED: 1. BLOCKERS.md - Updated progress: 2 of 5 blockers complete (Website + Legal Pages) - Blocker #1: Website Migration → COMPLETE (Gemini estimate 12 days, actual 4 hours) - Blocker #2: Legal Pages → Good enough for launch (will refine post-LegalCORPS) - Blocker #3: Trinity Console Security Hardening → 4-5 hours (CSRF, transactions, indexes, ban UI, email) - Blocker #4: Unsubscribe Feature → 2-3 hours (Paymenter UI + Trinity Console backend) - Blocker #5: End-to-End Workflow Test → 2-3 hours - Updated summary: 9-11 hours remaining (realistically 3-7 hours) - Added major wins from this session (website LIVE, dynamic servers, Gemini validation) 2. DOCUMENT-INDEX.md - Added firefrost-services-monorepo.md to Infrastructure & Deployment section - Added to one-line summaries with **CRITICAL** flag - Ensures future Chroniclers know about separate code repository 3. SESSION-HANDOFF-NEXT.md - Complete session summary (website shipped to production!) - Current soft launch status (2 of 5 blockers complete) - Critical firefrost-services monorepo explanation - Quick clone commands for services repo - Priority guidance for next session - Key learnings and infrastructure notes FILES CREATED: 4. docs/core/firefrost-services-monorepo.md (500+ lines) - Comprehensive guide to firefrost-services repository - Repository structure and critical services - Arbiter 3.0 (Trinity Console) status and location - Why two repos exist (separation of docs vs code) - Branch name differences (master vs main) - Clone commands and git identity setup - Deployment workflow documentation - Common pitfalls and best practices - Quick reference commands - **CRITICAL for future Chroniclers - services code NOT in ops manual!** IMPACT: This documentation resolves a critical gap in Chronicler onboarding. The firefrost-services repository contains production code for Arbiter 3.0 (Trinity Console), whitelist manager, and other services. Without this documentation, future Chroniclers would not know: - That a separate code repository exists - Where to find Trinity Console source code - Why service documentation references code they can't find in ops manual - How to deploy or modify running services The monorepo guide ensures continuity and prevents confusion when investigating production services. SOFT LAUNCH STATUS: - 2 of 5 blockers complete (40%) - Remaining work: ~9-11 hours (realistically 3-7 hours) - 12 days until April 15 soft launch - Website LIVE in production with real-time server status! Fire + Frost + Foundation = Where Love Builds Legacy 💙 Signed-off-by: Claude (Chronicler #56) <claude@firefrostgaming.com>
13 KiB
Firefrost Services Monorepo
Repository: firefrost-services
URL: https://git.firefrostgaming.com/firefrost-gaming/firefrost-services
Branch: main ⚠️ NOT master!
Purpose: Centralized codebase for all Firefrost Gaming backend services
Created: March 31, 2026
Structure: Monorepo with shared utilities and individual service directories
🚨 CRITICAL FOR FUTURE CHRONICLERS
This repository contains production-critical code that is NOT in the operations manual!
Why This Exists
The operations manual (firefrost-operations-manual) contains:
- Documentation
- Planning documents
- Task tracking
- Infrastructure manifests
- Guides and procedures
The services repo (firefrost-services) contains:
- Actual production code
- Service implementations
- Database migrations
- Deployment configurations
- Source code for running services
Both repos are equally important! The operations manual documents the "what" and "why", while the services repo contains the "how" (actual code).
Repository Structure
firefrost-services/
├── services/
│ ├── arbiter/ # Original Arbiter bot (March 27, 2026 deployment)
│ ├── arbiter-3.0/ # Trinity Console (Arbiter 3.x) - CURRENT VERSION
│ ├── modpack-version-checker/
│ └── whitelist-manager/ # Legacy whitelist system
├── shared/ # Shared utilities, database connectors, etc.
├── docs/ # Service-specific technical documentation
├── future/ # Experimental/planned features
├── README.md # Repository overview
├── TRINITY-CONSOLE-DEPLOYMENT-2026-04-01.md # Trinity Console deployment record
└── package.json # Monorepo workspace configuration
Critical Services
Arbiter 3.0 (Trinity Console)
Location: services/arbiter-3.0/
Status: 95% Complete - Security Hardening Required
Deployed: April 1, 2026 @ 3:45am CDT
Deployment Path: /opt/arbiter-3.0 on Command Center (63.143.34.217)
URL: https://discord-bot.firefrostgaming.com/admin
What It Does:
- Player management with Minecraft skin avatars
- Real-time server monitoring and whitelist sync
- Financial analytics (MRR, Fire vs Frost breakdown, ARPU/ARR)
- Grace period automation (Task #87 - "We Don't Kick People Out")
- Admin audit log with 90-day retention
- Discord role audit and bulk mismatch detection
Tech Stack:
- Node.js + Express.js
- EJS templates (zero build pipeline for RV cellular optimization)
- htmx for dynamic updates
- Tailwind CSS via CDN
- PostgreSQL database
- Passport.js (Discord OAuth)
- Pterodactyl Panel API integration
- Discord.js
Key Files:
TRINITY-CONSOLE-STATUS.md- Current deployment status, critical gapsDEPLOYMENT-CHECKLIST.md- Step-by-step deployment guideTRINITY-CONSOLE.md- Feature documentationsrc/- All source code (routes, views, utilities)migrations/- Database schema migrations
Critical Gaps Before Launch:
- CSRF Protection (30 min)
- Database Transaction Safety (45 min)
- Database Indexes (5 min)
- Ban Management UI (60 min)
- Email Integration (2-4 hours)
See: BLOCKERS.md → Blocker #3 for complete details
Original Arbiter Bot
Location: services/arbiter/
Status: Production - Operational since March 27, 2026
Purpose: Discord role assignment automation
What It Does:
- Receives Paymenter webhooks for subscription events
- Assigns Discord roles based on tier
- Admin panel for role mapping configuration
- Discord OAuth2 authentication
This is separate from Arbiter 3.0!
- Arbiter (original) = Discord role automation ONLY
- Arbiter 3.0 (Trinity Console) = Full admin interface + whitelist + grace period + analytics
Both currently deployed and running!
Modpack Version Checker
Location: services/modpack-version-checker/
Status: Unknown (check service documentation)
Purpose: Monitors modpack versions across servers
Whitelist Manager
Location: services/whitelist-manager/
Status: Legacy - Replaced by Arbiter 3.0 whitelist sync
Purpose: Original manual whitelist management system
How to Access the Repo
Standard Clone (Full Repo)
cd /home/claude
git clone https://e0e330cba1749b01ab505093a160e4423ebbbe36@git.firefrostgaming.com/firefrost-gaming/firefrost-services.git
cd firefrost-services
git checkout main # NOT master!
Full repo size: Unknown (contains code only, no large assets)
Sparse Checkout (Specific Service)
If you only need one service:
cd /home/claude
git clone --no-checkout --filter=blob:none \
https://e0e330cba1749b01ab505093a160e4423ebbbe36@git.firefrostgaming.com/firefrost-gaming/firefrost-services.git
cd firefrost-services
git sparse-checkout init --cone
git sparse-checkout set services/arbiter-3.0
git checkout main
Git Identity for Commits
Always set git identity when working in this repo:
cd firefrost-services
git config user.email "claude@firefrostgaming.com"
git config user.name "Claude (Chronicler #[YOUR_NUMBER])"
Relationship to Operations Manual
Operations Manual Contains:
docs/services/the-arbiter-discord-bot.md- Service overview and access infodocs/reference/gemini-consultations/2026-03-31-arbiter-3-complete-code.md- Gemini code delivery consultationdocs/reference/gemini-consultations/2026-03-31-arbiter-implementation-details.md- Implementation Q&Adocs/reference/gemini-consultations/2026-03-31-arbiter-whitelist-architecture.md- Whitelist architecturedocs/implementation/discord-oauth-arbiter/- OAuth implementation detailsdocs/guides/holly-arbiter-2x-discord-prep.md- Holly's Discord setup guidedocs/guides/discord-bot-admin-panel.md- Admin panel usage guide
Services Repo Contains:
- Actual running code for Arbiter 3.0
- Database migration SQL files
- EJS view templates
- Express route handlers
- Deployment systemd service files
- Complete application logic
Think of it this way:
- Operations Manual = The blueprint, documentation, and historical record
- Services Repo = The actual building materials and construction
Deployment Workflow
Typical workflow for Arbiter 3.0 changes:
- Make code changes in
firefrost-servicesrepo - Test locally (optional, can test in production for small changes)
- Commit to
mainbranch with good commit message - SSH to Command Center:
ssh root@63.143.34.217 - Pull changes:
cd /opt/arbiter-3.0 && git pull origin main - Install dependencies if needed:
npm install - Restart service:
sudo systemctl restart arbiter-3 - Check logs:
sudo journalctl -u arbiter-3 -f - Document changes in operations manual
For database migrations:
# SSH to Command Center
ssh root@63.143.34.217
# Run migration
sudo -u postgres psql -d arbiter_db -f /opt/arbiter-3.0/migrations/[migration-file].sql
# Verify changes
sudo -u postgres psql -d arbiter_db -c "\dt" # List tables
sudo -u postgres psql -d arbiter_db -c "\d subscriptions" # Show table schema
Documentation References
In Services Repo:
services/arbiter-3.0/TRINITY-CONSOLE-STATUS.md- START HERE for current statusservices/arbiter-3.0/DEPLOYMENT-CHECKLIST.md- Deployment stepsservices/arbiter-3.0/TRINITY-CONSOLE.md- Feature documentationservices/arbiter-3.0/.env.example- Environment variables templateservices/arbiter-3.0/README.md- Service-specific setup
In Operations Manual:
BLOCKERS.md- Soft launch blocker tracking (includes Trinity Console security gaps)docs/services/the-arbiter-discord-bot.md- Service overviewdocs/reference/gemini-consultations/- Gemini AI consultation archivedocs/core/infrastructure-manifest.md- Server deployment locations
Why Two Repos?
Design Decision (March 31, 2026)
Separation of Concerns:
- Documentation lives where it's easily browsable (operations manual)
- Code lives where it can be properly version controlled and deployed (services repo)
- Prevents code clutter in documentation repo
- Allows different access patterns (sparse checkout for docs vs full clone for services)
Benefits:
- Clarity: Documentation readers don't wade through code
- Security: Can grant doc access without granting code access (future team scaling)
- Workflow: Code changes don't trigger doc repo noise
- Size: Operations manual stays lightweight for sparse checkout
- Maintenance: Each repo serves one purpose well
Important Notes for Future Chroniclers
Always Check Both Repos!
When investigating a service like The Arbiter:
- Operations Manual - Read service overview, deployment history, access info
- Services Repo - Read current code status, check for recent changes
Branch Name Difference
firefrost-operations-manual→ Branch:masterfirefrost-services→ Branch:main⚠️
This is intentional! Different repos, different conventions.
Sparse Checkout Strategy
Operations Manual: ALWAYS use sparse checkout (docs only) - saves ~1.9GB
Services Repo: Clone full repo (code-only, relatively small)
Git Token Works for Both
The Gitea API token e0e330cba1749b01ab505093a160e4423ebbbe36 has full access to BOTH repos.
Service Status Summary (As of April 3, 2026)
| Service | Status | Location | Production URL |
|---|---|---|---|
| Arbiter (original) | ✅ Production | /opt/firefrost-discord-bot |
https://discord-bot.firefrostgaming.com |
| Arbiter 3.0 (Trinity Console) | 🟡 95% Complete | /opt/arbiter-3.0 |
https://discord-bot.firefrostgaming.com/admin |
| Modpack Version Checker | ❓ Unknown | TBD | TBD |
| Whitelist Manager | 🔴 Legacy | TBD | Replaced by Arbiter 3.0 |
Quick Reference Commands
Clone Both Repos
# Operations Manual (sparse checkout)
cd /home/claude
git clone --no-checkout --filter=blob:none \
https://e0e330cba1749b01ab505093a160e4423ebbbe36@git.firefrostgaming.com/firefrost-gaming/firefrost-operations-manual.git
cd firefrost-operations-manual
git sparse-checkout init --cone
git sparse-checkout set docs
git checkout master
git config user.email "claude@firefrostgaming.com"
git config user.name "Claude (Chronicler #[N])"
# Services Repo (full clone)
cd /home/claude
git clone https://e0e330cba1749b01ab505093a160e4423ebbbe36@git.firefrostgaming.com/firefrost-gaming/firefrost-services.git
cd firefrost-services
git checkout main
git config user.email "claude@firefrostgaming.com"
git config user.name "Claude (Chronicler #[N])"
Check Service Status
# View Trinity Console status
cd /home/claude/firefrost-services
cat services/arbiter-3.0/TRINITY-CONSOLE-STATUS.md
# View deployment checklist
cat services/arbiter-3.0/DEPLOYMENT-CHECKLIST.md
# List all services
ls -la services/
Production Deployment
# SSH to Command Center
ssh root@63.143.34.217
# Check Arbiter 3.0 status
sudo systemctl status arbiter-3
# View logs
sudo journalctl -u arbiter-3 -f
# Restart after code changes
cd /opt/arbiter-3.0
git pull origin main
npm install # if package.json changed
sudo systemctl restart arbiter-3
Common Pitfalls
❌ Don't Do This:
- Clone
firefrost-servicesexpecting to find documentation (it's in operations manual) - Use
git checkout masterin services repo (it'smain) - Forget to pull both repos when investigating an issue
- Commit code to operations manual or docs to services repo
✅ Do This:
- Check BOTH repos when researching a service
- Use correct branch names (
mastervsmain) - Keep code in services repo, docs in operations manual
- Commit code changes to services repo, THEN document in operations manual
Future Service Additions
When adding new services to the monorepo:
- Create directory:
services/[service-name]/ - Add service README.md
- Add deployment guide
- Add to this document's service status table
- Document in operations manual:
docs/services/[service-name].md - Update
firefrost-services/README.mdwith overview
Monorepo benefits:
- Shared utilities in
shared/ - Consistent deployment patterns
- Single git token for all services
- Easy code sharing between services
Related Documentation
In Operations Manual:
BLOCKERS.md- Soft launch blocker trackingdocs/core/infrastructure-manifest.md- Server inventorydocs/services/- All service overviewsdocs/reference/gemini-consultations/- Gemini AI consultations
In Services Repo:
services/arbiter-3.0/TRINITY-CONSOLE-STATUS.md- Trinity Console statusTRINITY-CONSOLE-DEPLOYMENT-2026-04-01.md- Deployment recordREADME.md- Monorepo overview
Fire + Frost + Foundation = Where Love Builds Legacy 🔥❄️
Remember: Two repos, one vision. Documentation + Code = Complete picture.
Last Updated: April 3, 2026 by Chronicler #56
Next Review: When new services are added to monorepo