From 09d2f1f568c3ad7d8e7c58b1524fc781d8cf5c69 Mon Sep 17 00:00:00 2001 From: mkrause612 Date: Thu, 12 Feb 2026 00:59:54 -0600 Subject: [PATCH] Reorg: Move migration checklist to docs/planning/ --- docs/planning/migration-checklist.md | 152 +++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 docs/planning/migration-checklist.md diff --git a/docs/planning/migration-checklist.md b/docs/planning/migration-checklist.md new file mode 100644 index 0000000..e92cf29 --- /dev/null +++ b/docs/planning/migration-checklist.md @@ -0,0 +1,152 @@ +# 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)