Hosting a WordPress blog on Digital Ocean

I’ve been running Kenst.com since 2009. While the content has changed over time, the site has remained a blog. Kenst.com has gone from self-hosted on a Windows Home Server in my living room, to Blogger, and ultimately to WordPress. It’s been migrated to and from so many different hosting providers over time that I’ve lost count.

For a time all my sites were hosted on a single “shared” plan. This meant all the sites shared the quasi-dedicated resources of the plan. The problem came when Kenst.com would take the full allocation of memory and crash everything. Even with Cloudflare caching the top pages the traffic was too much. It was time to get a little more serious about hosting.

In early 2019 I began playing with WordPress on a Digital Ocean droplet. (Droplet is their cute name for a virtual machine). I opened an account using a promo code that got me some free time and began spinning up droplets with WordPress from their prebuilt marketplace apps. (If you are interested here’s a code for $100 free. Try it for yourself).

Initially it was slow going. Every time I spun up a droplet, a few days later it would be taken offline. Somehow the droplet would be compromised and used to send malicious requests. (To this day I have no idea how). After some reading, I found the secret: I needed to secure the droplets behind a firewall and lock access via ssh keys. Turns out when you are running things on your own (not using a managed service) you have to deal with problems like this on your own. Live and learn.

I added a firewall, put the droplet behind it, re-established my CDN and this is roughly what it looks like:

Network layout for Kenst.com

After having hosted WordPress on a digital ocean droplet for over a year now I can say I’m very happy with how things work. The cost is quite worth it: $6.50/month which includes splurging on automatic weekly backups. I also occasionally take snapshots before doing bigger upgrades. I have yet to get my hands dirty and actually use the DigitalOcean API but it’s on my todo list.

Blogging is an excuse to write more. Writing is a great way to think clearly about a subject. Running a website on a (small) Linux droplet is a starting point to learn more about the ops side of the world. Here’s to the journey!