Why go with BlueHost or SiteGround when you can build your own WordPress blog in DigitalOcean in as quick as 15 minutes?
Disclaimer: This post may contain affiliate links. If you click on said links and subscribe or purchase, I may earn a commission at no cost to you. I only recommend affiliate links to products I personally use.
WordPress is the biggest CMS in the world, reportedly 43% of all sites use it. It is pretty accessible, and there are a lot of web hosts out there that offer WordPress hosting.
One of my blogs has been with a hosting provider and I’ve not had the inclination to migrate it to self-hosting anytime soon. However, for my other blogs, I’ve checked how feasible it would be if I tried running it on my own, but with a third-party PaaS provider like DigitalOcean. I found that it is easy to set up and is cheaper as well — costing me around 6 USD a month.
This is why I’m writing this beginner’s guide so you can easily set up a WordPress blog in DigitalOcean.
Differences between Native, SaaS, and PaaS type hosting
WordPress is actually software and runs using a stack of open-source services. You can download it on your home PC and build an in-house website. But if you want to host it publicly, you have different options depending on your needs.
Native / On-Premise Hosting
Native or On-Premise is the most technical as you need to manage the servers that run, not only the WordPress instance. So you need to take care of the Internet connection, hardware provisions, operating system, upgrades, backups, domain hosting, runtimes, middleware, and other components on your own.
This is also possibly the most variable in terms of price as you run with your own hardware. It can be as complicated as instances hosted in data centers, but it can also be as simple as an instance hosted in a home server with an ISP connection.
SaaS Hosting
Software-as-a-service or SaaS is probably the easiest as the whole operation is taken away from the equation. The hosting will manage everything that’s needed to run an actual WordPress instance. There are web hosting providers that offer WordPress hosting specifically. Some examples are Bluehost and SiteGround.
There are also traditional web hosting companies that provide you with a “panel” application that allows you to install or manage your web application and one of these can be WordPress. These are more vanilla but can be more technical for the average user.
In terms of cost, this is typically the highest because you only need to manage the CMS itself. A benefit to this is user-friendliness and accessibility in exchange.
PaaS Hosting
Platform-as-a-service or PaaS allows management of the server instances themselves but not the underlying infrastructure. It enables you to manage the WordPress application and the underlying software as well, like the databases, PHP runtimes, and the web server. Typically this means you have root access to the OS layer, but don’t need to manage the virtual compute instance itself. Some examples are DigitalOcean or Linode.
This is a bit different from Infrastructure-as-a-service (IaaS) where you can also control the virtualization layer, like what specs you want the compute instance to be, down to the CPU, RAM, and OS flavor. Examples of IaaS providers are the AWS and Azure ecosystems.
Both of these types tend to be cheaper, as they typically have more things that need to be maintained by the user. However, we can also leverage the fact that once you install the software needed, WordPress is flexible enough to manage updates from within its interface. Also, backups via snapshots are easier to restore nowadays in this age of virtualization — you don’t need to run SQL scripts to restore the database unlike in the old days. A backup restore can be as simple as restoring a snapshot of the instance.
Pricing is also based on usage per time, rather than a set subscription per month. This means that these tend to be cheaper in the long run.
In this tutorial, I’m focusing on using DigitalOcean as a PaaS in starting up and operating a WordPress instance.
Requirements to Start
You need two things before you can start:
- A DigitalOcean account – You can use my referral link to get USD 200 credit, good for 60 days
- A Domain Name via a third-party service like Namecheap
DigitalOcean has a variety of services, but mainly we are focused on their droplet services. These are mainly compute instances and we can host a lot of different services here, not only WordPress. If you use my referral link above, you will also get a USD 200 credit, which allows you to experiment and host your site for free for a couple of months.
A domain name is important as it gives your website a name literally (e.g. this blog is technosaurus.patrickty.com). Otherwise, you would need to enter an IP address to visit your WordPress site. Personally, I use Namecheap as my domain name provider, and I have multiple domain names for my different blogs.
You will need to buy your domain name first, so think about a good name for your blog. I suggest you focus your concept on a niche, but it should not be too restricted to this niche so that it would give you a chance to branch out on broader topics in the future.
An example of a niche topic is a specific breed of dog like huskies or labradors, but you can choose a broader domain name centered on dog topics like canine-central.com.
Take note that both DigitalOcean and your domain name hosting would likely need a credit card for payments.
Setting up your DigitalOcean Droplet Instance
Once you’ve registered in DigitalOcean, you will likely have your free credits to spend, especially if you used my link. Because of this, you would be able to test and experiment with different instances before you finalize your setup.
Setting up WordPress from the DigitalOcean Marketplace. You can use the premade images in the DigitalOcean Marketplace as this is the simplest way to install WordPress to your DO droplet. Once installed, the instance will already contain the whole WordPress stack without you needing to fiddle around with any software or settings.
Step-by-Step Guide:
- From the DO main page, click on the Marketplace on the bottom left sidebar.
- This will open the DO Marketplace page. Search for WordPress and from the WordPress Solution page, click on “Create WordPress Droplet”.
- This would trigger the droplet instance creation page.
Configuring the Droplet. Creating the droplet instance will open a wizard that will ask you for different settings of the droplet. Complete the settings you need for your droplet. Once finished, you will be able to see the droplet load online.
Droplet Settings:
- Choose Region – Choose here the nearest region from your intended audience.
- Choose Size – I recommend here the Basic Droplet Type with the Regular CPU Option. Choose the lowest plan as the specs should suffice for a small blog.
- Choose Authentication Method – Select Password here as it’s easier to set up. Take note of the Password as you will use it later.
- Other Options – If you want, you can enable backups as any blog will need those sooner or later. You can also opt-out for now as it is easy to enable it later.
- Hostname – Better rename this to something that would be easily remembered.
- Project – This is used in DO internally as a project may contain different components, you can add a new one to include your blog.
Connecting your WordPress Droplet to your Domain
At this point, the WordPress Droplet has already been set up, but we will need to connect it to our domain and also enable HTTPS. HTTPS is now a requirement for SEO ranking and also makes browsing your blog secure for users.
Setting up your domain. As mentioned in the requirements, you need domain hosting to be able to give your blog a name. You need to copy the IP address of the completed droplet instance to map it to the domain name.
From your domain hosting, go to the Advanced DNS section of your domain settings and create an A Record with your chosen hostname and IP address.
In our example, we linked A Record “blog” of my patrickty.com domain to the IP address of the droplet instance. This would make blog.patrickty.com open that particular IP address.
Note: If you want your blog to point to the main domain name like patrickty.com or www.patrickty.com, you can link the IP address to the A Records for “@” and “www” respectively.
Configuring the domain name into the WordPress instance. This is the final step before the hosting setup is complete. You need to finalize the settings via the console.
Step-by-Step Guide:
- From the DO admin page, look for your droplet, then click on the three dots on the right and click on “Access console”.
- On the Droplet Console section, log in as root and click on “Launch Droplet Console”.
- Follow through with the requests in the console. You will need to put in your email address, username, and password for the admin account in WordPress.
- The last step is the HTTPS/SSL setup with LetsEncrypt. This makes managing certificates easier as LetsEncrypt does it for you. You need to choose which domain names to activate HTTPS into.
- Once done, you can now visit your WordPress page via browser.
At this point, if you already know the ins and outs of WordPress the following sections should be familiar to you already.
Appendices
Configuring your new WordPress Blog
Once you’ve accessed your new blog, you can access the admin page of WordPress by adding “/wp-admin” at the end of your blog URL. In our example, the admin page would be “https:/blog.patrickty.com/wp-admin”.
From inside the admin page, you will be able to change different settings and install different themes and plugins to add functionality to your blog. I suggest you familiarize yourself with all of the settings as you are the admin owner.
My only hard recommendation is that you set your permalink structure to “Post name” as it would be SEO-friendly instead of the other options which only describe your posts as either a number or a datetime.
Some Helpful Themes, Plugins and Tools
Some ways to customize your WordPress blog are through themes and plugins. Themes change the appearance of your blog, while plugins add functionality to it. When you installed WordPress, some themes and plugins were included and you can always remove these if you want.
One theme I’ve used with my blogs is GeneratePress as it is fast, simple, and speedy. Also, their support is top notch and you can usually find what you need via Google with the keyword “GeneratePress”.
For plugins, these differ between my different blogs, but here are some common ones:
- A backup plugin like UpdraftPlus
- An SEO plugin like RankMath
- A cache plugin like W3 Total Cache
- A mailing list plugin like Convertkit or Mailerlite
- An antispam plugin like CleanTalk
As for tools, here are some that have helped me in creating designs and in research and writing in general:
- Canva for general publishing designs and images
- Coolors.co for finding color palettes for your blog design
- Unsplash or Pexels for finding free images to supplement your post
- Grammarly for grammar correction
As a matter of principle, I don’t use iterative AI (like ChatGPT, Jasper AI) for writing my blogs as I like the process of writing itself. I have found that these tools are good at writing general topics, but they are pretty bad at specific, technical writing. Probably given time I will try using such tools to generate outlines instead.
Adding an ECommerce Platform in WordPress
I plan to write a future in-depth post regarding this, so please let me know if you are interested in the comments!
Summary
I’ve talked about how to build your own WordPress from scratch in 15 minutes, using DigitalOcean and any third-party domain name hosting. These are becoming easier nowadays because of the ease of onboarding using PaaS tools like DO, compared with traditional hosting.
If you want something like a done-for-you setup, please contact me at inquiry at patrickty dot com.