Deploying WordPress on DigitalOcean

At Stride we use DigitalOcean Droplets connected to a server management service for the majority of our hosting needs. This gives us a great balance between the flexibility and access of a self-hosted VPS whilst still benefiting from some of the features of a fully managed plan, such as automated security updates.

However, when deciding how to host this blog I wanted to keep things simple and try out a different approach. DigitalOcean has a range of ‘1-Click’ installs which will automatically setup all the software needed for your chosen app on one of their Droplets.

The WordPress package installs the following:

  • WordPress
  • Apache
  • MySQL server
  • PHP
  • Fail2ban
  • Postfix
  • Certbot

If you’ve set up Droplets before then the first part of the install will be familiar. You can choose your plan and resources, server location and add an SSH key.

Once the Droplet is created you need to login via SSH to run the install script. However, it is important to note if you are going to use a custom domain that you should point it to your new Droplet’s IP address before this step. This will make setting you WordPress base URLs and SSL much more straight forward. If this is just an experimental install you can just use your Droplet IP address instead.

Next, you configure your admin account details and a fresh install of WordPress will be created.

Security Considerations

These quick installs are a great way to get started or experiment with apps you haven’t used before, but it is important to note that there are some long term security considerations.

In the case of the WordPress install it does set up UFW firewall, but you will not receive any on-going security updates. There is some good general advice in setting up extra security in this article.


Update: I did run into a couple of issues with performance using this install method. I have increased the Droplet resources to 2gb, which appears to have fixed things for now. It feels like a basic 1gb Droplet should be able to handle a basic WordPress install, but I had an issue with MySQL running out of resources, which in turn led to the database becoming corrupt.


Since writing this post, I have moved to a managed host to address the issues outlined above.

Leave a Reply

Your email address will not be published. Required fields are marked *