Digital Ocean is a great web hosting solution for almost any WordPress site with an easy to use interface and a very low cost to the end user. They also use fast SSD drives and you can quickly spin up a new droplet (their fancy name for a vps server) in just a few minutes. They even have an option that will quickly deploy a vps server setup with Ubuntu and the latest version of WordPress on a 512mb server. And you can deploy a new virtual server with 512mb RAM for only $5 a month, which is all that is needed for a small site that uses little resources.
Last summer I was having some problems with my 3GB managed vps, I kept exhausting the memory on the server with my websites. I had numerous sites hosted on it and I’m sure I was using the entire 3GB of RAM. I wasn’t really interested in paying more money for a managed vps which also had a few other issues not relative to my maxing out the resources occasionally. But I was also a total newb when it came to administrating my own server. But, at $5 a month for a 512mb server I figured what the hell, let’s give it a shot and set up a droplet to play around with….
Diving Into The Ocean
At first the idea of administrating your own server can very intimidating especially for someone like myself who was totally green when it came to SSH command line Linux. First you’ll need an SSH client to connect to your vps/droplet. The terminal in the DigitalOcean interface works but I prefer to use Putty because it’s pretty standard (I had used it before,) free and simple to use. The Puttygen program will also generate SSH keys if you set up SSH keys which is beyond the scope of this article but you can find numerous tutorials online including at Digital Ocean itself which is a great source of Linux tutorials.
For the first month or so I just played around with the vps servers/droplets, creating new ones and destroying them when I was finished tinkering with them. I was soon doing some pretty neat stuff like using the Docker image and Github to pull in preconfigured WordPress & Nginx setups. The Digital Ocean Ubuntu image with WordPress on it is great for quickly setting up a quick single site on a VPS but I wanted something more like the traditional hosting panels I was used to at the time, mainly cPanel and DirectAdmin. I was also concerned about managing the updates and keeping the server secure. I still sometimes spin up a quick WordPress droplet to test something though.
Control Panels To the Rescue
The first free panel I found was Zpanel, which I’m still using to host a few WordPress sites, one of which has over 10,000 posts and fairly high traffic. I pretty quickly had Zpanel up and running on a Centos6 image and transferred my sites. I did have a few issues getting DNS to work with Zpanel but eventually figured it out. Soon after migrating the site with high traffic I had to bump up the server to 2GB of RAM after maxing the RAM out.
Zpanel is fairly easy to use even for a newb like myself but I never did have any luck getting email to send and receive via Thunderbird. I can use Zpanel’s webmail systems Roundcube or Squirrel Mail, but not being able to receive the messages in my Thunderbird email account kind of sucks. I’m sure there’s probably a solution to this issue somewhere but I’m not that concerned about it. The server is stable and pumps out the sites that are on it which is what I’m concerned about. There’s also enough resources to allow for plenty of overhead and growth of the sites which I was lacking before.
I wasn’t all that satisfied with Zpanel, especially the issues with email etc. and didn’t feel comfortable moving any of my client’s sites to a Zpanel setup. So I decided to splurge and got a licensed copy of cPanel from Buycpanel.com for $14.95 a month (the cheapest price I could find) and installed it on a CentOS 6.4 image. Cpanel installs everything fast and easily and after 20-30 minutes of it setting everything up you have your own cPanel web hosting with Web Hosting Manager to relatively easily configure it all. I recommend doing some research on configuring cPanel and hardening your server with IP tables and ModSecurity.
Overall cPanel seems like the most secure option and they proactively auto update it almost every night. I’m sure an advanced hacker could probably compromise it (please don’t) but most common forms of attacks seem to be blocked with a little bit of hardening. Also email worked correctly with Thunderbird right out of the box. If I remember correctly I did have to do some tinkering with SPF records to get gmail to not automatically flag emails from the server as spam. The cPanel setup also seems to use the least resources of all the panels I’ve tried. If I remember correctly it was idling at around 200mb of RAM memory before I started loading sites onto it. Still with over 10 WordPress sites running on it, I’m still only using about 50% of the RAM on a 2GB server.
The other panel I’m using which I’m also pretty happy with is WebUzo a free basic control panel from the makers of Softaculous, an application installation script used by many hosting companies. WebUzo sets up quick and relatively painlessly, is easy to configure and setup. I set up a single large intensive WordPress site with numerous features and a separate SMF forum on a 2GB RAM server. The webmail features didn’t work properly upon setup though, the site itself does send emails from the server just fine. I decided to bypass using the web mail by setting up a free email service that works similar to Google Apps and lets you use your domain as your email address called Zoho Mail which does all that I needed. Check them out if you need a nice, easy to use and setup email solution.
WebUzo works great as a control panel for a single WordPress site, I have no experience running multiple domains on it. Also if you want an easy way to install various applications or instances of WordPress you can purchase a license for their Softaculous installer for only a couple bucks a month.
I’m very happy with the quality of hosting DO provides and I’d recommend it to anyone. It’s the poor man’s Linode (which runs about twice the price) and Rackspace (which I can’t afford to look at.) Also if you’re looking for a viable alternative to pricier WordPress hosts like WordPress Engine you can fairly easily set up your own personal WordPress engine and enjoy most of the features they offer with the low Digital Ocean pricing structure.
Overall I have fewer issues than I did with my managed vps server and at a lower cost even with the cost of the licensed copy of cPanel included. I do recommend setting up some free server monitoring such as New Relic and there are a few sites that will do a free security scan on your server. Also most importantly back everything up, not only perform on site backups, make sure you have a viable off site backup. I recommend using a good cloud backup solution. In my last post I talked a little about the back up system I implemented on my sites the other day.
Now I’m finding other great uses for these servers beyond just hosting WordPress such as setting up your own OpenVPN Access Server and creating your own personal VPN solution. I’m also interested in learning how to use Docker more and Vagrant with Virtual Box.
If you haven’t moved to the ocean yet I’d recommend taking a swim, and if you enjoyed this article please click here and use my referral code when you sign up.