WPCloud Deploy is a WordPress plugin that allows you to create WordPress servers at cloud server providers such as DigitalOcean, Linode, AWS and others.
But it does so much more than just create servers. Once a server is created you can:
Add multiple WordPress sites
Use a centralized dashboard to manage multiple sites and multiple servers across multiple cloud server providers.
Perform WordPress specific actions on sites
It is extensible with hooks and filters that allow developers to add their own cloud server providers.
Additionally, products such Advanced Custom Fields (ACF) and Admin Columns Pro can be used to customize the data that appears for each server and site.
And, because it’s a WordPress plugin developers can integrate data from other popular WordPress plugins or send data from it to those other plugins. This allows developers and admins to create a centralized dashboard that pulls together data that includes their server and site data – something that isn’t possible or would be quite difficult with SAAS products.
One of the funky things with a plugin such as this one though is that you need an existing WordPress site in order to use it. Which makes it a little bit meta! You can learn more about this on the Requirements Page.
Loosely Coupled Connection To Server
The WPCloud Deploy plugin is in a “loosely coupled” connection to your cloud server. This means that you or your cloud provider can make changes to the server without the WPCloud Deploy plugin knowing about it. It is important that you do not do this unless instructed to by one of our support staff.
Still, stuff happens and the plugin can sometimes recover. Some examples where recovery is possible are:
You or the cloud provider turns off the server but WPCloud Deploy still thinks its turned on. The server list will still show the server as active. Once the server is turned back on, it will be back in sync with the plugin.
The cloud provider can change the IP address of the server. You can fix this by going to the server screen and updating the IP address there. If you do not do this all actions the plugin tries will fail.
As we communicate with the server to deploy new sites and perform other tasks, we sometimes need to connect back into the plugin’s site to update status and error data. This means that you cannot install it on a local server. The server must be accessible via the internet – there’s a little more information about this at the bottom of our requirements page.
To get started, you need to:
Make sure you have at least one SSH public/private key pair at your cloud provider (Digital Ocean, Linode etc.)
Upload and activate the plugin to an existing WordPress Site
Configure a connection to your Cloud Server provider
Installing the plugin is performed just like any other WordPress plugin:
Download the .zip file from our site
Go to the WordPress Plugins menu
Click the Add New button.
Click the Upload Plugin button at the top of the Add Plugins page.
Click the Choose File button, navigate to the .zip file from step 1 and then click the Install Now button.
After the upload is complete, click the Activate Button.
You should now see an alert at the top of the screen indicating the the METABOX.io plugin in needs to be installed. You should go ahead and click on the link to install it. Then make sure it gets activated!
At this point the plugin is installed and ready to connect to DigitalOcean. But first though, you should add an encryption key to wp-config.php.
Once the plugin is installed and activated you should add an encryption key to your wp-config.php file. If you don’t do this now, api keys, private keys and other sensitive data will be stored without encryption in your database. If you add the key later you will have to re-enter your api keys and private key information.
define('WPCD_ENCRYPTION_KEY', 'your very long encryption key goes here');
For this section, we’ll assume you’re using DigitalOcean as your cloud server provider – if you’re using a different provider and have installed and activated the plugin for them, just substitute your provider for DigitalOcean in the instructions below:
It is very important that you do this BEFORE you proceed to the next step. The reason is that once you add your API key to our plugin, it will attempt to retrieve your SSH keys and it will cache them. If you then proceed to change or add new keys, you’ll need to wait until the cache times out (around 15 minutes) before you’ll be able to see the new keys in WPCloudDeploy.
Create an API key at Digital Ocean – you can do this inside your DigitalOcean dashboard.
Go to the settings screen under the WP Cloud Deploy menu option
Click on the Cloud Providers tab and fill out the API Key field then click the save button at the bottom of the screen.
Now, the SSH key dropdown will be filled in with the keys you uploaded to DigitalOcean. Select one of them. If you do not see this dropdown, you can try one of the following:
Click the SAVE button again – sometimes you just need to query the cloud provider a second time (some of them perform a sort of micro-caching)
Wait 15 minutes and try again – see the first step above to understand why this might work.
Add the private key portion to the PRIVATE SSH KEY box. It is very very important that you make sure the private key data matches the public key you selected in the prior step.
Add your private key password if any.
Save the settings.
Now you’re ready to quickly run through the steps to get your first server and site up and running.
Create Your First Server & Site
To create your first server:
Go to WPCLOUD DEPLOY->ALL CLOUD SERVERS.
Click the DEPLOY A NEW WORDPRESS SERVER at the top of the screen.
Follow the instructions on the screen and then go get a cup of coffee – it’ll take about 20 minutes for the server to be deployed.
To create your first site after creating your first server:
Go to WPCLOUD DEPLOY->APPLICATIONS
Click the INSTALL WORDPRESS button in the Server Actions column.
This should be at most a five minute process.
We have a couple of articles that help you set up your new server and site after they have been deployed: