Upgrading to v6.0 for existing container installations

if I’m already deploying Ghost using Docker for v5 and don’t want to immediately enabled analytics and federation, is upgrading to v6 as simple as changing my image to ghost:6? or are additional steps needed for a safe upgrade?

If you have a custom/existing container setup then the critical thing with any major update is to read the breaking changes list before attempting to do a major update:

This is what will tell you if there’s something else to do e.g. from 4 → 5 you had to make sure you were on the right type of database before updating.

5 → 6 is relatively light on breaking changes… the most impactful are only Node v22 is supported (but this change is built into the ghost container, whoop) and the removal of ?limit=all from the API, which may mean changing any integrations you have first.

Other than that, be aware we are more liberal with migrations in a major version and they can take longer to run. For 5 → 6 most sites will complete migrations in under a minute, but some larger sites may have much longer running migrations.

2 Likes

Just wanted to chime in to say that for me, Ghost 5 → Ghost 6 was the most painless upgrade yet! (And I’ve been self-hosting Ghost with various non-standard setups since v0.3)

I literally just changed ghost:5-alpine to ghost:6-alpine and ran fly deploy. Done!

Thank you @Hannah et al :innocent: I know it isn’t easy to make things easy!

4 Likes

But you are missing out on the activitypub and analytics when you just use the new version.

1 Like

My understanding is that you are using their activitypub service so it works out of the box. At least that’s true for me (self-hosting).

I’m running Ghost 5 in Coolify. Its Docker Compose template looks like this: coolify/templates/compose/ghost.yaml at v4.x · coollabsio/coolify · GitHub It only contains two services: Ghost and MySQL.

But in version 6 of Ghost there are 7 new services: Caddy, Traffic-analytics, ActivityPub, Tinybird-login, Tinybird-sync, Tinybird-deploy, ActivityPub-migrate. See: ghost-docker/compose.yml at main · TryGhost/ghost-docker · GitHub.

I wonder if it’s that easy to just change the version of Ghost from 5 to 6, and then to add these 7 services?

Anybody who has updated a Docker version of Ghost from 5 to 6 who can tell how it went? What does your Compose file look like now?

Not necessarily. Some of the services run once and not permanently.

See the Tinybird setup here:

You can run these commands locally (outside of Coolify) to get the credentials, to then update the environment variables though.