From 3e317a1eb8e0ed5e2eaedfdf585effdee227a327 Mon Sep 17 00:00:00 2001 From: mkrause612 Date: Thu, 12 Feb 2026 08:36:14 -0600 Subject: [PATCH] [ARCHIVE] Moved docs/planning/migration-plan.md to archive (completed/implemented) --- docs/archive/planning/migration-plan.md | 419 ++++++++++++++++++++++++ 1 file changed, 419 insertions(+) create mode 100644 docs/archive/planning/migration-plan.md diff --git a/docs/archive/planning/migration-plan.md b/docs/archive/planning/migration-plan.md new file mode 100644 index 0000000..809edec --- /dev/null +++ b/docs/archive/planning/migration-plan.md @@ -0,0 +1,419 @@ +--- +> **⚠️ ARCHIVED:** This document was moved to archive on February 12, 2026. +> **Reason:** Content completed/implemented. No longer an active planning document. +> **Original Location:** `docs/planning/migration-plan.md` + +--- + +# 🔥❄️ 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. + +--- + +## 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** 🔥❄️