153 lines
3.8 KiB
Markdown
153 lines
3.8 KiB
Markdown
# 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)
|