So what went wrong?

The previous version of this site was used to test out upgrades and OS changes. Trying to move it in place to a new domain was a step too far though...

So what went wrong?
Photo by Kelly Sikkema / Unsplash

The previous site was hosted on a domain which leapt in price when renewal time came around, so I thought it would be a good exercise to migrate it to a new domain but try it on the same host.

It was also hosted on Digital Ocean, but had been built using their one-click install, which by the looks of it hasn't been updated in a few years and is stuck on Ubuntu 22.4.

This means that the usual nightmare of updating a Linux OS and the apps on it quickly turned into dependency hell. Nothing new there, but it did slow things down massively.

The actual change in domain didn't go too badly on Ghost itself, but then NGinx and LetsEncrypt refused to play along. The problem was mainly that one set of apps wouldn't do updates because they didn't recognise the data that was there, and the other parts wanted a clean install.

Eventually I decided to back up the site and rebuild the server. However, things went really wrong at that point and the Digital Ocean droplet wouldn't let me transfer files out - felt like a rate limit thing more than anything, but I decided I didn't really care at all about the previous content enough to spend any more time on it, so I just nuked the server and rebuilt it but decided against the one click install and went for the 24.4 Ubuntu LTS version of image, then installed Ghost manually.

Which mostly went OK except that the pnpm dependency isn't included in the Ghost install scripts and give this error:

✔ Setting up install directory
✖ Downloading and installing Ghost v6.30.0
A ProcessError occurred.
Message: spawn pnpm ENOENT
Exit code: ENOENT

Once done, the rest of the installation worked as expected. Previously, I'd used a 1GB Droplet with a 1GB swapfile but as part of the troubleshooting I upped the RAM to 2GB, so it'll be interesting to see if that helps with backing up files out of the Droplet.