WPCloud Deploy Documentation

Introduction, Installation & Quick Start Guide

Table Of Contents

  1. Introduction
  2. Important Concepts
  3. Quick Start
  4. Next Steps
  5. Notes
  6. Other Resources

Note: If you are a first time user of WPCloudDeploy, one of the services we offer is a FREE 1-on-1 walk-through so that you can get up and running fast!  We’ll help you install the plugin, configure your ssh keys and get your first server deployed.  Just open a support ticket to request this service!

Introduction

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
  • Gain advanced functions such as the ability to push sites between servers, sync entire servers and more

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 appear 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.


Important Concepts

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.

Callbacks

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 and the REST API must not be blocked by your firewalls – there’s a little more information about this at the bottom of our requirements page.


Quick Start

To get started, you need to:

  1. Make sure you have at least one SSH public/private key pair at your cloud provider (Digital Ocean, Linode etc.)
  2. Upload and activate the plugin to an existing WordPress Site
  3. Configure a connection to your Cloud Server provider
  4. Install your first server
  5. Install your first site.

These steps are explained in more detail below.  If you run into any issues or errors, check out this troubleshooting document to see if it helps.  Otherwise just contact our tech support team and we’ll jump in to get you all squared away.

And, if you’re a new customer, we will be happy to walk you through this entire process with a 1-on-1 web/screen sharing session.  Just ask us and we’ll make an appointment.

Installation and Activation

Before proceeding with installation, please read the full requirements here.

Installing the plugin is performed just like any other WordPress plugin:

  1. Download the .zip file from our site
  2. Go to the WordPress Plugins menu
  3. Click the Add New button.
  4. Click the Upload Plugin button at the top of the Add Plugins page.
  5. Click the Choose File button, navigate to the .zip file from step 1 and then click the Install Now button.
  6. After the upload is complete, click the Activate Button.
  7. You should now see an alert at the top of the screen indicating the the METABOX.io plugin 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.

Encryption Keys

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');

Note: All the possible wp-config.php settings are documented on this page.


Next Steps

Connect To Your Cloud Server Provider

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:

  1. Make sure you have at least one SSH key pair installed at Digital Ocean.  If you don’t have a key pair, use this guide to learn how to generate one.  And this one explains how to upload your public key to the Digital Ocean control panel.
    1. 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.
  2. Create an API key at Digital Ocean – you can do this inside your DigitalOcean dashboard.
  3. Go to the settings screen under the WP Cloud Deploy menu option
  4. Click on the Cloud Providers tab and fill out the API Key field then click the save button at the bottom of the screen.
  5. 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:
    1. 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)
    2. Use the CLEAR CACHE button at the bottom of settings screen for the provider
    3. Wait 15 minutes and try again – see the first step above to understand why this might work.
  6. 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.  View important notes about private ssh keys.
  7. Add your private key password if any.
  8. 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:

  1. Go to WPCLOUD DEPLOY->ALL CLOUD SERVERS.
  2. Click the DEPLOY A NEW WORDPRESS SERVER at the top of the screen.
  3. 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:

  1. Go to WPCLOUD DEPLOY->APPLICATIONS
  2. Click the INSTALL WORDPRESS button in the Server Actions column.
  3. This should be at most a five minute process.

Fine Tune Your PHP & WEB SERVER Configuration

WPCD depends on using SSH to connect to your servers. But the PHP and Web Server processes have short timeouts that need to be increased.  It they’re not increased then the amount of time that a connection to one of your managed servers can remain open will be 30 seconds or less – not enough time to handle certain longer running tasks.

We have added instructions to the WPCLOUDDEPLOY->SETTINGS screen to help you increase your timeouts on PHP and various web servers.  Please make sure you review these and update your server configurations.

Firewalls & Proxies

If you place your WPCD server behind a proxy such as CloudFlare then you need to make sure that the

 /wp-content/plugins/wp-cloud-deploy/includes/core/apps/wordpress-app/scripts/v1/raw/ 

folder is whitelisted so that your new servers can access it. But it’s probably easier to just allow all access to it – it’s just text files in there that happen to contain our bash scripts.  These scripts are part of what makes stuff happen – such as installing WordPress on your server.

If you run a firewall plugin on your WPCD server you should also make sure that folder is always available to the outside world (or at least every server IP you’re managing).

You will also need to white-list the call-back endpoints- they all start with or contain /wp-json/wordpress-appFor this, we would recommend that you whitelist your individual server ip addresses instead of leaving it open.

Notes

You need to install the plugin in an existing WordPress site.  However, we recommend that you do NOT install it on sites hosted at places like WPEngine since these services block access to the standard ssh ports.  Need a new site to install this on?  This document outlines some options.

Other Resources

We have a couple of articles that help you set up your new server and site after they have been deployed:

 

Share:

Copyright © WPCloudDeploy 2020