Getting Started

SpinupWP dashboard

Once you’ve signed up for SpinupWP and you’re ready to get started spinning up WordPress sites, the first thing to do is to click ‘Spin Up a New Server’ from the dashboard.

Provisioning Your First Server

You’ll need to choose a provider to host your new server. You can connect servers hosted at any provider to SpinupWP, but it’s especially easy to provision new servers with DigitalOcean.

SpinupWP add new provider

Adding a Provider

Let’s go ahead and connect to DigitalOcean. Before you start this process, you will need to sign up for a DigitalOcean account if you don’t already have one.

Give the new provider a name so you can easily distinguish it from the other providers on the account, eg. ‘DigitalOcean’. You will then need to enter an API token from your DigitalOcean account.

Generating a DigitalOcean API Token

  1. Login to your DigitalOcean account (or create an account if you don’t have one already)
  2. Click the API menu item in the sidebar
  3. Click the Generate New Token button
  4. Enter a Token name like “SpinupWP” or maybe “[Your Name] SpinupWP” if you share your DigitalOcean account with other people
  5. Make sure that Write is checked
  6. Click Generate Token
  7. You should see a generated key, click on it to copy it
  8. Paste into the API Token field in SpinupWP and save

Configuring Your Server

Server Size

Now you configure the size of the server and what DigitalOcean region it should reside in. We recommend production servers have 2GB or higher memory. Servers can always be upgraded to a higher size later. For more help choosing a server size, check out the Server Size doc.

We can also select to have DigitalOcean perform full-server backups at an extra cost. This is not to be confused with SpinupWP’s site backups feature which only backs up site files and database rather than the entire server.

SpinupWP add new server

Server Settings

Next you need to enter a hostname for the server, so that you can distinguish servers from each other. For example, if you are spinning up a new server for a client site ‘acmepublishing.com’, then using the domain name is recommended. If you are spinning up a server for your agency to use for a bunch of client staging sites, you might want to use something like ‘staging.acmecreative.com’.

SpinupWP new server settings

Database Settings

Lastly, you can choose which database server will be installed on the new server. We support both MySQL and MariaDB. WordPress works on both database servers, but if you are unsure which to use MySQL is a good default.

The database root password is generated for you, but you can change it to something else if you prefer. It’s important you note it down or store it in a password manager, for future reference.

SpinupWP new server database settings

Once you’re happy with the settings you can click ‘Provision Server’ and the server will start to be provisioned for you. This process takes, on average, around 10 minutes, but you don’t need to stay on the screen and wait, we will email you when it’s complete.

SpinupWP new server provisioning

The Server

The server is provisioned with latest stable software versions, with an industry best practice stack (Nginx, PHP-FPM) that is perfect for hosting WordPress sites.

If you want to understand more about how the server is set up and configured then we have some documentation to get you started, including understanding the system users, file ownership and permissions, as well as the paths and locations on the server.

If you want to dive a little deeper, then you can take a look at how we handle PHP pools, and get to grips with our caching model. There is a stack of documentation about servers as well.

Once your server is all set up, we can move on to the next part – adding sites.

Sites

Adding a Site

From the dashboard you can see your newly provisioned server listed. Clicking on the server name takes you to the screen where you can add new sites, and configure other settings for the server. Looking to migrate an existing site from another server? Check out our migration guide.

SpinupWP new server

Domain

Click ‘New Site’ to add a new site to the server. Enter the domain for the site (this can be a subdomain). This is the site’s primary domain. Once the site has been deployed you will be able to add additional alternate domains.

SpinupWP create new site

Installation

The next screen gives you the details for the A record that needs to be added to the DNS records for the domain at your DNS provider (SpinupWP does not handle DNS for you). This will need to be added before an SSL certificate can be generated. This step can be skipped and performed later.

SpinupWP new site DNS settings

Next you can choose which files to install for the site. You can choose between a new installation of WordPress (including a multisite network in both subdomain and subdirectory flavors), cloning an existing site from a git repository, or just a blank site with no files.

SpinupWP new site installation

A New WordPress Site

For a new WordPress installation, click ‘WordPress’. Here you can select a multisite install as well as the type of multisite; subdirectory or subdomain. Then enter a title for the site (you can change it at anytime via the WordPress dashboard once your site has been deployed) then fill out the email and username for the admin user. We create a strong password for the user but it can be changed here if needed. Make sure to note this password down somewhere (or save it in a Password Manager) as we won’t show it again.

SpinupWP new WordPress site

Deploy an Existing Site From Git

To install an existing site from a git repository, click ‘Clone a Git Repository’ and then enter the repository URL (only SSH repositories are supported). To authenticate with your Git provider SpinupWP needs to be able to communicate with the Git provider via SSH. We have instructions on how to configure the connection with several popular Git providers. Then enter the branch to be cloned. You can change this later at anytime.

You can run a deploy script after the repository has been cloned by entering the commands in the ‘Deploy Script’ text box. This is useful for sites that use Composer or for compiling assets, for example. You can also enable ‘Push to Deploy’ by checking the box below. Turning this on will generate a Deployment URL that can be used to automatically deploy your code as soon as you push to your repository and chosen branch. Find out more about configuring push to deploy.

SpinupWP new site Git clone

Database

Next you can either create a new database or choose to use an existing one on the server. For git repository and blank sites, you can choose not to have a database at all.

If you are creating a new database then here you can set the database name, the name of the new database user and password. Again, this password is already generated but won’t be shown again. Learn how to connect to your databases.

SpinupWP new site database settings

Settings

The next screen shows a username for the site (which can’t be changed later). Each site on your server has its own system user who has ownership permission of all the site files. Site users can SSH and SFTP to the server, but they will be restricted to the site’s directory. A pool of PHP-FPM processes also runs for each site as the site user. This provides security isolation between your sites.

You can then choose what version of PHP you want the site to run on. Selecting a PHP version here will not impact the other sites hosted on the server and you can change the version at any time.

The ‘Enable full page cache’ checkbox allows you to toggle page caching for the site. A full page cache can dramatically improve the performance of your site by quickly serving a previously generated page rather than executing PHP and querying the database. Not only will this improve your site’s load time, it will also increase the number of requests your server can handle. Enabling this option will configure Nginx FastCGI caching that is optimized for WordPress.

If this is a production site we highly recommend you leave full page caching enabled. If this is a staging/testing site, or performance isn’t a consideration, then you can disable full page caching. You can always enable/disable it later.

The ‘Enable HTTPS (SSL/TLS certificates)’ checkbox can only be checked if the DNS for the site has been verified. Turning this on will generate a free Let’s Encrypt certificate and configure Nginx to use it to serve HTTPS traffic. Regular HTTP traffic will be redirected to HTTPS. HTTP/2 will also be configured which will improve the performance of your site.

We recommend that all sites are deployed with HTTPS enabled, but you can enable it at any time.

SpinupWP new site settings

Site Confirmation

The last screen in the site creation process shows all the details of the site before it’s created, just to check to make sure everything is correct.

For git repository and empty sites, the WordPress constants to define the database credentials are displayed so you can copy them to your config file after deployment. There is also a list of required plugins for git repository WordPress sites, as well as instructions on how to configure them. These are plugins that are installed and configured with every WordPress site created and deployed by SpinupWP, but as the site is created and deployed via Git, you will need to install and configure them yourself.

SpinupWP new site confirmation

Editing a Site

Once a site has been created you can make amendments to certain settings by clicking on the site domain in the ‘Sites’ table for the server.

Settings

SpinupWP site settings

The ‘Settings’ screen allows you to change important information about the site. The ‘Domain’ is the primary domain your site is accessible from and can’t be changed. Changing a domain is complex and prone to breakage so we have disabled editing this setting, however you can manually change the primary domain if you really need to.

You can edit the ‘Public Folder’ for the site. This is the folder where your publicly accessible files are located. Anything within this directory will be accessible by the browser (except for hidden files).

Updating the Public Folder will configure the root directive in Nginx which is relative to /sites/{domain}/files. Therefore, setting a value of ‘/public’ will instruct Nginx to serve requests from /sites/{domain}/files/public. This doesn’t create the directory, nor does it move or delete any existing files.

If you have alternate domains and subdomains that point to this site, add them here. Alternate domains are usually used in combination with a CNAME entry added to your DNS. For example, if your primary domain is ‘example.com’ and you have a ‘www’ CNAME entry in your DNS then add ‘www.example.com’ as an alternate domain. Wildcard subdomains are supported.

You can change the PHP version at anytime without impacting other sites hosted on the server. We recommend that you always use the latest version available. For WordPress sites you’ll want to fully test your site after changing this value, because some older plugins are not compatible with newer versions of PHP.

You can also toggle full page caching for the site as described above.

This is also where the site can be deleted, along with the database and database user. Be careful here, deleting a site will permanently remove all site files and configs and they will not be recoverable.

HTTPS

SpinupWP site HTTPS settings

On the ‘HTTPS’ screen we can toggle an SSL certificate for the site to enable HTTPS. Turning this on will generate a free Let’s Encrypt certificate and configure Nginx to use it to serve HTTPS traffic. Regular HTTP traffic will be redirected to HTTPS. HTTP/2 will also be configured which will improve the performance of your site.

We highly recommend that all sites use HTTPS. Not only will it will improve the security of your site, but it can also help with SEO since HTTPS is used as a ranking signal. Note that some browsers will even flag sites as “Not secure” if they don’t use HTTPS.

SFTP & SSH

SpinupWP SFTP & SSH user settings

The ‘SFTP & SSH’ screen gives information about connecting to the server. The ‘Site User’ is important for connecting to the server. Sites deployed via SpinupWP are owned by a unique system user, known as a site user. Site users can SSH and SFTP to the server, but they will be restricted to the site’s directory. When making changes to a site, or running WP-CLI, the site user should be used. Find out more about site users.

SSH password authentication is disabled on all SpinupWP servers. Here you can select the SSH keys that should be added to this user to allow remote access.

Git

SpinupWP Git settings

The ‘Git’ settings screen allows you to change the settings for a Git repository site. You can change the repository URL, branch, deployment script, and toggle ‘Push to Deploy’. This screen will also show a list of required plugins for git repository WordPress sites, as well as instructions on how to configure them.

Site Backups

SpinupWP can perform automated daily site backups of your sites. Site backups are full backups of your site files (media, themes, and plugins) and database. Backups to Amazon S3, DigitalOcean Spaces and Google Cloud Storage are currently supported.

Email

Email servers are notoriously difficult to set up. Not only do you need to ensure that emails successfully hit your recipient’s inboxes, but you also have to consider how to handle spam and viruses (sent as email attachments). For that reason, SpinupWP does not configure your server to send or receive emails. Learn how to set up email sending for your WordPress sites.

Wrapping Up

It’s worth noting that although you can host multiple sites on the same server, depending on the size of the server, there might be performance issues with a large amount of sites.

That’s it, spinning up servers and sites with SpinupWP couldn’t be easier!

Ready to give SpinupWP a try?

Not sure if SpinupWP is the right fit for you? Send us an email at sudo@spinupwp.com and we’ll give you our no-BS opinion.