We get asked a lot about migrating sites over to our platform and it's a tricky one for us to answer as there's no 'one size fits all' answer.  So we decided to put this together to give you some suggestions for how you could do it and you can see which one fits you best.  That said, please bear in mind that if you take out a new server then we'll move that site over for you... we'll take the strain and take away your pain!


Before I go in to any detail, I would like to be clear that these are suggestions and guides only.  We're not liable if anything goes wrong, please check all the commands you use before running any.  


So, before you start, where's the site hosted now and what kind of access do you have?  For example, if you only have access to the WordPress admin area then the only real option available to you is a WordPress plugin.  There's not one that we specifically recommend and unfortunately we can't support them, you'll need to go to the plugin provider for support.  The plugin will create a file which contains the site files and the database.  You'll then need to install WordPress on the destination server, log in to WordPress admin area, install that same plugin and import the file.  A couple of things to bear in mind, these files can be quite large, so may take some time to download, and may require tweaks to the upload limit on the site on the destination server (we've got a guide here).  Some plugins will charge, or only allow you to create files of a certain size for free so keep an eye on that.


Is the site currently hosted on a cPanel server?  If so then cPanel have a nifty built in feature called Backup.  Go to the cPanel for the site and look for the icon called BACKUP.  Under the heading Download a Home Directory Backup, click the Home Directory button and the download will start.  This file will contain more files than you need, but we've found it works more consistently than other transfer methods from cPanel.  While that's downloading scroll down to the Download a MYSQL Database Backup and download all the databases shown.  The databases download in a format that you can just import them in, but the site files will need unzipping (you may need to install 7zip).  Open the Home Directory Backup file once downloaded and just extract the public_html folder.  The contents of this folder needs to be uploaded to the PUBLIC folder on the Nimbus server, the easiest way is probably FTP.  You can get your FTP details by following this guide.  While those are uploading you can use phpMyAdmin to import the databases (here's the guide).  The only other thing you should need to do is update the database connection string (this would be in your wp-config.php file for WordPress or env.php for Magento).


A couple of other methods for migrating a site over are FTP and SSH (using rsync).  If you're looking to FTP a site over then you can consider using our new tool, Migrate a Website from Another Provider. There's a guide here.  Otherwise, connect to the existing hosting server via FTP and copy down the contents from the document root to your local computer.  Then FTP to the Nimbus server and FTP them up.  For the database you'll need to get a dump of the database, you can use this guide as it should help even though it's geared to our platform, phpMyAdmin and the SSH commands should be the same or similar.  To import it in to the platform you can follow this guide.  You'll still need to update the DB connection string as above.


Lastly, SSH.  This isn't one for the faint hearted, you need to be fairly confident with your SSH skills to pull this one off, and this one is reliant on your having SSH access to the existing server, which not everyone has.  If you do then this could be the fastest method for you.  SSH to the existing host server and cd to the document root.  You need to create a database dump.  My favourite command for this is:


mysqldump -u username -p database_name > data-dump.sql


Username is the user for the DB, database name is the name of the database and data-dump.sql is what you want your DB dump to be called.  If you run this is then asks you for the password (the password for the username you've used). It will then create a DB Dump in the folder you've cd to (don't forget to delete this once the whole transfer process is complete).


Next, on the destination server you need to kick off the transfer.  Here's a suggestion for the command to run but please check that this works for you and your set up:


rsync -avz -e ssh root@xx.xx.xx.xx:/exsting/path/to/doc/root/ /home/storm/sites/websitename-com/public/


looking at this, it's an rsync command, it's set to use root (username) @ current hosts IP address (for example root@176.56.56.13).  The path that follows is the path on the exiting host server to the document root.  Then there's the path to the new document root on the Nimbus server.  You'll need to enter the root password when you run the command, but it should then transfer the files over, including the DB dump you took earlier.  Once it's complete SSH to the Nimbus server and cd to the document root.  You then need to import the DB dump to your database, you can follow this guide for that (command line commands at bottom of page).  You will still need to update the DB connection string as above and reset the permissions to the website though the platform once the transfer is complete (guide for resetting permissions).


As far as troubleshooting the SSH method, if you don't have the root password on the existing host you can use the one you use for SSH access, and the key thing is to make sure your paths are correct.  There's no 'edit, undo' if you copy them to the wrong folder.  I can not stress enough.... check everything!