Wow, what a few days! I must be a sucker for punishment, as this was by far the biggest change I’ve ever made to my website. I certainly learnt a few new things, but there were quite a few challenges too. This is a summary of what I did:
Hosting change – I moved away from DigitalOcean to HostWorld (VPS-3 package). Both are VPS providers, and certainly DigitalOcean is fast, but their costs are a bit prohibitive for me where I need to add more storage etc. So a noticed a while back someone had recommended HostWorld, and there I could save about 30% with double the RAM and a good 50% more disc storage.
Hosting technology change – I was using Softaculous scripting as a sort of panel manager to install and upgrade all the services I ran. It generally worked very well, and included e-mail hosting, but it duplicates PHP and some other stuff, so depending on whether you are working via it or the command line, you have to be very careful what version of PHP you are running otherwise it can break things. My Drupal’s compose and drush commands ended up getting really broken, and I had to keep fixing it. Moving from Drupal 8 to 9 became impossible, and Drupal 8 was now at end of life. Although Softaculous is only $2 pm I thought maybe I should also try a change of technology on that front… so I decided to try running all my hosting services in separate docker containers. This took an entire day to get right (with wanting to have one shared MariaDB database for all my containers) as all the tutorials and videos mostly show single service setups. So I learnt a lot on this front and intend to do a video and post dedicated to just this factor. It was not all roses and sunshine though as I lost about 2 days trying to figure out how to rehost my e-mail, but I had a lot of complications with using the same base URL between my mail server and website, so had to abandon that for now. The main advantages for me with going with docker containers are, they are self-contained with everything they need to run, so I’m expecting (hoping) that updates will be easier and way quicker, and of course also that I have Nginx Proxy Manager now playing a central gatekeeper as far as managing access and redirects goes. They should also be easier in future to be migrated to other hosting providers.
Content Management System change – I was on WordPress way back in 2018 (as I found out from finding my old remote backups in DropBox) and I had migrated to Drupal for speed and flexibility (and of course I love to try new things), but like I said, the upgrades were becoming a nightmare. Drupal itself worked well, and I was very happy with it, but I had to decide whether to try running it in a container, or rather jump back to WP. I decided on the latter and bought an extension that did the conversion for me into a WP site. I spent another day or so getting the right plugins and doing the more notable fixes that needed to be done. It’s actually good to be back on WordPress, as there is a plugin for everything, although I do note that very few of the better ones are now truly fully free.
So apart from the learning curve needed to go from 15% docker knowledge to 50%, the usual problem with switching my domain name away from one provider to another also reared its head. It did not really result in any significant website downtime, but many may have noticed some images were not loading while the WP was resolving to a secondary domain name for a while. Once the DNS had settled down, and I set WP back to it’s primary domain name, it all looked good.
So what remains, is still some tweaking and tidying up (especially for the formatting of my big open source repository page), and I also need to finish spinning up my NextCloud, Wallabag, Webtrees, etc sites. My photos site is still live at the old hosting on its original domain name, and I need to set aside a day to a start testing it’s import.
See Hosting Migration And Site Migration Back To WordPress - 2 To 3 Dec 2021 - GadgeteerZA
A massive migration of my website, in more than more respect, across to a new hosting provider.