Files
hermes-skills/skills/devops/server-architecture-plan/references/consolidation-migration-plan.md
T

2.2 KiB

Consolidation & Migration Plan

Strategy

Target: Move all Hetzner workloads onto netcup root servers. Hetzner's Jul 2026 pricing makes new Hetzner VPSes uneconomical (3-5x netcup for equivalent compute).

Keep at Hetzner: app1-bu (warm standby), tony-vps (Anthony's box)

Netcup target servers

Server Tier Purpose Est. Cost/mo
Core (exists) RS 2000 (8C/16G/512GB) Hermes, portal, Docker, misc services ~$20
Monitor (new) RS 1000 (4C/8G/256GB) AI/LLM, monitoring, automation ~$12
Web (new) RS 1000 (4C/8G/256GB) WISP, web apps, docs ~$12

Migration phases

Phase 1 — ai.itpropartner.com (CRITICAL: 92% disk)

  • Containers: LiteLLM, Open WebUI, Ollama, Qdrant, Caddy
  • Move to: Monitor (if exists) or Core temporarily
  • Method: docker-compose stack transfer
  • Disk issue: 199G of 226G used. Ollama models + Qdrant vectors are the likely culprit

Phase 2 — unms.forefrontwireless.com + unifi

  • unms: 9 containers (UNMS/UISP, UCRM, RabbitMQ, PostgreSQL, Netflow)
  • unifi: Native app + MongoDB + MariaDB
  • Move to: Web (new RS 1000)
  • Method: docker-compose for UNMS, package migration for UniFi

Phase 3 — hudu.itpropartner.com

  • 5 containers: Hudu app, SWAG certbot, PostgreSQL, Redis
  • Move to: Web or Monitor (co-locate)
  • Method: docker-compose stack transfer

Phase 4 — n8n, docker host, fleettracker360

  • n8n: 2 containers (n8n + PostgreSQL)
  • docker: 7+ containers (NPM, RustDesk, Uptime-Kuma, StrongSwan)
  • fleettracker360: Traccar (Java, 26+ tracking ports)
  • Move to: Core (has capacity: 6% disk, 8 dedicated cores)
  • Method: docker-compose stacks + Traccar Java migration

Phase 5 — wphost02 (review)

  • RunCloud + WordPress sites (Apex, BoxPilot, etc.)
  • Option A: Move to Web (rsync + DB dump)
  • Option B: Stay at Hetzner — keep simple

Key considerations

  • netcup provisioning via SCP REST API: servercontrolpanel.de/scp-core/api/v1/
  • Auth: Keycloak OIDC password grant (customer# + CCP password)
  • New netcup root servers take ~5-15 min to provision
  • DNS needs updating at SiteGround after each migration
  • Test each service for 24h before decommissioning old box