It took me ~5 hours to finally take a screenshot of this
A couple of notes (mainly for myself to refer to in the future):
- It looks like Ghost prefers to have node upgraded through NodeSource Node.js Binary Distributions (source1, source2), but
nvmworks. Just make sure you get16.13.0(I thought16.xwould work generally, however16.0.0failed, so had to pin to the exact version) - Make sure that
ExecStartin your systemd service file points to the current node version (which can be found throughwhereis node). Also after updating,cpthe file to the systemd folder (or create a symlink... I have no idea why the one under my<blog root>/system/filesis not symlink to the one under/etc/systemd/system/) and runsystemctl daemon-reloadso that changes may take effect. - Somehow my production config has
database = mysql2... if running into error you'll need to manually runghost config set database.client mysql(this command will show up if you have config error when runningghost start) - It's possible (so far) to upgrade to MySQL 8 on Ubuntu 16.04, just remember to back up all the data.
mysqldump -u root -p --all-databases > alldb.sql(source) - If
ghost startkeeps exiting with errors, try to runghost runfirst and examine the console. You may see errors likeWARN Can't connect to the bootstrap socket (localhost 8000) ECONNREFUSEDbut that's okay, the CLI will attempt 3 times and eventually give up. When starting as normal the production config fileconfig.production.jsonshould NOT have any bootstrap socket related info. - Reading the error logs definitely helps...
journalctl -u your_ghost_service -n 50and fix accordingly...
In the short run I don't anticipate another major update soon, unless another security vulnerability is exposed. Or maybe, as wzyboy has suggested... time to move to Lektor?