The joys of maintaining sovereignty in cyberspace.

Realize my self hosted ghost software is over a year old and not generating embedded tweet previews for the new X domain.

SSH to the box, do a backup off-site, and run the ghost update command.

Get told I need to update nodejs.

Realize my OS is over 2 years out of date.

Attempt an update to latest LTS release.

Get told there isn't one available despite it being released 4 months ago. The hosting provider's apt repositories must be stale.

Screw that, manually update nodejs by pointing to a third party repository.

Run the ghost update command. Get told I updated too far, even though the new ghost version supports node20 my current version needs node18 to execute the update.

Downgrade to node18.

Run the ghost update command. Upgrade fails with a database migration error.

Read documentation about resolving the error. Run troubleshooting commands to no avail.

File a bug report with ghost and walk away.

Reply to this note

Please Login to reply.

Discussion

rm -rf /

halt -p

This is mostly why I run services within containers and only update the host system.

yeah, javascript and other runtime compatibility hell can destroy an installation so easily

Install NixOS

i feel this

This sounds like my typical morning standup x4 or 5, depending who gets through the latest IT security rollout that stops people joining standup

honestly this is a nodejs issue

I feel seen.

Node is an abomination

Absolute joy

🫂

You should really be using nvm to manage your Node installs instead of a package manager. It also lets you install multiple versions of Node and you can easily switch between them.

https://github.com/nvm-sh/nvm