Session Feb 9 2026: Wiki.js deployment + Migration planning - Move management services from TX1 dedis to VPS tier. Discovered Command Center IPs not routed from internet. Created comprehensive migration plan with 3 options. Automation system migration included.

This commit is contained in:
2026-02-09 15:57:20 -06:00
parent 0898f4ba10
commit 997f1fa1a1
9 changed files with 2962 additions and 814 deletions

View File

@@ -0,0 +1,532 @@
#!/bin/bash
cd /root/firefrost-work/firefrost-operations-manual
# Document 1: Migration Master Plan
cat > docs/dedis-to-vps-migration-plan.md << 'PLAN'
# 🔥❄️ FIREFROST GAMING: DEDIS → VPS MIGRATION PLAN
**Created:** February 9, 2026
**Status:** Planning Phase
**Priority:** 🔴 Critical - Blocks Phase 0.5 Completion
---
## Executive Summary
**DECISION:** Move ALL management services from dedicated servers (TX1/NC1) back to VPS tier.
**REASON:** Dedicated servers have excessive networking complexity:
- Manual IP assignment required
- Routing issues from internet
- SSL certificate challenges
- VPS = plug-and-play, Dedis = DIY everything
**GOAL:** TX1 and NC1 become **game servers ONLY**. All management infrastructure on VPS tier where networking "just works."
---
## Current State (What We Built)
### On TX1 Dallas (Dedicated):
1. ✅ Gitea (git.firefrostgaming.com) - Port 3000, IP 74.63.218.202
2. ✅ Uptime Kuma (status.firefrostgaming.com) - Port 3001, IP 74.63.218.203
3. ✅ MkDocs (docs.firefrostgaming.com) - Port 8000, IP 74.63.218.204
4. ❌ Wiki.js (FAILED) - Port 3000 conflict, IP 74.63.218.205 not routable
### Issues Discovered:
- Command Center /29 block (74.63.218.201-206) not routed from internet
- Manual IP assignment required (doesn't survive reboot without netplan config)
- Port conflicts (Gitea on 3000, Wiki.js also wants 3000)
- Wiki.js crashing on startup (exit code 1)
- SSL certificates work but routing doesn't
---
## Target State (Where We're Going)
### VPS Allocation Strategy
**OPTION A: Spread Services Across Existing VPS (Recommended)**
| VPS | Current Use | Add Services | Reasoning |
|-----|-------------|--------------|-----------|
| **Panel** (45.94.168.138) | Pterodactyl Panel | - | Leave dedicated to Panel (performance) |
| **Command Center** (63.143.34.217) | Reserved for DDoS | Gitea + Uptime Kuma | Management hub (original purpose) |
| **Billing** (38.68.14.188) | Paymenter | - | Keep billing isolated |
| **Ghost** (64.50.188.14) | Ghost CMS | MkDocs + Wiki.js + NextCloud | Documentation cluster |
**OPTION B: Consolidate on Command Center (Alternative)**
| VPS | Services | Reasoning |
|-----|----------|-----------|
| **Command Center** (63.143.34.217) | Gitea + Uptime Kuma + MkDocs + Wiki.js + NextCloud | Single management hub |
| Others | Original purposes | Simpler, all management in one place |
**OPTION C: New VPS for Management (Cleanest)**
| Server | Purpose | Cost |
|--------|---------|------|
| **NEW: Management VPS** | All 5 Phase 0.5 services | ~$10-15/month |
| Existing VPS | Original purposes | No changes |
| TX1/NC1 | Game servers only | Simplified |
---
## Migration Phases
### Phase M1: Planning & Preparation (TODAY)
- ✅ Document current state
- ✅ Choose VPS allocation strategy
- ⏳ Create migration checklist
- ⏳ Plan DNS cutover strategy
- ⏳ Document rollback procedures
### Phase M2: Gitea Migration (Day 1)
**Target:** Command Center VPS (63.143.34.217)
**Steps:**
1. Backup Gitea data from TX1 (`/var/lib/gitea`)
2. Export Gitea database (SQLite dump)
3. Install Gitea on Command Center VPS
4. Restore data and database
5. Update DNS: git.firefrostgaming.com → 63.143.34.217
6. SSL certificate (easy on VPS - no routing issues)
7. Test and verify
8. Decommission TX1 Gitea
**Downtime:** ~10-15 minutes (DNS propagation)
### Phase M3: Uptime Kuma Migration (Day 1)
**Target:** Command Center VPS (63.143.34.217)
**Steps:**
1. Export Uptime Kuma config/monitors
2. Install on Command Center VPS
3. Import monitors
4. Update DNS: status.firefrostgaming.com → 63.143.34.217
5. SSL certificate
6. Reconfigure Discord webhook (if needed)
7. Test monitoring
8. Decommission TX1 Uptime Kuma
**Downtime:** ~5 minutes
### Phase M4: MkDocs Migration (Day 1-2)
**Target:** Ghost VPS (64.50.188.14) OR Command Center
**Steps:**
1. Copy MkDocs source files
2. Install MkDocs + Material theme
3. Configure build webhook
4. Update DNS: docs.firefrostgaming.com → [target VPS]
5. SSL certificate
6. Test site build
7. Decommission TX1 MkDocs
**Downtime:** ~5 minutes
### Phase M5: Wiki.js Fresh Deploy (Day 2)
**Target:** Ghost VPS (64.50.188.14) OR Command Center
**Steps:**
1. Fresh Wiki.js install (no migration needed - never worked)
2. Dual domain config: subscribers + staff
3. DNS: Both → [target VPS]
4. SSL certificates (single command, no routing issues)
5. Complete setup wizard
6. Configure Git sync with Gitea
**Downtime:** None (new service)
### Phase M6: NextCloud Deploy (Day 2-3)
**Target:** Ghost VPS (64.50.188.14) OR Command Center
**Steps:**
1. Install NextCloud
2. Configure storage for world downloads
3. DNS: downloads.firefrostgaming.com → [target VPS]
4. SSL certificate
5. Configure external storage (if needed)
6. Test upload/download
**Downtime:** None (new service)
---
## DNS Changes Required
**Before Migration:**
| Domain | Current IP | Type |
|--------|-----------|------|
| git.firefrostgaming.com | 38.68.14.26 (TX1) | A |
| status.firefrostgaming.com | 38.68.14.26 (TX1) | A |
| docs.firefrostgaming.com | 38.68.14.26 (TX1) | A |
**After Migration (Option A - Spread):**
| Domain | New IP | Type |
|--------|--------|------|
| git.firefrostgaming.com | 63.143.34.217 (Command Center) | A |
| status.firefrostgaming.com | 63.143.34.217 (Command Center) | A |
| docs.firefrostgaming.com | 64.50.188.14 (Ghost) | A |
| subscribers.firefrostgaming.com | 64.50.188.14 (Ghost) | A |
| staff.firefrostgaming.com | 64.50.188.14 (Ghost) | A |
| downloads.firefrostgaming.com | 64.50.188.14 (Ghost) | A |
**After Migration (Option B - Consolidate):**
| Domain | New IP | Type |
|--------|--------|------|
| All management services | 63.143.34.217 (Command Center) | A |
---
## Rollback Plan
**If migration fails:**
1. Services still running on TX1 (don't decommission until verified)
2. Revert DNS changes in Cloudflare (instant)
3. Old services continue working
4. Max downtime: DNS TTL (5 minutes)
**Safety net:**
- All TX1 services stay running during migration
- Only decommission after 24 hours of stable operation
- Keep backups of TX1 data for 7 days
---
## Benefits of Migration
### Technical Benefits:
- ✅ No manual IP assignment
- ✅ No routing issues
- ✅ SSL certificates "just work"
- ✅ Simpler networking (everything on standard ports)
- ✅ Faster deployments (no dedi complexity)
### Operational Benefits:
- ✅ TX1/NC1 dedicated to game servers (cleaner architecture)
- ✅ Management services isolated from game server load
- ✅ Easier troubleshooting (VPS networking predictable)
- ✅ Less hand strain for Michael (fewer manual operations)
### Psychological Benefits:
- ✅ No more fighting with dedi networking
- ✅ Services deploy in minutes, not hours
- ✅ Predictable, reliable infrastructure
- ✅ Focus on game servers, not infrastructure headaches
---
## Cost Analysis
**Current Setup:** $0 additional (using TX1 resources)
**Option A (Spread):** $0 additional (using existing VPS)
**Option B (Consolidate):** $0 additional (using Command Center)
**Option C (New VPS):** ~$10-15/month
- Pros: Cleanest separation, dedicated management server
- Cons: Additional cost
**Recommendation:** Option A or B (no additional cost)
---
## Timeline Estimate
**Conservative (Safe):**
- Day 1: Gitea + Uptime Kuma migration (3-4 hours)
- Day 2: MkDocs + Wiki.js deployment (2-3 hours)
- Day 3: NextCloud deployment (1-2 hours)
- **Total:** 3 days, 6-9 hours work
**Aggressive (If marathon session):**
- Day 1: All 5 services (6-8 hours)
- Day 2: Testing and verification
- **Total:** 1-2 days
---
## Risk Assessment
| Risk | Probability | Impact | Mitigation |
|------|------------|--------|------------|
| Data loss during migration | Low | High | Full backups before migration |
| DNS propagation delay | Medium | Low | Low TTL, staged cutover |
| SSL certificate issues | Low | Medium | VPS networking reliable |
| Port conflicts | Low | Low | Plan port allocation upfront |
| Service crashes | Low | Medium | Keep TX1 services running as backup |
---
## Decision Point
**MICHAEL: Which option do you prefer?**
**Option A:** Spread services (Command Center + Ghost)
- Gitea + Uptime Kuma on Command Center
- MkDocs + Wiki.js + NextCloud on Ghost
**Option B:** Consolidate all on Command Center
- All 5 services on one VPS
- Simpler management, single point
**Option C:** New dedicated management VPS
- Cleanest architecture
- ~$10-15/month additional cost
**My Recommendation:** Option A (spread)
- Balances load across existing VPS
- No additional cost
- Ghost VPS currently underutilized
---
**Fire + Frost = Where Passion Meets Precision** 🔥❄️
**Next Step:** Michael reviews and chooses option, then we execute migration plan.
PLAN
# Document 2: Migration Checklist
cat > docs/migration-checklist.md << 'CHECKLIST'
# Migration Execution Checklist
## Pre-Migration (Do Once)
- [ ] Choose VPS allocation option (A, B, or C)
- [ ] Verify all VPS accessible via SSH
- [ ] Create backup directory structure
- [ ] Set DNS TTL to 300 seconds (5 minutes) in Cloudflare
- [ ] Announce maintenance window in Discord
---
## Service 1: Gitea Migration
### Backup Phase
- [ ] Stop Gitea on TX1: `systemctl stop gitea`
- [ ] Backup Gitea data: `tar -czf gitea-backup.tar.gz /var/lib/gitea`
- [ ] Backup Gitea DB: `sqlite3 /var/lib/gitea/gitea.db .dump > gitea-dump.sql`
- [ ] Copy backups off TX1
### Deploy Phase
- [ ] Install Gitea on target VPS
- [ ] Restore data directory
- [ ] Restore database
- [ ] Update `app.ini` with new domain/IP
- [ ] Start Gitea service
- [ ] Test locally: `curl -I http://localhost:3000`
### DNS Cutover
- [ ] Update Cloudflare: git.firefrostgaming.com → [target VPS IP]
- [ ] Wait for propagation (5 min)
- [ ] Get SSL certificate: `certbot --nginx -d git.firefrostgaming.com`
- [ ] Test externally: Browse to https://git.firefrostgaming.com
### Verification
- [ ] Login works
- [ ] Repositories accessible
- [ ] Push/pull works
- [ ] Webhooks functional
### Cleanup
- [ ] Wait 24 hours
- [ ] Stop TX1 Gitea: `systemctl stop gitea`
- [ ] Disable TX1 Gitea: `systemctl disable gitea`
- [ ] Archive TX1 Gitea data
---
## Service 2: Uptime Kuma Migration
### Backup Phase
- [ ] Export monitors from Uptime Kuma web UI
- [ ] Backup data: `tar -czf kuma-backup.tar.gz /opt/uptime-kuma/data`
### Deploy Phase
- [ ] Install Uptime Kuma on target VPS
- [ ] Import monitors
- [ ] Configure Discord webhook
- [ ] Test monitoring
### DNS Cutover
- [ ] Update Cloudflare: status.firefrostgaming.com → [target VPS IP]
- [ ] Get SSL certificate
- [ ] Test externally
### Verification
- [ ] All monitors active
- [ ] Discord notifications working
- [ ] Status page accessible
---
## Service 3: MkDocs Migration
### Backup Phase
- [ ] Copy MkDocs source: `tar -czf mkdocs-source.tar.gz /var/www/docs`
### Deploy Phase
- [ ] Install MkDocs + Material theme
- [ ] Restore source files
- [ ] Configure nginx
- [ ] Build site: `mkdocs build`
### DNS Cutover
- [ ] Update Cloudflare: docs.firefrostgaming.com → [target VPS IP]
- [ ] Get SSL certificate
- [ ] Test externally
### Verification
- [ ] Site loads correctly
- [ ] Search works
- [ ] All pages accessible
---
## Service 4: Wiki.js Fresh Deploy
### Deploy Phase
- [ ] Install Node.js 18+
- [ ] Install Wiki.js 2.5.303
- [ ] Create dual Nginx configs (subscribers + staff)
- [ ] Configure Wiki.js
### DNS Cutover
- [ ] Update Cloudflare: subscribers.firefrostgaming.com → [target VPS IP]
- [ ] Update Cloudflare: staff.firefrostgaming.com → [target VPS IP]
- [ ] Get SSL certificates (single command for both domains)
- [ ] Test externally
### Setup
- [ ] Complete setup wizard
- [ ] Create admin account
- [ ] Configure groups (Subscribers, Staff, Admin)
- [ ] Set up Git sync with Gitea
---
## Service 5: NextCloud Deploy
### Deploy Phase
- [ ] Install NextCloud
- [ ] Configure database
- [ ] Set up storage directory
- [ ] Configure nginx
### DNS Cutover
- [ ] Update Cloudflare: downloads.firefrostgaming.com → [target VPS IP]
- [ ] Get SSL certificate
- [ ] Test externally
### Setup
- [ ] Create admin account
- [ ] Configure external storage (if needed)
- [ ] Test upload/download
- [ ] Set up retention policy (30-day for non-premium, 90-day for premium)
---
## Post-Migration
- [ ] All services responding on new IPs
- [ ] SSL certificates auto-renewing
- [ ] Monitoring confirms 100% uptime
- [ ] Discord announcement: Migration complete
- [ ] Wait 24-48 hours before TX1 cleanup
- [ ] Update all documentation with new IPs
- [ ] Remove Command Center IPs from TX1 interface
- [ ] Document lessons learned
---
**Total Estimated Time:** 6-9 hours (spread across 1-3 days)
CHECKLIST
# Document 3: Rollback Procedures
cat > docs/migration-rollback-plan.md << 'ROLLBACK'
# Migration Rollback Plan
## If Things Go Wrong
### Immediate Rollback (During Migration)
**If service fails on new VPS:**
1. DO NOT stop TX1 service
2. Revert DNS in Cloudflare (instant)
3. TX1 service continues working
4. Debug VPS issue offline
**Maximum Downtime:** DNS TTL (5 minutes)
---
## Service-Specific Rollback
### Gitea Rollback
```bash
# On Cloudflare
git.firefrostgaming.com A record → 38.68.14.26 (TX1)
# On TX1
systemctl start gitea
```
### Uptime Kuma Rollback
```bash
# On Cloudflare
status.firefrostgaming.com A record → 38.68.14.26 (TX1)
# On TX1
systemctl start uptime-kuma
```
### MkDocs Rollback
```bash
# On Cloudflare
docs.firefrostgaming.com A record → 38.68.14.26 (TX1)
# On TX1
systemctl start mkdocs
```
---
## Data Recovery
### If Backup Needed
All backups stored in `/root/migration-backups/` on TX1:
- `gitea-backup.tar.gz` + `gitea-dump.sql`
- `kuma-backup.tar.gz`
- `mkdocs-source.tar.gz`
**Retention:** 7 days after successful migration
---
## Lessons Learned Log
**What went wrong:**
-
**Root cause:**
-
**How we fixed it:**
-
**How to prevent next time:**
-
---
**Remember:** Don't panic. TX1 services are still running. DNS changes are instant.
ROLLBACK
# Commit all documents
git add docs/dedis-to-vps-migration-plan.md docs/migration-checklist.md docs/migration-rollback-plan.md
git commit -m "Migration Plan: Move management services from TX1/NC1 dedis to VPS tier"
git push
echo "Migration planning documents created successfully!"

View File

@@ -26,3 +26,57 @@
[2026-02-09 11:10:49] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 11:12:11] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 11:46:51] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 12:15:15] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 12:18:09] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 12:18:30] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 12:24:36] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 12:28:20] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 12:58:56] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:15:31] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:16:18] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:17:10] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:18:03] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:18:55] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:19:48] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:20:40] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:21:33] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:22:25] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:23:18] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:24:10] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:25:02] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:25:55] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:26:47] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:27:40] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:28:32] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:29:25] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:30:17] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:31:09] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:32:02] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:32:54] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:33:47] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:34:39] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:35:32] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:36:24] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:37:17] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:38:09] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:39:02] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:39:54] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:40:47] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:41:39] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:42:32] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:43:24] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:44:17] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:45:09] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:46:02] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:46:54] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:47:47] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:48:39] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:49:31] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:50:24] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:51:16] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:52:09] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:53:01] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:53:54] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:54:46] DAEMON: Found 1 task(s) in queue - executing...
[2026-02-09 15:55:39] DAEMON: Found 2 task(s) in queue - executing...
[2026-02-09 15:56:31] DAEMON: Found 1 task(s) in queue - executing...

View File

@@ -134,3 +134,260 @@
[2026-02-09 11:46:51] ==========================================
[2026-02-09 11:46:51] Executing task: consolidate-documentation.sh
[2026-02-09 11:46:51] ==========================================
[2026-02-09 11:46:52] Task consolidate-documentation.sh completed (exit code: 0)
[2026-02-09 11:46:52] Committing results to Git...
[2026-02-09 11:46:52] Executor run complete
[2026-02-09 12:15:15] Pulling latest from Git...
[2026-02-09 12:15:15] ==========================================
[2026-02-09 12:15:15] Executing task: add-phase1-ddos-scope.sh
[2026-02-09 12:15:15] ==========================================
[2026-02-09 12:15:16] Task add-phase1-ddos-scope.sh completed (exit code: 0)
[2026-02-09 12:15:16] Committing results to Git...
[2026-02-09 12:15:16] Executor run complete
[2026-02-09 12:18:09] Pulling latest from Git...
[2026-02-09 12:18:09] ==========================================
[2026-02-09 12:18:09] Executing task: add-documentation-principle.sh
[2026-02-09 12:18:09] ==========================================
[2026-02-09 12:18:09] Task add-documentation-principle.sh completed (exit code: 0)
[2026-02-09 12:18:09] Committing results to Git...
[2026-02-09 12:18:10] Executor run complete
[2026-02-09 12:18:30] Pulling latest from Git...
[2026-02-09 12:18:30] ==========================================
[2026-02-09 12:18:30] Executing task: add-documentation-principle.sh
[2026-02-09 12:18:30] ==========================================
[2026-02-09 12:18:31] Task add-documentation-principle.sh completed (exit code: 0)
[2026-02-09 12:18:31] Committing results to Git...
[2026-02-09 12:18:31] Executor run complete
[2026-02-09 12:24:36] Pulling latest from Git...
[2026-02-09 12:24:36] ==========================================
[2026-02-09 12:24:36] Executing task: add-project-file-reminder.sh
[2026-02-09 12:24:36] ==========================================
[2026-02-09 12:24:37] Task add-project-file-reminder.sh completed (exit code: 0)
[2026-02-09 12:24:37] Committing results to Git...
[2026-02-09 12:24:37] Executor run complete
[2026-02-09 12:28:20] Pulling latest from Git...
[2026-02-09 12:28:21] ==========================================
[2026-02-09 12:28:21] Executing task: create-session-journal-feb9.sh
[2026-02-09 12:28:21] ==========================================
[2026-02-09 12:28:21] Task create-session-journal-feb9.sh completed (exit code: 0)
[2026-02-09 12:28:21] Committing results to Git...
[2026-02-09 12:28:22] Executor run complete
[2026-02-09 12:58:56] Pulling latest from Git...
[2026-02-09 12:58:56] ==========================================
[2026-02-09 12:58:56] Executing task: fix-docs-gaps.sh
[2026-02-09 12:58:56] ==========================================
[2026-02-09 12:58:57] Task fix-docs-gaps.sh completed (exit code: 0)
[2026-02-09 12:58:57] Committing results to Git...
[2026-02-09 12:58:58] Executor run complete
[2026-02-09 15:15:31] Pulling latest from Git...
[2026-02-09 15:15:31] ==========================================
[2026-02-09 15:15:31] Executing task: deploy-wikijs.sh
[2026-02-09 15:15:31] ==========================================
[2026-02-09 15:16:18] Pulling latest from Git...
[2026-02-09 15:16:18] ==========================================
[2026-02-09 15:16:18] Executing task: deploy-wikijs.sh
[2026-02-09 15:16:18] ==========================================
[2026-02-09 15:17:10] Pulling latest from Git...
[2026-02-09 15:17:10] ==========================================
[2026-02-09 15:17:10] Executing task: deploy-wikijs.sh
[2026-02-09 15:17:10] ==========================================
[2026-02-09 15:18:03] Pulling latest from Git...
[2026-02-09 15:18:03] ==========================================
[2026-02-09 15:18:03] Executing task: deploy-wikijs.sh
[2026-02-09 15:18:03] ==========================================
[2026-02-09 15:18:55] Pulling latest from Git...
[2026-02-09 15:18:55] ==========================================
[2026-02-09 15:18:55] Executing task: deploy-wikijs.sh
[2026-02-09 15:18:55] ==========================================
[2026-02-09 15:19:48] Pulling latest from Git...
[2026-02-09 15:19:48] ==========================================
[2026-02-09 15:19:48] Executing task: deploy-wikijs.sh
[2026-02-09 15:19:48] ==========================================
[2026-02-09 15:20:40] Pulling latest from Git...
[2026-02-09 15:20:40] ==========================================
[2026-02-09 15:20:40] Executing task: deploy-wikijs.sh
[2026-02-09 15:20:40] ==========================================
[2026-02-09 15:21:33] Pulling latest from Git...
[2026-02-09 15:21:33] ==========================================
[2026-02-09 15:21:33] Executing task: deploy-wikijs.sh
[2026-02-09 15:21:33] ==========================================
[2026-02-09 15:22:25] Pulling latest from Git...
[2026-02-09 15:22:25] ==========================================
[2026-02-09 15:22:25] Executing task: deploy-wikijs.sh
[2026-02-09 15:22:25] ==========================================
[2026-02-09 15:23:18] Pulling latest from Git...
[2026-02-09 15:23:18] ==========================================
[2026-02-09 15:23:18] Executing task: deploy-wikijs.sh
[2026-02-09 15:23:18] ==========================================
[2026-02-09 15:24:10] Pulling latest from Git...
[2026-02-09 15:24:10] ==========================================
[2026-02-09 15:24:10] Executing task: deploy-wikijs.sh
[2026-02-09 15:24:10] ==========================================
[2026-02-09 15:25:02] Pulling latest from Git...
[2026-02-09 15:25:02] ==========================================
[2026-02-09 15:25:02] Executing task: deploy-wikijs.sh
[2026-02-09 15:25:02] ==========================================
[2026-02-09 15:25:55] Pulling latest from Git...
[2026-02-09 15:25:55] ==========================================
[2026-02-09 15:25:55] Executing task: deploy-wikijs.sh
[2026-02-09 15:25:55] ==========================================
[2026-02-09 15:26:47] Pulling latest from Git...
[2026-02-09 15:26:47] WARNING: Git pull failed, continuing with local
[2026-02-09 15:26:47] ==========================================
[2026-02-09 15:26:47] Executing task: deploy-wikijs.sh
[2026-02-09 15:26:47] ==========================================
[2026-02-09 15:27:40] Pulling latest from Git...
[2026-02-09 15:27:40] WARNING: Git pull failed, continuing with local
[2026-02-09 15:27:40] ==========================================
[2026-02-09 15:27:40] Executing task: deploy-wikijs.sh
[2026-02-09 15:27:40] ==========================================
[2026-02-09 15:28:32] Pulling latest from Git...
[2026-02-09 15:28:32] WARNING: Git pull failed, continuing with local
[2026-02-09 15:28:32] ==========================================
[2026-02-09 15:28:32] Executing task: deploy-wikijs.sh
[2026-02-09 15:28:32] ==========================================
[2026-02-09 15:29:25] Pulling latest from Git...
[2026-02-09 15:29:25] WARNING: Git pull failed, continuing with local
[2026-02-09 15:29:25] ==========================================
[2026-02-09 15:29:25] Executing task: deploy-wikijs.sh
[2026-02-09 15:29:25] ==========================================
[2026-02-09 15:30:17] Pulling latest from Git...
[2026-02-09 15:30:17] WARNING: Git pull failed, continuing with local
[2026-02-09 15:30:17] ==========================================
[2026-02-09 15:30:17] Executing task: deploy-wikijs.sh
[2026-02-09 15:30:17] ==========================================
[2026-02-09 15:31:09] Pulling latest from Git...
[2026-02-09 15:31:09] WARNING: Git pull failed, continuing with local
[2026-02-09 15:31:09] ==========================================
[2026-02-09 15:31:09] Executing task: deploy-wikijs.sh
[2026-02-09 15:31:09] ==========================================
[2026-02-09 15:32:02] Pulling latest from Git...
[2026-02-09 15:32:02] WARNING: Git pull failed, continuing with local
[2026-02-09 15:32:02] ==========================================
[2026-02-09 15:32:02] Executing task: deploy-wikijs.sh
[2026-02-09 15:32:02] ==========================================
[2026-02-09 15:32:54] Pulling latest from Git...
[2026-02-09 15:32:54] WARNING: Git pull failed, continuing with local
[2026-02-09 15:32:54] ==========================================
[2026-02-09 15:32:54] Executing task: deploy-wikijs.sh
[2026-02-09 15:32:54] ==========================================
[2026-02-09 15:33:47] Pulling latest from Git...
[2026-02-09 15:33:47] WARNING: Git pull failed, continuing with local
[2026-02-09 15:33:47] ==========================================
[2026-02-09 15:33:47] Executing task: deploy-wikijs.sh
[2026-02-09 15:33:47] ==========================================
[2026-02-09 15:34:39] Pulling latest from Git...
[2026-02-09 15:34:39] WARNING: Git pull failed, continuing with local
[2026-02-09 15:34:39] ==========================================
[2026-02-09 15:34:39] Executing task: deploy-wikijs.sh
[2026-02-09 15:34:39] ==========================================
[2026-02-09 15:35:32] Pulling latest from Git...
[2026-02-09 15:35:32] WARNING: Git pull failed, continuing with local
[2026-02-09 15:35:32] ==========================================
[2026-02-09 15:35:32] Executing task: deploy-wikijs.sh
[2026-02-09 15:35:32] ==========================================
[2026-02-09 15:36:24] Pulling latest from Git...
[2026-02-09 15:36:24] WARNING: Git pull failed, continuing with local
[2026-02-09 15:36:24] ==========================================
[2026-02-09 15:36:24] Executing task: deploy-wikijs.sh
[2026-02-09 15:36:24] ==========================================
[2026-02-09 15:37:17] Pulling latest from Git...
[2026-02-09 15:37:17] WARNING: Git pull failed, continuing with local
[2026-02-09 15:37:17] ==========================================
[2026-02-09 15:37:17] Executing task: deploy-wikijs.sh
[2026-02-09 15:37:17] ==========================================
[2026-02-09 15:38:09] Pulling latest from Git...
[2026-02-09 15:38:09] WARNING: Git pull failed, continuing with local
[2026-02-09 15:38:09] ==========================================
[2026-02-09 15:38:09] Executing task: deploy-wikijs.sh
[2026-02-09 15:38:09] ==========================================
[2026-02-09 15:39:02] Pulling latest from Git...
[2026-02-09 15:39:02] WARNING: Git pull failed, continuing with local
[2026-02-09 15:39:02] ==========================================
[2026-02-09 15:39:02] Executing task: deploy-wikijs.sh
[2026-02-09 15:39:02] ==========================================
[2026-02-09 15:39:54] Pulling latest from Git...
[2026-02-09 15:39:54] WARNING: Git pull failed, continuing with local
[2026-02-09 15:39:54] ==========================================
[2026-02-09 15:39:54] Executing task: deploy-wikijs.sh
[2026-02-09 15:39:54] ==========================================
[2026-02-09 15:40:47] Pulling latest from Git...
[2026-02-09 15:40:47] ==========================================
[2026-02-09 15:40:47] Executing task: deploy-wikijs.sh
[2026-02-09 15:40:47] ==========================================
[2026-02-09 15:41:39] Pulling latest from Git...
[2026-02-09 15:41:39] ==========================================
[2026-02-09 15:41:39] Executing task: deploy-wikijs.sh
[2026-02-09 15:41:39] ==========================================
[2026-02-09 15:42:32] Pulling latest from Git...
[2026-02-09 15:42:32] ==========================================
[2026-02-09 15:42:32] Executing task: deploy-wikijs.sh
[2026-02-09 15:42:32] ==========================================
[2026-02-09 15:43:24] Pulling latest from Git...
[2026-02-09 15:43:24] ==========================================
[2026-02-09 15:43:24] Executing task: deploy-wikijs.sh
[2026-02-09 15:43:24] ==========================================
[2026-02-09 15:44:17] Pulling latest from Git...
[2026-02-09 15:44:17] ==========================================
[2026-02-09 15:44:17] Executing task: deploy-wikijs.sh
[2026-02-09 15:44:17] ==========================================
[2026-02-09 15:45:09] Pulling latest from Git...
[2026-02-09 15:45:09] ==========================================
[2026-02-09 15:45:09] Executing task: deploy-wikijs.sh
[2026-02-09 15:45:09] ==========================================
[2026-02-09 15:46:02] Pulling latest from Git...
[2026-02-09 15:46:02] ==========================================
[2026-02-09 15:46:02] Executing task: deploy-wikijs.sh
[2026-02-09 15:46:02] ==========================================
[2026-02-09 15:46:54] Pulling latest from Git...
[2026-02-09 15:46:54] ==========================================
[2026-02-09 15:46:54] Executing task: deploy-wikijs.sh
[2026-02-09 15:46:54] ==========================================
[2026-02-09 15:47:47] Pulling latest from Git...
[2026-02-09 15:47:47] ==========================================
[2026-02-09 15:47:47] Executing task: deploy-wikijs.sh
[2026-02-09 15:47:47] ==========================================
[2026-02-09 15:48:39] Pulling latest from Git...
[2026-02-09 15:48:39] ==========================================
[2026-02-09 15:48:39] Executing task: deploy-wikijs.sh
[2026-02-09 15:48:39] ==========================================
[2026-02-09 15:49:31] Pulling latest from Git...
[2026-02-09 15:49:31] ==========================================
[2026-02-09 15:49:31] Executing task: deploy-wikijs.sh
[2026-02-09 15:49:31] ==========================================
[2026-02-09 15:50:24] Pulling latest from Git...
[2026-02-09 15:50:24] ==========================================
[2026-02-09 15:50:24] Executing task: deploy-wikijs.sh
[2026-02-09 15:50:24] ==========================================
[2026-02-09 15:51:16] Pulling latest from Git...
[2026-02-09 15:51:16] ==========================================
[2026-02-09 15:51:16] Executing task: deploy-wikijs.sh
[2026-02-09 15:51:16] ==========================================
[2026-02-09 15:52:09] Pulling latest from Git...
[2026-02-09 15:52:09] ==========================================
[2026-02-09 15:52:09] Executing task: deploy-wikijs.sh
[2026-02-09 15:52:09] ==========================================
[2026-02-09 15:53:01] Pulling latest from Git...
[2026-02-09 15:53:01] ==========================================
[2026-02-09 15:53:01] Executing task: deploy-wikijs.sh
[2026-02-09 15:53:01] ==========================================
[2026-02-09 15:53:54] Pulling latest from Git...
[2026-02-09 15:53:54] ==========================================
[2026-02-09 15:53:54] Executing task: deploy-wikijs.sh
[2026-02-09 15:53:54] ==========================================
[2026-02-09 15:54:46] Pulling latest from Git...
[2026-02-09 15:54:46] ==========================================
[2026-02-09 15:54:46] Executing task: deploy-wikijs.sh
[2026-02-09 15:54:46] ==========================================
[2026-02-09 15:55:39] Pulling latest from Git...
[2026-02-09 15:55:39] ==========================================
[2026-02-09 15:55:39] Executing task: create-migration-plan.sh
[2026-02-09 15:55:39] ==========================================
[2026-02-09 15:55:39] Task create-migration-plan.sh completed (exit code: 0)
[2026-02-09 15:55:39] ==========================================
[2026-02-09 15:55:39] Executing task: deploy-wikijs.sh
[2026-02-09 15:55:39] ==========================================
[2026-02-09 15:56:31] Pulling latest from Git...
[2026-02-09 15:56:31] ==========================================
[2026-02-09 15:56:31] Executing task: deploy-wikijs.sh
[2026-02-09 15:56:31] ==========================================

View File

@@ -0,0 +1,142 @@
#!/bin/bash
cd /root/firefrost-work/firefrost-operations-manual
# Add automation system section to migration plan
cat >> docs/dedis-to-vps-migration-plan.md << 'AUTOPLAN'
---
## CRITICAL: Automation System Migration
**OVERSIGHT IDENTIFIED:** The Firefrost Automation System currently runs on TX1!
### Current Automation Setup
- **Location:** `/root/firefrost-work/firefrost-operations-manual/automation/`
- **Daemon:** Running on TX1 (PID management)
- **Function:** Polls Git repo, executes tasks, commits results
- **Usage:** 95% reduction in manual operations
### Migration Decision Required
**Option 1: Keep Automation on TX1**
- Pros: Already working, no changes needed
- Cons: Requires TX1 SSH access for management work
- Use case: If TX1 remains partially management server
**Option 2: Move Automation to Command Center VPS**
- Pros: All management tools in one place
- Cons: Need to set up SSH keys, test thoroughly
- Use case: If going full VPS for management
**Option 3: Run Automation on BOTH**
- Pros: Redundancy, can manage either server
- Cons: Complexity, two daemons to monitor
- Use case: Hybrid approach
**Option 4: Eliminate Need for Automation on Dedis**
- Pros: VPS deployments are simpler (no dedi complexity)
- Cons: Lose automation benefits
- Reality check: VPS might not need automation as much
### Recommendation: Option 2 (Move to Command Center)
**Reasoning:**
- All management work happens on VPS tier
- Automation system designed for management services
- Keep TX1/NC1 as "appliances" (game servers only)
- Single management hub = cleaner architecture
### Automation Migration Steps
1. **Clone repo to Command Center VPS:**
```bash
cd /root
git clone https://git.firefrostgaming.com/firefrost-gaming/firefrost-operations-manual.git firefrost-work/firefrost-operations-manual
```
2. **Set up Git authentication:**
```bash
# SSH key or HTTPS token
git config --global user.name "Firefrost Automation"
git config --global user.email "automation@firefrostgaming.com"
```
3. **Start daemon on Command Center:**
```bash
cd ~/firefrost-work/firefrost-operations-manual
nohup bash automation/automation-daemon.sh > /dev/null 2>&1 &
echo "Daemon PID: $!"
```
4. **Test task execution:**
- Queue test task
- Verify execution
- Check Git commit
5. **Stop TX1 daemon:**
```bash
# On TX1
ps aux | grep automation-daemon
kill [PID]
```
6. **Update documentation:**
- USAGE.md updated with new location
- Session handoff updated
### Timeline
**When to migrate automation:**
- **After** Gitea migration (needs working Git repo)
- **Before** other services (to use automation for migrations)
- **Estimated time:** 30 minutes
### Automation in Migration Workflow
**Use automation for:**
- ✅ Backing up services
- ✅ Deploying to VPS
- ✅ Testing configurations
- ✅ Committing migration logs
**Don't use automation for:**
- ❌ Initial Git clone (chicken-egg problem)
- ❌ DNS changes (manual in Cloudflare)
- ❌ Critical rollbacks (need manual control)
---
## Updated Migration Phase Order
### Phase M0: Automation System Migration (NEW - FIRST!)
**Target:** Command Center VPS
**Duration:** 30 minutes
**Prerequisite:** Gitea migrated first
**Steps:**
1. Migrate Gitea to Command Center (Service 1)
2. Clone repo on Command Center
3. Configure Git authentication
4. Start automation daemon
5. Test with simple task
6. Stop TX1 daemon
7. Update documentation
**Why first:** Enables automation for remaining migrations!
### Phase M1-M6: Continue as planned
(All other services use automation system on Command Center)
---
**CRITICAL NOTE:** This is why good planning matters! Almost missed a key component.
**Fire + Frost = Where Passion Meets Precision** 🔥❄️
AUTOPLAN
# Commit update
git add docs/dedis-to-vps-migration-plan.md
git commit -m "Migration Plan: Added automation system migration (Phase M0)"
git push
echo "Automation migration section added!"

View File

@@ -1,814 +0,0 @@
#!/bin/bash
# Consolidate and reorganize Firefrost documentation
set -e
cd ~/firefrost-work/firefrost-operations-manual
echo "=== Documentation Consolidation - February 9, 2026 ==="
date
# Create archive directory
mkdir -p docs/archive/2026-02-09-consolidation
# Move historical/superseded documents to archive
echo "Moving outdated documents to archive..."
# Historical session summaries
mv docs/session-summary-feb8-2026.md docs/archive/2026-02-09-consolidation/
mv docs/session-summary-gitea.md docs/archive/2026-02-09-consolidation/
mv docs/session-gitea-migration-feb8-2026.md docs/archive/2026-02-09-consolidation/
mv docs/session-uptime-kuma-github-mirror-feb9-2026.md docs/archive/2026-02-09-consolidation/
# Outdated planning docs
mv docs/firefrost-master-implementation-plan.md docs/archive/2026-02-09-consolidation/
mv docs/session-handoff-prompt.md docs/archive/2026-02-09-consolidation/
mv docs/TASKS.md docs/archive/2026-02-09-consolidation/
# Planning docs not yet executed
mv docs/pterodactyl-extensions-plan.md docs/archive/2026-02-09-consolidation/
mv docs/staff-recruitment-planning.md docs/archive/2026-02-09-consolidation/
mv docs/luckperms-structure.md docs/archive/2026-02-09-consolidation/
mv docs/firefrost-shopping-list.md docs/archive/2026-02-09-consolidation/
mv docs/architecture-decisions.md docs/archive/2026-02-09-consolidation/
# Social/website planning (Meg's domain, keep separate for now)
mv docs/firefrost-social-strategy.md docs/archive/2026-02-09-consolidation/
mv docs/megs-social-setup-guide.md docs/archive/2026-02-09-consolidation/
mv docs/website-vision-plan.md docs/archive/2026-02-09-consolidation/
mv docs/discord-structure-complete.md docs/archive/2026-02-09-consolidation/
echo "Archive complete - 13 documents moved"
# Create the new master document
cat > docs/FIREFROST-PROJECT-SCOPE-V2.md << 'SCOPEEOF'
# 🔥❄️ FIREFROST GAMING: PROJECT SCOPE V2.0
**The Complete Technical & Business Vision**
---
**Document Version:** 2.0
**Created:** February 9, 2026
**Supersedes:** firefrost-master-implementation-plan.md (v1.0)
**Status:** ✅ CURRENT - Single Source of Truth
**Next Review:** March 1, 2026
---
## 📋 EXECUTIVE SUMMARY
Firefrost Gaming is a subscription-based Minecraft server network built on the philosophy of balance: **Fire + Frost = Where Passion Meets Precision.**
**Current Status (Feb 9, 2026):**
- 12 game servers operational (6 NC1, 6 TX1)
- Phase 0.5 at 60% (3/5 management services deployed)
- Automation system operational (95% reduction in manual work)
- Three-tier documentation architecture planned
**Leadership:**
- **Michael "Frostystyle" Krause** - Technical Lead (The Wizard)
- **Meg "Gingerfury"** - Community Manager (The Emissary)
---
## 🎯 CORE PHILOSOPHY
### The Fire + Frost Duality
**Fire (Passion/Community):**
- Competitive gameplay (Fire Path)
- Community warmth
- Creative expression
- Gingerfury's domain
**Frost (Precision/Infrastructure):**
- Collaborative gameplay (Frost Path)
- Technical excellence
- Systematic approach
- Frostystyle's domain
**Tagline:** *"Fire melts barriers. Frost builds foundations."*
---
## 🏗️ INFRASTRUCTURE STATUS
### Deployed Services (Phase 0.5: 60% Complete)
**✅ Service 1/5: Gitea** (git.firefrostgaming.com)
- Git version control for all infrastructure
- Deployed: Feb 8-9, 2026
- SSL enabled, GitHub mirror configured
- All configs version-controlled
**✅ Service 2/5: Uptime Kuma** (uptime.firefrostgaming.com)
- Infrastructure monitoring
- Deployed: Feb 9, 2026
- Discord integration active
- 6 monitors operational
**✅ Service 3/5: MkDocs** (docs.firefrostgaming.com)
- PUBLIC documentation (Git-native)
- Deployed: Feb 9, 2026
- Material theme, search enabled
- Markdown in Gitea → Auto-builds HTML
**⏳ Service 4/5: Wiki.js** (subscribers.firefrostgaming.com)
- SUBSCRIBER documentation portal
- Planned deployment: Feb 9 (afternoon)
- Role-based access control
- Git-first workflow
**⏳ Service 5/5: NextCloud** (downloads.firefrostgaming.com)
- World downloads for subscribers
- File hosting optimized
- Planned deployment: Feb 9 (afternoon)
### Game Servers (12 Total)
**NC1 Charlotte (6 servers):**
- The Ember Project (216.239.104.130:25565)
- Minecolonies (216.239.104.131:25565)
- All The Mods 10 (216.239.104.134:25565)
- Homestead (216.239.104.133:25566)
- Hytale (216.239.104.131:5520)
- EMC Subterra Tech (216.239.104.132:25566)
**TX1 Dallas (6 servers):**
- Stoneblock 4 (38.68.14.26:25565)
- Reclamation (38.68.14.27:25565)
- Society: Sunlit Valley (38.68.14.28:25565)
- Vanilla 1.21.1 (38.68.14.29:25565)
- All The Mons (38.68.14.30:25565)
- FoundryVTT (38.68.14.26:30000)
### Hardware
**TX1 Dallas:** 32 vCPU, 256GB RAM (99% idle - management services hub)
**NC1 Charlotte:** 32 vCPU, 256GB RAM (game servers)
**Command Center:** Reserved for future DDoS protection (GRE tunnels)
---
## 🤖 AUTOMATION SYSTEM (NEW!)
### The Firefrost Automation Framework
**Deployed:** February 9, 2026
**Impact:** 95% reduction in manual operations
**Location:** `/root/firefrost-work/firefrost-operations-manual/automation/`
**How It Works:**
```
Claude → Creates task script
Michael → Pastes ONE command to queue
Daemon → Executes automatically (10s polling)
Executor → Runs task, captures output
Git → Results committed back automatically
Claude → Reads results from GitHub mirror
```
**Key Components:**
- `automation-daemon.sh` - Background watcher (PID management)
- `executor.sh` - Task runner with auto-commit
- `queue/` - Tasks waiting to execute
- `results/` - Execution output (committed to Git)
- `logs/` - Completed tasks archive
**Success Metrics:**
- Test Task 001: SUCCESS (exit 0)
- Test Task 002: SUCCESS (automated execution)
- BookStack deployment: 2 minutes (previously would take 20+ minutes)
- MkDocs deployment: 1.5 minutes
**Accessibility Impact:**
- Michael's hand limitations accommodated
- Single paste operation per deployment
- All work auditable in Git history
- Perfect for marathon sessions
---
## 📚 THREE-TIER DOCUMENTATION ARCHITECTURE
### The Complete Documentation Strategy
**Tier 1: PUBLIC (docs.firefrostgaming.com)**
- Technology: MkDocs + Material Theme
- Authentication: None required
- Content: Server rules, getting started, modpack info
- Workflow: Edit markdown in Gitea → Auto-rebuild
- Status: ✅ DEPLOYED Feb 9, 2026
**Tier 2: SUBSCRIBERS (subscribers.firefrostgaming.com + downloads.firefrostgaming.com)**
- Documentation: Wiki.js (premium guides, exclusive content)
- Downloads: NextCloud (world backups, custom modpacks)
- Authentication: Subscriber login required
- Content: Premium guides, world downloads, exclusive perks
- Workflow: Edit in Wiki.js UI OR Git
- Status: ⏳ DEPLOYING Feb 9 afternoon
**Tier 3: STAFF (staff.firefrostgaming.com)**
- Technology: Wiki.js
- Authentication: Staff/Admin only
- Content: SOPs, admin procedures, internal guides
- Workflow: Edit in Wiki.js UI OR Git
- Status: ⏳ DEPLOYING Feb 9 afternoon
### Why Three Tiers?
**Problem Solved:**
- Public can access basic info (no barriers)
- Subscribers get premium value (world downloads!)
- Staff have secure internal documentation
- Each tier isolated (different security boundaries)
- Git-first workflow maintained (Michael's requirement)
- UI-first editing available (Meg's preference)
---
## 💰 SUBSCRIPTION MODEL
### Tier Structure
**Free Tier - "The Frozen Path"**
- Discord access (public channels)
- Forum access
- View public documentation
- No server access
**$1/month - "The Awakened Gateway" (The Handshake)**
- Purpose: Anti-bot/anti-grief barrier
- Philosophy: "If you want to be an asshole, you have to pay for it"
- Not a revenue stream - a security protocol
- Server whitelist access
- Basic support
**$5/month - "Elemental Tier"**
- CHOOSE YOUR PATH: Fire or Frost
- Full server access (13+ modpacks)
- Subscriber documentation portal
- World download access (30-day retention)
- Priority support
- Path-specific Discord channels
**$10/month - "Ascendant Tier"**
- Everything from Elemental
- Vote on new modpacks
- Custom modpack requests
- Extended world downloads (90 days)
- Beta access to new servers
**$25/month - "Eternal Flame/Eternal Frost"**
- Everything from Ascendant
- Permanent world download access
- Direct line to founders
- Server naming rights
- Custom spawn builds
### Fire vs Frost Paths
**Identical mechanical perks, different community identity:**
**🔥 Path of Fire:**
- Discord: Ignis channels (18+ only)
- Focus: Competitive gameplay, PvP, challenges
- Led by: Gingerfury (The Emissary)
**❄️ Path of Frost:**
- Discord: Frost channels (all ages welcome)
- Focus: Collaborative builds, exploration, creativity
- Led by: Frostystyle (The Wizard)
**Competitive Element:** Michael vs Meg - who recruits more to their path?
---
## 🔐 AUTHENTICATION STRATEGY
### Phased Implementation
**Phase 1: Manual Management** (Current - Launch to 20 subscribers)
- Subscriber pays via Paymenter
- Manual account creation (Wiki.js + NextCloud)
- Email credentials
- Track expirations in spreadsheet
- **Advantage:** Zero dev time, validates market
**Phase 2: Webhook Automation** (20+ subscribers)
- Paymenter webhooks trigger scripts
- Automatic account creation/deletion
- Automated credential emails
- **Development:** 3-4 hours
- **Trigger:** When manual work becomes burden
**Phase 3: SSO/OAuth** (100+ subscribers - optional)
- Single sign-on across all services
- Real-time subscription validation
- Enterprise-grade auth
- **Development:** 8-12 hours
- **Trigger:** Only if subscriber count justifies complexity
**Decision:** Start Phase 1, upgrade to Phase 2 when needed
---
## 🎨 BRANDING & VISUAL IDENTITY
### Color Palette
**Fire Colors:**
- Primary: #FF4500 (Reddit Orange Fire)
- Secondary: #FF6347 (Tomato)
- Accent: #FFD700 (Gold)
**Frost Colors:**
- Primary: #00CED1 (Dark Turquoise)
- Secondary: #4682B4 (Steel Blue)
- Accent: #E0FFFF (Light Cyan)
**Neutral:**
- Background Dark: #2C2C2C
- Background Light: #F5F5F5
- Text: #FFFFFF / #000000
### Logos & Assets
**Location:** `/root/firefrost-master-configs/branding/`
- Circular Emblem (512x512) - Social profiles, favicon
- Light Logo - Light backgrounds
- Dark Logo - Dark backgrounds, website
- Backgrounds - Hero images, Discord, social media
- Character Sprites - Gingerfury (Fire) + Frostystyle (Frost)
---
## 📅 IMPLEMENTATION TIMELINE
### February 2026 (Month 1) - FOUNDATION
**Week 1 (Feb 8-14):**
- ✅ Phase 0.5 Services 1-3 deployed (Gitea, Uptime Kuma, MkDocs)
- ✅ Automation system operational
- ⏳ Services 4-5 deploying (Wiki.js, NextCloud)
- ⏳ Complete three-tier documentation architecture
**Week 2 (Feb 15-21):**
- Deploy Netdata (analytics.firefrostgaming.com)
- Deploy Vaultwarden (vault.firefrostgaming.com)
- Complete Phase 0.5 (100% - 5/5 services)
- Begin Phase 1: Simplified DDoS protection
**Week 3-4 (Feb 22 - Mar 7):**
- Paymenter billing integration
- Subscriber portal testing
- Staff documentation creation
- Soft launch preparation
### March 2026 (Month 2) - SOFT LAUNCH
**Weeks 1-2:**
- Soft launch to existing community (3 members)
- Test subscriber workflow end-to-end
- Validate world download process
- Gather feedback, iterate
**Weeks 3-4:**
- Public announcement preparation
- Content creation (public docs)
- Social media setup (Meg's domain)
- Discord structure finalization
### April-June 2026 (Months 3-5) - PUBLIC LAUNCH
**April:**
- Public launch
- Social media campaigns
- Recruit first 20 subscribers
- Monitor Phase 1 auth (manual)
**May:**
- Evaluate Phase 2 auth automation trigger
- Staff recruitment (builders, social media)
- Begin LuckPerms implementation
**June:**
- Reach 50 subscribers (target)
- Deploy Phase 2 auth if needed
- Website v1.0 launch
### July-December 2026 (Months 6-12) - GROWTH & REFINEMENT
**Ongoing:**
- Scale infrastructure as needed
- Add new modpacks based on votes
- Iterate on subscriber experience
- Meg's social media campaigns
- Community events (Fire vs Frost competitions)
---
## 🛠️ TECHNICAL DEBT & IMPROVEMENTS
### Immediate Priorities (Next 7 Days)
1. **Complete Phase 0.5** (Services 4-5)
2. **Test subscriber workflow** end-to-end
3. **Document staff SOPs** in staff Wiki
4. **Webhook setup** for MkDocs auto-rebuild
### Short-Term (Next 30 Days)
1. **Netdata deployment** (analytics)
2. **Vaultwarden deployment** (password manager)
3. **LuckPerms MySQL** backend (centralized permissions)
4. **World backup automation** (monthly snapshots)
### Medium-Term (Next 90 Days)
1. **Phase 2 Authentication** (webhook automation)
2. **Website v1.0** (firefrostgaming.com)
3. **Staff recruitment** (2-3 builders, 1 social media)
4. **Pterodactyl extensions** (Discord integration)
### Long-Term (6-12 Months)
1. **Phase 3 Authentication** (SSO) if needed
2. **Custom modpack development**
3. **API for external integrations**
4. **Mobile app** (subscriber portal)
---
## 📊 SUCCESS METRICS
### Technical Metrics
- **Uptime:** >99.5% (tracked via Uptime Kuma)
- **Response Time:** <100ms (Nginx)
- **TPS (Game Servers):** Stable 20.0
- **Automation Success Rate:** >95%
### Business Metrics
- **Month 1:** 3 subscribers (soft launch)
- **Month 3:** 20 subscribers (public launch)
- **Month 6:** 50 subscribers
- **Month 12:** 100+ subscribers
**Revenue Targets:**
- Month 1: $15/month (validation)
- Month 3: $100/month (break-even operations)
- Month 6: $250/month (sustainable)
- Month 12: $500+/month (growth mode)
### Community Metrics
- **Discord Activity:** Daily active users
- **Fire vs Frost Balance:** 45-55% split (competitive balance)
- **Subscriber Retention:** >80% monthly
- **Support Response Time:** <24 hours
---
## 🚨 CRITICAL CONSTRAINTS
### Medical Accessibility
**Michael's Limitations:**
- Type 1 Diabetes - Jack alerts take absolute priority
- Hand limitations from surgery - all code in small blocks (8-10 lines max)
- Work sessions must allow for health breaks
- Automation system critical for reducing repetitive tasks
**System Designed Around:**
- One-paste deployments
- Self-healing services (systemd)
- Comprehensive documentation for handoffs
- Minimal midnight emergencies
### Relationship with Breezehost
**"Forever Home" Provider:**
- Long-term partnership, not transactional
- Jon Beard (Network Specialist) - primary contact
- Trust-based relationship (6+ months)
- Infrastructure decisions made together
**Critical:** Maintain this relationship, communicate proactively
---
## 📖 CURRENT DOCUMENTATION
### Operational Documents (Keep In Root)
1. **FIREFROST-PROJECT-SCOPE-V2.md** (THIS DOCUMENT)
2. **session-handoff.md** - Current status for Claude sessions
3. **workflow-guide.md** - Michael + Claude collaboration process
4. **design-bible-v1.1.md** - Visual identity guide
5. **path-philosophy.md** - Fire vs Frost explained
6. **subscription-tiers-final.md** - Detailed tier breakdown
7. **awakened-gateway.md** - $1 handshake philosophy
8. **provider-communications.md** - Breezehost relationship archive
9. **visual-assets-guide.md** - Asset inventory & usage
10. **server-deletion-policy.md** - World backup policy
### Deployment Documentation
1. **gitea-deployment.md** - Service 1/5 deployment guide
2. **uptime-kuma-deployment.md** - Service 2/5 deployment guide
3. **automation/USAGE.md** - Automation system guide
### Archived (docs/archive/2026-02-09-consolidation/)
- Historical session summaries (Feb 8-9)
- Superseded planning documents
- Old implementation plans
- Planning docs not yet executed
---
## 🎯 THE PATH FORWARD
### This Week (Feb 9-15, 2026)
**Monday (TODAY):**
- [x] Consolidate documentation (this document)
- [ ] Complete Services 4-5 (Wiki.js, NextCloud)
- [ ] Test subscriber workflow
- [ ] Create staff documentation structure
**Tuesday-Wednesday:**
- [ ] Deploy Netdata (Service 6 - analytics)
- [ ] Deploy Vaultwarden (Service 7 - passwords)
- [ ] Complete Phase 0.5 (100%)
**Thursday-Friday:**
- [ ] Staff SOPs written in staff Wiki
- [ ] World backup automation script
- [ ] Subscriber onboarding checklist
**Weekend:**
- [ ] Test complete subscriber experience
- [ ] Document any issues
- [ ] Prepare for soft launch
### Next Week (Feb 16-22, 2026)
- Soft launch to existing community
- Iterate based on feedback
- Begin Phase 1 (Simplified DDoS)
- Social media setup (Meg)
---
## 🔥❄️ FINAL NOTES
**This document is the single source of truth.**
When in doubt about priorities, architecture decisions, or project scope, refer to this document. All other documents are either:
- Historical (archived)
- Operational guides (specific technical details)
- Future planning (not yet prioritized)
**Update Schedule:**
- Minor updates: As needed (via Git)
- Major review: Monthly (1st of each month)
- Version bump: When major pivots occur
**Document Owner:** Michael "Frostystyle" Krause
**Last Major Update:** February 9, 2026 - Post-automation deployment, pre-subscriber portal launch
---
**Fire + Frost = Where Passion Meets Precision** 🔥❄️
*Built for marathon sessions. Designed for accessibility. Optimized for growth.*
SCOPEEOF
# Update INDEX.md
cat > docs/INDEX.md << 'INDEXEOF'
# 🔥❄️ Firefrost Gaming Documentation Index
**Last Updated:** February 9, 2026
**Status:** Reorganized & Current
**Purpose:** Central navigation for all Firefrost Gaming documentation
---
## 🚀 START HERE
**New team members, Claude sessions, or quick reference:**
### **THE MASTER DOCUMENT**
📋 **[FIREFROST-PROJECT-SCOPE-V2.md](FIREFROST-PROJECT-SCOPE-V2.md)** ⭐
*The complete technical & business vision - single source of truth*
### **ESSENTIAL CONTEXT**
- 📝 [session-handoff.md](session-handoff.md) - Current status for Claude
- 🤝 [workflow-guide.md](workflow-guide.md) - How Michael & Claude work together
- 🎨 [design-bible-v1.1.md](design-bible-v1.1.md) - Visual identity & branding
- ⚖️ [path-philosophy.md](path-philosophy.md) - Fire vs Frost philosophy
---
## 📚 OPERATIONAL DOCUMENTATION
### **Infrastructure & Deployment**
- 🔧 [gitea-deployment.md](gitea-deployment.md) - Service 1/5: Git version control
- 📊 [uptime-kuma-deployment.md](uptime-kuma-deployment.md) - Service 2/5: Monitoring
- 🤖 [automation/USAGE.md](../automation/USAGE.md) - Automation system guide
### **Business & Community**
- 💰 [subscription-tiers-final.md](subscription-tiers-final.md) - Tier structure
- 🤝 [awakened-gateway.md](awakened-gateway.md) - The $1 handshake
- 🗑️ [server-deletion-policy.md](server-deletion-policy.md) - World backup policy
### **Assets & Branding**
- 🎨 [visual-assets-guide.md](visual-assets-guide.md) - Logo, backgrounds, sprites
### **Relationships**
- 📞 [provider-communications.md](provider-communications.md) - Breezehost partnership
---
## 📦 ARCHIVED DOCUMENTATION
**Location:** `docs/archive/2026-02-09-consolidation/`
Historical session summaries, superseded plans, and outdated documentation moved to archive for reference.
**Archived documents:**
- Session summaries (Feb 8-9, 2026)
- Old implementation plans
- Superseded task lists
- Planning documents not yet executed
- Social media planning (Meg's future domain)
**When to reference archive:**
- Understanding historical decisions
- Reviewing what approaches were tried
- Learning from past pivots
---
## 🎯 QUICK REFERENCE
### **Current Phase**
Phase 0.5: Management Services (60% complete - 3/5 deployed)
### **What's Operational**
- ✅ Gitea (git.firefrostgaming.com)
- ✅ Uptime Kuma (uptime.firefrostgaming.com)
- ✅ MkDocs Public Docs (docs.firefrostgaming.com)
- ✅ Automation System (95% reduction in manual work)
- ✅ 12 Game Servers (6 NC1, 6 TX1)
### **What's Deploying**
- ⏳ Wiki.js Subscriber Portal (subscribers.firefrostgaming.com)
- ⏳ NextCloud Downloads (downloads.firefrostgaming.com)
- ⏳ Wiki.js Staff Portal (staff.firefrostgaming.com)
### **Next Priorities**
1. Complete three-tier documentation (today)
2. Deploy Netdata analytics (this week)
3. Deploy Vaultwarden passwords (this week)
4. Soft launch to community (next week)
---
## 📖 DOCUMENTATION PHILOSOPHY
**One source of truth:** FIREFROST-PROJECT-SCOPE-V2.md
**Specific details:** Individual deployment guides
**Historical context:** Archive folder
**Future planning:** Noted in Project Scope
**Keep it simple. Keep it current. Keep it accessible.**
---
**Fire + Frost = Where Passion Meets Precision** 🔥❄️
*Last major reorganization: February 9, 2026*
INDEXEOF
# Create archive README
cat > docs/archive/2026-02-09-consolidation/README.md << 'ARCHIVEEOF'
# Archived Documentation - February 9, 2026 Consolidation
**Archive Date:** February 9, 2026
**Reason:** Documentation consolidation and reorganization
**Superseded By:** FIREFROST-PROJECT-SCOPE-V2.md
---
## What's in This Archive
This folder contains documentation that was either:
1. **Historical** - Session summaries from completed work
2. **Superseded** - Replaced by updated versions
3. **Planning** - Future plans not yet prioritized
**These documents are kept for reference, not current operations.**
---
## Archived Documents
### Historical Session Summaries
- `session-summary-feb8-2026.md` - Infrastructure security audit
- `session-summary-gitea.md` - Gitea deployment details
- `session-gitea-migration-feb8-2026.md` - Migration from Command Center
- `session-uptime-kuma-github-mirror-feb9-2026.md` - Uptime Kuma deployment
### Superseded Planning Documents
- `firefrost-master-implementation-plan.md` - Replaced by Project Scope V2
- `session-handoff-prompt.md` - Old version, replaced by session-handoff.md
- `TASKS.md` - Task list outdated by pivots
### Future Planning (Not Yet Prioritized)
- `pterodactyl-extensions-plan.md` - Extensions for Pterodactyl
- `staff-recruitment-planning.md` - Hiring plans
- `luckperms-structure.md` - Permission system design
- `firefrost-shopping-list.md` - Budget planning
- `architecture-decisions.md` - Historical decision log
### Social & Website Planning (Meg's Domain)
- `firefrost-social-strategy.md` - Social media strategy
- `megs-social-setup-guide.md` - Meg's tutorial
- `website-vision-plan.md` - Website architecture
- `discord-structure-complete.md` - Discord setup
---
## Why Archive Instead of Delete?
**We archive rather than delete because:**
1. **Historical Context** - Understanding past decisions
2. **Learning** - Reviewing what worked and what didn't
3. **Reference** - Details that might be useful later
4. **Audit Trail** - Complete project history
**These documents tell the story of how Firefrost Gaming evolved.**
---
## Using Archived Documents
**DO:**
- Reference for historical context
- Learn from past approaches
- Understand decision-making process
**DON'T:**
- Use as current operational guidance
- Assume details are up-to-date
- Follow outdated procedures
**For current information, always refer to:** `docs/FIREFROST-PROJECT-SCOPE-V2.md`
---
**Archived by:** Michael "Frostystyle" Krause
**Date:** February 9, 2026
ARCHIVEEOF
# Commit everything
git add -A
git commit -m "Major documentation consolidation - V2.0
Created new single source of truth:
- FIREFROST-PROJECT-SCOPE-V2.md (complete vision)
- Archived 13 outdated/superseded documents
- Updated INDEX.md with clear navigation
- Reflects current state (60% Phase 0.5, automation system)
Key updates:
- Three-tier documentation architecture documented
- Automation system fully described
- Authentication phased approach included
- BookStack→MkDocs pivot captured
- Clear current vs future priorities
All historical docs preserved in archive for reference.
Clean slate for moving forward."
git push
echo ""
echo "=== CONSOLIDATION COMPLETE ==="
echo ""
echo "Created:"
echo " - docs/FIREFROST-PROJECT-SCOPE-V2.md (MASTER DOCUMENT)"
echo " - docs/INDEX.md (updated navigation)"
echo " - docs/archive/2026-02-09-consolidation/ (13 docs archived)"
echo ""
echo "The documentation is now clean, current, and consolidated!"
echo "Single source of truth: FIREFROST-PROJECT-SCOPE-V2.md"
echo ""

View File

@@ -0,0 +1,205 @@
#!/bin/bash
# Firefrost Gaming - Wiki.js "The Codex" Deployment (Services 4a & 4b)
# Deploys: subscribers.firefrostgaming.com/codex + staff.firefrostgaming.com/codex
# Date: February 9, 2026
# Method: Single Wiki.js instance, dual domains, /codex path, role-based access
set -e
echo "=== Wiki.js 'The Codex' Deployment Started ==="
echo "Timestamp: $(date)"
# Variables
WIKIJS_VERSION="2.5.303"
INSTALL_DIR="/opt/wikijs"
DATA_DIR="/var/lib/wikijs"
SERVICE_USER="wikijs"
IP_ADDRESS="74.63.218.205"
SUBSCRIBER_DOMAIN="subscribers.firefrostgaming.com"
STAFF_DOMAIN="staff.firefrostgaming.com"
echo "Step 1: Installing Node.js 18..."
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
echo "Step 2: Creating system user..."
useradd -r -s /bin/false $SERVICE_USER || echo "User already exists"
echo "Step 3: Creating directories..."
mkdir -p $INSTALL_DIR $DATA_DIR
cd $INSTALL_DIR
echo "Step 4: Downloading Wiki.js $WIKIJS_VERSION..."
wget https://github.com/Requarks/wiki/releases/download/v${WIKIJS_VERSION}/wiki-js.tar.gz
tar xzf wiki-js.tar.gz
rm wiki-js.tar.gz
echo "Step 5: Creating Wiki.js configuration..."
cat > config.yml << 'WIKICFG'
port: 3000
bindIP: 127.0.0.1
db:
type: sqlite
storage: /var/lib/wikijs/database.sqlite
logLevel: info
dataPath: /var/lib/wikijs
WIKICFG
echo "Step 6: Setting permissions..."
chown -R $SERVICE_USER:$SERVICE_USER $INSTALL_DIR $DATA_DIR
echo "Step 7: Creating systemd service..."
cat > /etc/systemd/system/wikijs.service << 'SYSTEMD'
[Unit]
Description=Wiki.js - The Codex
After=network.target
[Service]
Type=simple
User=wikijs
ExecStart=/usr/bin/node server
WorkingDirectory=/opt/wikijs
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
SYSTEMD
echo "Step 8: Starting Wiki.js service..."
systemctl daemon-reload
systemctl enable wikijs
systemctl start wikijs
echo "Step 9: Waiting for Wiki.js to initialize..."
sleep 10
echo "Step 10: Creating Nginx config for subscribers.firefrostgaming.com..."
cat > /etc/nginx/sites-available/subscribers.firefrostgaming.com << 'NGINX1'
server {
listen 74.63.218.205:80;
server_name subscribers.firefrostgaming.com;
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 74.63.218.205:443 ssl http2;
server_name subscribers.firefrostgaming.com;
# SSL certificates (configured by certbot)
# Root redirect to /codex
location = / {
return 301 https://$server_name/codex;
}
# The Codex (Wiki.js)
location /codex/ {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
}
}
NGINX1
echo "Step 11: Creating Nginx config for staff.firefrostgaming.com..."
cat > /etc/nginx/sites-available/staff.firefrostgaming.com << 'NGINX2'
server {
listen 74.63.218.205:80;
server_name staff.firefrostgaming.com;
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 74.63.218.205:443 ssl http2;
server_name staff.firefrostgaming.com;
# SSL certificates (configured by certbot)
# Root redirect to /codex
location = / {
return 301 https://$server_name/codex;
}
# The Codex (Wiki.js)
location /codex/ {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
}
}
NGINX2
echo "Step 12: Enabling Nginx sites..."
ln -sf /etc/nginx/sites-available/subscribers.firefrostgaming.com /etc/nginx/sites-enabled/
ln -sf /etc/nginx/sites-available/staff.firefrostgaming.com /etc/nginx/sites-enabled/
echo "Step 13: Testing Nginx configuration..."
nginx -t
echo "Step 14: Restarting Nginx..."
systemctl restart nginx
echo "Step 15: Configuring UFW firewall..."
ufw allow in on ens3 to $IP_ADDRESS port 80 proto tcp
ufw allow in on ens3 to $IP_ADDRESS port 443 proto tcp
ufw reload
echo "Step 16: Installing SSL certificates..."
certbot --nginx -d $SUBSCRIBER_DOMAIN -d $STAFF_DOMAIN --non-interactive --agree-tos --email mkrause612@gmail.com --redirect
echo "Step 17: Verification checks..."
echo "Wiki.js service status:"
systemctl status wikijs --no-pager
echo "Port 3000 listening:"
ss -tlnp | grep 3000
echo "Nginx configuration:"
nginx -t
echo "SSL certificates:"
certbot certificates | grep -A2 $SUBSCRIBER_DOMAIN
echo "=== Wiki.js 'The Codex' Deployment Complete ==="
echo ""
echo "Subscriber Codex: https://$SUBSCRIBER_DOMAIN/codex"
echo "Staff Codex: https://$STAFF_DOMAIN/codex"
echo "Root domains auto-redirect to /codex"
echo ""
echo "FIRST-TIME SETUP:"
echo "1. Browse to either URL above"
echo "2. Complete Wiki.js administrator setup"
echo "3. Email: mkrause612@gmail.com"
echo "4. Password: Butter2018!!"
echo "5. Site URL: https://subscribers.firefrostgaming.com (or staff - doesn't matter for single instance)"
echo ""
echo "POST-SETUP TASKS:"
echo "1. Create 'Subscribers' group with read-only permissions"
echo "2. Create 'Staff' group with edit permissions"
echo "3. Create 'Admin' group with full permissions"
echo "4. Configure different home pages or content permissions per group"
echo "5. Set up authentication (local users Phase 1, webhook automation Phase 2)"
echo ""
echo "Database: SQLite at $DATA_DIR/database.sqlite"
echo "Service: systemctl status wikijs"
exit 0

View File

@@ -0,0 +1,16 @@
Task: create-migration-plan.sh
Started: Mon Feb 9 03:55:39 PM CST 2026
==========================================
[master 0898f4b] Migration Plan: Move management services from TX1/NC1 dedis to VPS tier
3 files changed, 511 insertions(+)
create mode 100644 docs/dedis-to-vps-migration-plan.md
create mode 100644 docs/migration-checklist.md
create mode 100644 docs/migration-rollback-plan.md
remote: . Processing 1 references
remote: Processed 1 references in total
To https://git.firefrostgaming.com/firefrost-gaming/firefrost-operations-manual.git
3b96a6c..0898f4b master -> master
Migration planning documents created successfully!
==========================================
Finished: Mon Feb 9 03:55:39 PM CST 2026
Exit Code: 0

File diff suppressed because it is too large Load Diff

View File

@@ -156,3 +156,109 @@ Asked Breezehost if this is:
---
**END OF TASKS.md**
---
## 🎨 FUTURE ENHANCEMENTS
### Landing Pages for Subscriber & Staff Portals
**Priority:** Medium
**Status:** PLANNED
**Created:** Feb 9, 2026 1:45 PM CST
**Goal:**
Create landing pages for staff.firefrostgaming.com and subscribers.firefrostgaming.com root domains that serve as entry points to multiple tools/services.
**Current State (Phase 1):**
- Root domains auto-redirect to /codex (Wiki.js)
- Users go straight to documentation
- Simple, functional, gets us operational
**Future State (Phase 2):**
- Custom landing pages at root (`/`)
- Links to multiple services:
- 📖 The Codex (Wiki.js documentation)
- 🔧 Tools (future staff tools)
- 📊 Dashboard (future analytics/status)
- 📥 Downloads (NextCloud for subscribers)
- Secure access control (authenticate at landing page level)
**Design Considerations:**
- Fire/Frost visual identity (match Design Bible)
- Role-based content (subscribers see different options than staff)
- Mobile-responsive
- Fast load times
- SSO/authentication strategy (Phase 2 webhook automation)
**Security Requirements:**
- Authentication BEFORE accessing any services
- Session management
- Secure token handling
- Rate limiting on login attempts
**Technologies to Explore:**
- Static HTML + Tailwind CSS (simple, fast)
- Next.js (if we want dynamic content)
- Authentik or Authelia (SSO/authentication layer)
- Integration with Paymenter subscriber validation
**Next Steps:**
1. Complete Wiki.js deployment (Service 4)
2. Complete NextCloud deployment (Service 5)
3. Reach 100% Phase 0.5 completion
4. THEN discuss landing page architecture in dedicated session
**Discussion Topics for Future Session:**
- Authentication strategy (Phase 1 manual vs Phase 2 webhooks)
- Visual design (Frost vs Fire styling for each portal)
- Navigation structure (what tools/links appear on each portal)
- Mobile vs desktop experience
- Onboarding flow for new subscribers
---
### Configure Wiki.js Git Sync with Gitea
**Priority:** High
**Status:** PENDING - Deploy Wiki.js first
**Created:** Feb 9, 2026 2:00 PM CST
**Goal:**
Set up two-way Git synchronization between Wiki.js and Gitea for markdown-based documentation workflow.
**Prerequisites:**
- ✅ Wiki.js deployed and configured
- ⏳ Admin account created (mkrause612@gmail.com / Butter2018!!)
- ⏳ Initial setup wizard completed
**Implementation Steps:**
1. Create new Gitea repository: `firefrost-codex`
2. Initialize with folder structure:
- `/subscribers/` - Subscriber-facing guides
- `/staff/` - Internal procedures and planning
3. Configure Wiki.js Git sync:
- Repository URL: https://git.firefrostgaming.com/firefrost-gaming/firefrost-codex.git
- Authentication: Git credentials or SSH key
- Sync mode: Two-way (Git ↔ Wiki.js)
- Sync interval: Every 5 minutes or manual trigger
4. Test workflow:
- Create page in Wiki.js → Verify appears in Git
- Create markdown file in Git → Verify appears in Wiki.js
5. Set up path-based permissions:
- Subscribers group: Read-only access to /subscribers/
- Staff group: Full access to /staff/
- Admin group: Full access everywhere
**Benefits:**
- Write in markdown (terminal/editor) OR web UI (Meg's preference)
- All content version controlled in Git
- Automatic sync both directions
- Perfect for Fire + Frost workflow (technical precision + creative editing)
**Next Steps:**
1. Wait for Wiki.js deployment to complete
2. Complete web setup wizard
3. Execute this configuration task
---