Guides

Updating Openship

Keep your Openship up to date — the one-click desktop updater, the CLI update command, and how the always-on service picks up a new release.

New versions of Openship come out from time to time — bug fixes, new features, the occasional security patch. Updating is how you get them. Think of it like the update button on your phone: Openship checks whether there's a newer version, and if there is, it swaps the old one out for the new one.

Openship gets these updates in one place only: the project's public GitHub releases. It pulls that information — it asks GitHub "is there anything newer?" Nothing is ever pushed to your install, and no Openship-run server can reach in and change your app. You stay in control of when (and whether) you update.

Good to know

  • Automatic updates are off by default. Openship tells you when an update exists; it doesn't install it behind your back (the desktop app can, if you turn that on).
  • Where it all lives: the dashboard shows update status under Settings → Instance → Updates.
  • This only appears for people who run their own Openship — the desktop app and self-hosted servers. On Openship Cloud there's nothing for you to update; we handle it.

Where updates live

Open Settings and choose the Instance tab. Scroll to the Updates section. It shows:

  • Which version you're on now, and whether a newer one exists — either "You're on the latest version" or "Openship x.y.z is available".
  • A Check now button to ask GitHub again right away (Openship also checks on its own).
  • A View changelog & releases link that opens the product changelog on the Openship website.
  • Toggles for Automatic updates (desktop only) and Update & security notifications.

Screenshot

Settings → Instance tab, the Updates section showing the current version, the "Check now" button, and the toggles. (screenshot pending)

Updating

How you update depends on how you run Openship. Pick your case.

The desktop app updates itself — you just say yes.

Wait for the update notice

When a new version is out, a notice slides in at the top of the dashboard: "Openship x.y.z is available." It sits just above the page, so you don't have to go looking for it.

Screenshot

The update notice at the top of the dashboard with an Update now button. (screenshot pending)

Press Update now

Click Update now. The notice turns into a progress bar and shows "Downloading Openship x.y.z" with a percentage as it pulls the new version down.

Let it restart

When the download finishes, the bar reads "Installing — Openship will restart". The app replaces itself with the new version and reopens on its own. That's it — you're on the new release. 🎉

Want it hands-free?

In Settings → Instance → Updates, turn on Automatic updates and the desktop app will download and install new releases for you, without waiting for a click. It's off by default so you decide when your app changes.

A self-hosted server (installed with the CLI) updates from the terminal. The openship update command updates the CLI — which bundles the API server — to the latest release.

Run the update command

openship update

Openship checks GitHub, and if there's a newer version it updates itself in place. If you used the install script (the default), it re-downloads the checksum-verified release bundle and swaps it in — refreshing the Node runtime first if a release ever needs a newer one. If you installed the npm package instead, it reinstalls with your package manager (bun if you have it, otherwise npm). If you're already current, it just says so and stops.

Restart the service on the new version

Updating swaps out the files, but the server that's already running keeps running the old version until you restart it. Bring it up again:

openship up

This restarts the persistent service on the new release and fetches the matching dashboard automatically.

Just want to know if there's an update?

Check without changing anything:

openship update --check

It tells you your current version and whether a newer one is available — then exits. It installs nothing.

Installed the npm package? Force a specific package manager if you need to (ignored for install-script installs, which always update from the verified release bundle):

openship update --via npm    # or: --via bun

About the always-on service

If you started Openship with openship up, it runs as a persistent service: it starts again when the machine reboots and restarts itself if it ever crashes. That keeps your apps online.

What it does not do is change versions on its own. It keeps running whatever version it started with, so after openship update you re-run openship up to restart it on the new release (and openship stop to take it down). See Installation for the full service commands.

If something goes wrong

“Could not reach GitHub to check for updates”

Openship pulls updates straight from GitHub, so the check needs internet access — and GitHub limits how often an address can ask. Wait a moment and press Check now again, or run openship update later. If it keeps failing, reinstall by hand with the same install method you used originally (see Installation).

The CLI update failed partway

openship update either re-downloads the verified release bundle (install-script installs) or reinstalls the global package with bun or npm. If that step errors, it prints the exact command to run by hand — copy it and run it yourself. Then restart with openship up.

The update stopped, naming POSTGRES_PASSWORD or BETTER_AUTH_SECRET

A Compose install keeps its generated secrets only in ~/.openship/compose/.env. If an update can't read that file while the database volume is still present, it stops without changing anything rather than generating values that couldn't work — most often because it ran as a different user (sudo reads /root/.openship). Re-run as the user that owns the install, or restore the file (the previous one is kept at .env.bak). Full steps: Troubleshooting → openship up refuses to regenerate secrets.

I updated but still see the old version

The running server hasn't been restarted yet. On a self-hosted server, run openship up again to restart on the new version. On the desktop app, fully quit and reopen it if it didn't relaunch on its own.

What next?

On this page