4.0 KiB
4.0 KiB
> ⚠️ ARCHIVED: This document was moved to archive on February 12, 2026.
> Reason: Content completed/implemented. No longer an active planning document.
> Original Location:
> Reason: Content completed/implemented. No longer an active planning document.
> Original Location:
docs/planning/migration-checklist.md
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.iniwith 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)