DocHub
Why and how we migrated from DigitalOcean to OVH VPS servers

Server Migration Overview (2026-02-25)

Why We Migrated

Two DigitalOcean droplets were replaced with OVH VPS servers for better specs at lower cost:

Metric DO n8n-dev ($12/mo) OVH2 Dev ($45/mo) DO worker-1 ($80/mo) OVH3 Worker ($45/mo)
CPU 1 vCPU 12 vCPU 4 vCPU (HDD) 16 vCPU (NVMe)
RAM 2 GB 45 GB 8 GB 61 GB
Disk 25 GB 290 GB 90 GB HDD 339 GB NVMe
Cost $12/mo $45/mo $80/mo $45/mo

Net result: Better specs across the board, paying $90/mo instead of $92/mo.

What Was Migrated

DO n8n-dev (68.183.83.159) → OVH2 (15.204.10.51)

12 Docker containers migrated:

  • 4 N8N instances: n8n, n8n-dev1, n8n-dev2, max
  • Infrastructure: postgres, caddy, portainer, watchtower
  • Services: nocodb, qdrant, python-svc, n8n-audio-server
  • 10 Docker volumes transferred (3.3 GB total)
  • 4 bind mounts: nginx-audio-server, nocodb_data, Caddyfile, python-svc source

DO worker-1 (159.203.80.93) → OVH3 (15.204.11.95)

  • N8N production: 19 workflows (14 active), SQLite database (997 MB), binary data (108 MB)
  • Ricoya app: Next.js food delivery platform via PM2 + nginx
  • Data backup: January 2026 n8n backup preserved
  • API keys: Mistral + OpenAI credentials in .env

Migration Method

Data was transferred via SSH tar pipes (source → local → destination):

ssh source 'tar czf - /path' | ssh dest 'tar xzf - -C /path'

Docker volumes were transferred by tarring the volume data directories directly. All images were pulled fresh (latest versions) on the destination servers rather than transferring old images.

Post-Migration

  • All DNS records updated in Cloudflare (lifeonroatan.net + ipnoelp.com)
  • TLS certificates: Caddy auto-provisioned on OVH2, Let’s Encrypt/certbot on OVH3
  • Both DO droplets destroyed, reserved IPs released
  • Estimated monthly savings: $2/mo with massively better specs