Docs / Migration Guides / Migrate from Hetzner to Kazepute

Migrate from Hetzner to Kazepute

By Admin · Mar 15, 2026 · Updated Apr 23, 2026 · 397 views · 2 min read

Why Migrate from Hetzner?

While Hetzner offers competitive European hosting, Kazepute provides North American infrastructure with personalized support and integrated management tools. This guide covers migrating your Hetzner Cloud servers to Kazepute Breezes.

Migration Strategy

  • Parallel setup: Build the target environment on Kazepute while Hetzner remains active
  • Data sync: Use rsync for continuous file synchronization
  • DNS cutover: Switch DNS when everything is verified on Kazepute
  • Fallback period: Keep Hetzner for 72h post-migration

Step 1: Inventory Your Hetzner Setup

# List all services
hcloud server list
hcloud volume list
hcloud floating-ip list
hcloud load-balancer list

# Document server specs and software
ssh root@hetzner-ip "
    cat /etc/os-release
    dpkg -l | grep -E 'nginx|mysql|php|redis|node'
    cat /etc/nginx/sites-enabled/*
    crontab -l
"

Step 2: Deploy Kazepute Breeze

# Match specs from Hetzner:
# CX21 (2 vCPU, 4GB) -> equivalent Kazepute plan
# Same OS version for compatibility
# Note new IP address

Step 3: Replicate Software Stack

# Export package list from Hetzner
ssh root@hetzner-ip "dpkg --get-selections | grep -v deinstall" > packages.txt

# Install on Kazepute (review list first, skip Hetzner-specific packages)
sudo apt update
cat packages.txt | awk '{print $1}' | xargs sudo apt install -y

Step 4: Database Migration

# MySQL
ssh root@hetzner-ip "mysqldump --single-transaction --all-databases" | \
    mysql -h localhost

# PostgreSQL
ssh root@hetzner-ip "sudo -u postgres pg_dumpall" | \
    sudo -u postgres psql

Step 5: File Transfer

# Initial sync
rsync -avz --progress root@hetzner-ip:/var/www/ /var/www/
rsync -avz root@hetzner-ip:/etc/nginx/ /etc/nginx/
rsync -avz root@hetzner-ip:/etc/letsencrypt/ /etc/letsencrypt/

# Final sync (just before DNS cutover)
rsync -avz --delete root@hetzner-ip:/var/www/ /var/www/

Step 6: Hetzner Volume Data

# If using Hetzner volumes for data storage:
rsync -avz root@hetzner-ip:/mnt/volume-data/ /data/

# Create equivalent directory structure on Kazepute
# Update application configs to reference new paths

Step 7: DNS and SSL

# Transfer DNS to Cloudflare if using Hetzner DNS
# Update A records to Kazepute IP
# Re-issue SSL certificates:
certbot --nginx -d example.com

Post-Migration

  • Verify all services are operational
  • Test application functionality thoroughly
  • Set up backups and monitoring on Kazepute
  • Configure firewall rules
  • Cancel Hetzner servers after confirmation period

Was this article helpful?