Migrating EE/VPS to another provider

I have an Ubuntu 16.04 VPS from OVH. All set up, including firewalls and other settings on the VPS itself and I have EE installed with a couple of sites.

How do I migrate EVERYTHING to another provider (Linode)? Is there a ‘snapshop’ option where I can just copy the whole VPS to Linode? The Linode VPS will have better resources (RAM, CPU cores, Disk), so should I update any settings?

Is the ee site copy command ready yet? There’s a mention of it here, but no official documentation or anything.

So what’s the best way of doing this? Any tips/tricks?

You’ll have to do everything again. It’s impossible to move a snapshot from one provider to another (technically, perhaps, I’m wrong; but I’m talking about commercial policies that prevent companies from interacting at this level).

Your best shot, IMHO:

  • mysqldump your database at OVH;
  • ee site create at Linode;
  • rsync all your htdocs from OVH to Linode, including your database dump;
  • restore the dump at Linode;
  • change DNSs.

If your sites have LE certificates include:

  • rsync /etc/letsencrypt from OVH to Linode;
  • ee site update --le at Linode.

At this last step EE will ask you if you want a new certificate or just reinstall existing one. Just reinstall existing, because your DNS probably won’t be propagated yet, and LE would fail.

Certainly I spent more time writing this reply (and you reading) than you’ll spend to do all the mentioned steps. :slight_smile: Don’t be afraid.


In my opinion, you should try with an OVH Public cloud instance instead of linode. My own benchmarks CPU & Disk :

1 Like

Can’t get rsync to work right. I have disabled root logins on both servers and use SSH keys on both servers.

It always says “Permission denied…”

Any help?

Try to use the user www-data for rsync. As root create the folder /var/www/.ssh and change owner to www-data

mkdir - p /var/www/.ssh
chown -R www-data:www-data /var/www/.ssh

Then login as www-data

su - www-data

Generate ssh keys and send the public key on the remote host :

ssh-keygen -b 4096
ssh-copy-id -p XX username@remote_host

Then on the new host you should be able to use rsync :

rsync -avz --human-readable --progress www-data@remote_host:/var/www/yourdomain.ltd/htdocs/ /var/www/yourdomain.ltd/htdocs/

If you use another port than 22 :

rsync -avz -e 'ssh -p XX' --human-readable --progress www-data@remote_host:/var/www/yourdomain.ltd/htdocs/ /var/www/yourdomain.ltd/htdocs/