Upgrade to my server infrastructure setup


In the previous weekend I have made some pretty big changes to my VPS provided by Digital Ocean and where this blog is hosted. Actually two but one is worth mentioning only because it was the reason second happened.

So the one not worth mentioning is that I have upgraded my VPS’s operating system Ubuntu from 18.04 LTS to 20.04 LTS. First I tried automatic upgrade with command do-release-upgrade but the upgrade process got stuck! When rebooting I got greeted with kernel panic. After searching for a while I discovered Digital Ocean is providing a method with booting a droplet with their recovery ISO (as opposed to VPS’s hard drive). With this method I have managed to recover database backup (which was already there, thanks to cron job) and the whole website’s data folder (not just the code, but also static files like pictures).

The plan was to continue with the site because this blog is 8 years old, has a decent traffic and it would be a shame to send it to oblivion. On the outside it would look the same but on the inside it would be very different. It would be built with docker. And not just this, the website would sit in front of reverse proxy.

I know this may sounds like over-engineering and a waste of space but the reason I decided to invest in a VPS in the first place was besides having the ability to tweak WordPress platform more than just its themes and plugins, also for learning purposes (targeting server infrastructure). And having reverse proxy in place this way I would easily plug-in other dockerized applications.

Knowing docker basics for years, it was not that hard to connect different components together also thanks to those two articles. I have managed to setup similar scenario a couple of times on my local development machine in the past years (see this or this) but this time I have decided to not use any Dockerfiles, just volumes for replacing default config files with my own.