zlh-grind/SCRATCH/migration-new-host.md

2.6 KiB

Migration Checklist — New GTHost Detroit Server

New hardware: Supermicro 2029TP-HTR, Intel Gold 6152 22c/44t, 192GB DDR4, 2x1.92TB SSD
Target OS: Proxmox 9 (fallback: Proxmox 8 if issues)
Old server: Denver, Silver 4116, $103/mo → cancel after migration confirmed


Pre-Migration

  • Verify PBS backup is current and all VMs/containers have recent backups
  • Note all VM IDs and names from current Proxmox
  • Note VLAN/bridge config from current OPNsense setup
  • Export OPNsense config (both routers) — System → Configuration → Backups

Phase 1 — New Server Setup (est. 2-4 hrs)

  • GTHost provisions server (5-15 mins)
  • Install Proxmox 9 via GTHost panel
  • Initial Proxmox config:
    • Set hostname
    • Configure network bridges to match current layout
    • Set up VLANs
  • Add new server as additional node or standalone in PBS
  • Verify PBS can see backup repository

Phase 2 — Restore VMs (est. 2-4 hrs)

Restore in this order — networking first:

  • OPNsense core router (VM)
  • OPNsense zpack router (VM)
  • zlh-dns (Technitium)
  • zlh-proxy (Traefik core)
  • zlh-zpack-proxy (Traefik game/dev edge)
  • zlh-monitor (Prometheus/Grafana)
  • zlh-artifacts
  • zpack-api
  • zpack-portal
  • zlh-velocity (Minecraft proxy)
  • zlh-back (PBS — if moving)
  • Game/dev containers

Phase 3 — Verification (est. 2-4 hrs)

  • Internal networking between VMs working
  • Portal loads
  • API responds
  • Twingate connector online — update connector to new server if needed
  • Dev container provisions and browser IDE loads
  • Game server provisions and Minecraft connects via Velocity
  • PBS backup runs successfully on new host
  • Monitoring shows all services

Phase 4 — DNS Cutover (est. 30 mins)

  • Update Cloudflare A record for Velocity public IP
  • Update Cloudflare SRV records for Minecraft
  • Update any other DNS records pointing to old server IPs
  • Monitor for issues — 30 min observation window
  • Confirm everything stable

Phase 5 — Cleanup

  • Cancel old Denver server (or let expire)
  • Update PROJECT_CONTEXT.md with new VM map and IPs
  • Update OPEN_THREADS.md — mark migration complete

Notes

  • Everything runs on private IPs internally — no hardcoded public IP dependencies
  • DNS cutover is the only external change
  • Worst case: reinstall Proxmox 8 and repeat
  • IPMI available via GTHost panel for out-of-band access if needed
  • Proxmox 9 ships with kernel 6.14, LXC 6.0 — no API changes required