The little server that could

Over the years, my website has jumped between a few different platforms and servers. For example, when I decided to move to Ghost at the beginning of last year. For this I repurposed the oldest running VPS I still had, so that I could install it on its own dedicated host, due to some quirks with the older versions of Ghost. It actually used to be my web server back in 2015, but since then is not powerful enough to run all the sites I manage, and until the switch last year, it was just running Team Speak, as it was only costing me £2 a month to run.

However, this week has not been a good week for the little server that could. With issue after issue, outage after outage, I have had to retire the poor thing. Over the years this server has been the testing platform for so many ideas and helped me learn so much.

Over the last week, I had the first un-planned outage on my portfolio in over a year, though it was quite a substantial outage, with about an hour and a half where the website was completely unreachable and the same again with it not responding correctly.

I had been designing a new platform for my web services, but this issue has brought these plans forward. Today I migrated my portfolio website to my new docker swam, which is currently still in development, but from my testing of the platform, should be infinitely more reliable, as any single host can die and everything will be fine; minus a slight outage while it boots up the new containers, but it can respond a lot faster than I ever could.

As part of this update, that is still in progress, I moved from using the stand-alone version of Ghost, to using the Docker image. This has not only allowed me to re-use the SQL cluster that is running already on this new platform, but also allow me to easily put Ghost behind a NGINX proxy, allowing better handling of the response headers. Thanks to this, I have upgraded from a D on securityheaders.com to an A. Though in order to get an A+, I will need to finish up my new website template as the current version has JavaScript that is not protected by an SRI hash. I also most defiantly need to update my Content Security Policy, but that will be part of the same update.

Overall, glad that I got pushed to fix something, and made to finish a project instead of planning into infinity.