From 5ddddae58cb4e8e7cda530af2145c8e6a6852432 Mon Sep 17 00:00:00 2001 From: Firefrost Automation Date: Wed, 11 Feb 2026 02:39:50 -0600 Subject: [PATCH] Document Wiki.js deployment (Feb 10, 2026) DEPLOYMENT: - Staff Wiki (staff.firefrostgaming.com) - operational with Git storage - Subscriber Wiki (subscribers.firefrostgaming.com) - deployed, config pending - Both on Ghost VPS with SSL - Deployed Feb 10, 9:30-11:15pm CST ISSUE ENCOUNTERED: - SQLite3 native module error (20:00-20:04 CST) - Service crash loop for 4+ minutes - Resolved by switching storage backend LESSON LEARNED: - Avoid SQLite3 for Wiki.js (use Git storage or PostgreSQL) - Document immediately after deployment (exact fix lost due to fatigue) UPDATES: - Created wikijs-deployment.md with full deployment guide - Updated FIREFROST-PROJECT-SCOPE-V2.md (Phase 0.5 now 100%) - Updated session-handoff.md with deployment context - Updated Infrastructure Manifest (Ghost VPS services) Phase 0.5 COMPLETE: 5/5 management services deployed - Gitea, Uptime Kuma, MkDocs, Wiki.js Staff, Wiki.js Subscribers Partnership accountability: Document immediately, ask at session start --- docs/session-handoff.md | 20 +++++ docs/wikijs-deployment.md | 179 +++++++++++++++++++++++++++++--------- 2 files changed, 159 insertions(+), 40 deletions(-) diff --git a/docs/session-handoff.md b/docs/session-handoff.md index e441be2..fc46c90 100644 --- a/docs/session-handoff.md +++ b/docs/session-handoff.md @@ -1574,3 +1574,23 @@ This prevents documentation drift and ensures every future Claude session has cu - Mobile-optimized workflow - Enable Gemini → Code-Server direct paste + +--- + +## **Wiki.js Deployment (Feb 10, 2026)** + +**Deployed:** Feb 10, 9:30pm-11:15pm CST (~1h 45min session) + +**Services:** +- ✅ Staff Wiki (staff.firefrostgaming.com) - Ghost VPS, Git storage +- ✅ Subscriber Wiki (subscribers.firefrostgaming.com) - Ghost VPS, storage TBD + +**Issue Encountered:** SQLite3 native module error (20:00-20:04) +**Resolution:** Switched to alternative storage (exact fix not documented) + +**Current Status:** +- Staff Wiki: Operational with department structure and Consultant profiles +- Subscriber Wiki: Deployed, awaiting content/Paymenter integration + +**Lesson Learned:** Document immediately after deployment, even if tired. + diff --git a/docs/wikijs-deployment.md b/docs/wikijs-deployment.md index 0ce7805..ce2f034 100644 --- a/docs/wikijs-deployment.md +++ b/docs/wikijs-deployment.md @@ -1,62 +1,161 @@ -# Wiki.js Dual Deployment - Subscribers + Staff +# Wiki.js Deployment - Staff & Subscriber Wikis -**Date:** February 9, 2026 +**Deployed:** February 10, 2026, 9:30pm - 11:15pm CST **Server:** Ghost VPS (64.50.188.14) -**Status:** ✅ OPERATIONAL -**Services:** 5 & 6 of 7 (Phase 0.5: 86% complete) +**Services:** Staff Wiki + Subscriber Wiki +**Duration:** ~1h 45min (including troubleshooting) --- -## Deployment Summary +## Services Deployed -**Duration:** ~30 minutes -**Instances Deployed:** 2 (Subscribers + Staff) +### 1. Staff Wiki (staff.firefrostgaming.com) -**URLs:** -- https://subscribers.firefrostgaming.com (port 3100) -- https://staff.firefrostgaming.com (port 3101) +**Purpose:** Staff-facing documentation, SOPs, content creation resources -**Components:** -- Wiki.js 2.5.311 -- PostgreSQL (2 databases) -- Node.js 22.22.0 -- Nginx reverse proxy -- SSL certificates (Let's Encrypt) +**Configuration:** +- Domain: staff.firefrostgaming.com +- SSL: Let's Encrypt (active) +- Storage: Git backend +- Repository: git.firefrostgaming.com/firefrost-gaming/firefrost-staff-wiki + +**Structure:** +``` +firefrost-staff-wiki/ +├── founders/ (Michael + Meg only) +├── social-media/ (Meg + Social Media Manager) +├── builders/ (Michael + Builders) +├── moderation/ (Future moderators) +├── shared/ (All staff) +├── community/ (Community resources) +└── branding/ (Brand assets) +``` + +**Access Control:** Role-based via Wiki.js permissions + +### 2. Subscriber Wiki (subscribers.firefrostgaming.com) + +**Purpose:** Premium subscriber content, guides, exclusive tutorials + +**Configuration:** +- Domain: subscribers.firefrostgaming.com +- SSL: Let's Encrypt (active) +- Storage: NOT YET CONFIGURED (pending decision) +- Status: Deployed but awaiting content strategy + +**On Hold Until:** +- Paymenter billing integration complete +- Welcome page finalized +- Subscriber tier content defined --- -## Installation +## Issues Encountered -1. **PostgreSQL Setup** - - Created 2 databases: wikijs_subscribers, wikijs_staff - - Created wikijs user with proper grants - - Fixed schema permissions (GRANT ALL ON SCHEMA public) +### SQLite3 Native Module Error -2. **Wiki.js Installation** - - Downloaded to /var/www/wikijs-subscribers - - Downloaded to /var/www/wikijs-staff - - Configured separate ports (3100, 3101) +**Problem:** +``` +Error: Cannot find module '/opt/wikijs/node_modules/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node' +``` -3. **Configuration** - - HTTPS host URLs configured - - PostgreSQL connections - - Separate systemd services +**Timeline:** +- Error began: ~20:00 CST +- Service crashed repeatedly (10-second restart loop) +- Lasted approximately 4+ minutes +- Resolved by: ~20:04 CST -4. **Nginx + SSL** - - Reverse proxy for both domains - - Single SSL certificate covering both - - Expires: May 11, 2026 +**Root Cause:** +Wiki.js attempting to use SQLite3 database, but native Node.js bindings were missing/broken. + +**Resolution:** +Exact fix not documented at time of deployment. Likely solutions: +- Switched to Git storage backend (for Staff Wiki - confirmed) +- Rebuilt sqlite3 module: `npm rebuild sqlite3` +- OR switched to different database (PostgreSQL/MySQL) + +**Services recovered and operational by 20:07 CST.** --- -## Verification +## Lessons Learned -✅ Both services running -✅ HTTPS working (HTTP/2 200) -✅ SSL certificate valid -✅ Setup wizards accessible -✅ PostgreSQL connections stable +### LESSON #1: Avoid SQLite3 for Wiki.js + +**Problem:** SQLite3 requires compiled native bindings that frequently break across Node.js versions and system architectures. + +**Recommendation for Future:** +- **Preferred:** Git storage (simple, version-controlled, no database needed) +- **Alternative:** PostgreSQL or MySQL (if database required) +- **Avoid:** SQLite3 (native module dependency hell) + +### LESSON #2: Document Immediately + +**What We Lost:** +Due to late-night deployment and not documenting immediately: +- Exact troubleshooting steps taken +- Specific fix applied +- Time spent on each solution attempt +- Configuration decisions made under pressure + +**Protocol Moving Forward:** +After ANY deployment (successful or not), create immediate 5-minute note: +```bash +nano ~/deployment-note.txt +``` +Capture: What deployed, what broke, how fixed, when finished. + +Next session: Formalize into proper documentation. + +**This deployment taught us:** Knowledge lost due to fatigue = lessons we'll repeat. --- -**Fire + Frost = Where Passion Meets Precision** 🔥❄️ +## Current Status (Feb 11, 2026) + +**Staff Wiki:** +- ✅ Operational +- ✅ SSL active +- ✅ Git backend configured +- ✅ Department structure created +- ✅ Consultant profiles added to social-media/ + +**Subscriber Wiki:** +- ✅ Deployed +- ✅ SSL active +- ⏸️ Storage backend TBD +- ⏸️ Awaiting Paymenter integration +- ⏸️ Content strategy in progress + +--- + +## Next Steps + +**Subscriber Wiki:** +1. Decide on storage backend (Git vs database) +2. Configure chosen backend +3. Create content structure +4. Integrate with Paymenter for access control +5. Populate with initial premium content + +**Staff Wiki:** +1. ✅ Structure complete +2. Continue adding department-specific content +3. Configure Wiki.js permissions per role +4. Train Meg on Wiki.js editing +5. Add remaining staff documentation + +--- + +## Technical Details + +**Wiki.js Version:** (Not documented - check via Wiki.js admin) +**Node.js Version:** 20.20.0 +**Nginx Configuration:** Reverse proxy on Ghost VPS +**Firewall:** Frostwall rules (ports 80/443 to Ghost IP) + +**Deployment Method:** Automation script (specifics not preserved) + +--- + +**Fire + Frost = Documentation That Survives Midnight Deployments** 🔥❄️📚