Bootstrapping a WordPress Server

I recently decided to (re-)launch my personal website, given that recruiting season is starting in a few months. I previously ran a static site through Github Pages, but after several years of alternately building my own frontend and trying out (usually buggy) open-source themes, I decided I wanted to take the simpler route and launch my own WordPress installation.

After launching a DigitalOcean virtual machine, running Debian Stretch, I loaded it up with standard system administration tools. I obtained certificates via Let’s Encrypt and started up Nginx and MySQL, not to mention an FTP server and a private Jupyter notebook server. Then, faced with the decision of how to configure a web server, I opted to run with WordPress. I’d used their hosted option previously, but had avoided it for the last several years given my general lack of interest in PHP (something that hasn’t changed.)

Tired of weeding through npm modules in search of a working NodeJS blogging engine, I decided to offload the work of mobile optimization and frontend scripting to WordPress’s pre-built themes. I give them a lot of credit for their ease of set up–aside from some quirks specific to my Nginx configuration, I had the administration panel running well within their five minute benchmark.

I was skeptical of their commenting system, at least in contrast with newer alternatives like Disqus. However, times have changed, and Disqus seems to automatically include “sponsored links” (read: advertising) for free users, which nixes it as an option. I’ve left commenting disabled as a result, though I may revisit that going forward.

Last, mostly out of curiosity and not necessity, I decided to put my entire domain behind Cloudflare’s CDN and DDoS protection, which can be done for free (though with limited configuration options.) It took no more than five minutes to get onboarded and configured, and that was mostly spent waiting for GoDaddy to transfer nameservers.

In total, from launching the server to configuring Cloudflare, the process took no more than ten hours, and much of that was spent tuning configuration options and reading the guts of various documentation pages. For all the managed blogging options out there, self-hosting seems more viable than ever, due to the ease of installing and configuring most requisite plugins.