Update a one-click app without losing data

Who updates what after a one-click install, how to take a copy you can go back to, and where each app's own update steps are.

To update an app you installed with a one-click install, take a snapshot and the app's own backup, read the app's release notes, then run the update steps for that app listed below. We install the app on the server's first boot; after that it's yours to run and update, and each app updates in its own way, so there's no single command that's safe for all of them.

What updates by itself, and what doesn't

  • The operating system's security fixes. For many apps, among them LEMP, WordPress, Vaultwarden, Nextcloud, Immich, Ghost and BookStack, we turn on automatic security updates, once a day, security fixes only; each app's page says whether it gets them. The server never reboots by itself, so reboot after a kernel update. See automatic security updates.
  • Apps installed as system packages (nginx, Caddy, PostgreSQL, MariaDB, Redis, WireGuard, Tailscale, and Jellyfin and Synapse on Ubuntu and Debian) update when you run apt upgrade or dnf upgrade, within the version your distribution or the project's repository offers.
  • Apps in containers or from a release (Vaultwarden, Immich, Ghost, Plausible, Umami, n8n, Uptime Kuma and others) don't update with the system. Their images and releases stay where they are until you update them.
  • A few update themselves: Coolify by default, Nextcloud All-in-One when you press its update button (or nightly, if you turn that on), and WordPress for minor core releases.

Before any update

  1. Read the release notes for the version you're moving to. Major versions often need extra steps or change the database for good.
  2. Take the app's own backup, the one its guide describes (a database dump, an export, or its data folder), and copy it off the server.
  3. Take a snapshot from the server's Backups tab, under Snapshots, named something like before-upgrade. The server is down for about a minute while it's taken. It's the quickest way back if the update goes wrong.

Find your app's update steps

Each app's page lists its update and backup steps under Backups and upgrades, and the apps with their own guide have an Updates and backups (or Update) section:

App Where the steps are
Vaultwarden Vaultwarden guide
Nextcloud Nextcloud guide
Immich Immich guide
Ghost Ghost guide
Plausible Plausible guide
Umami Umami guide
n8n n8n guide
OpenClaw OpenClaw guide
Jellyfin Jellyfin guide
AdGuard Home AdGuard Home guide
Forgejo Forgejo guide
Matrix Synapse Synapse guide
BookStack BookStack guide
Ollama + Open WebUI Ollama guide
Minecraft (Paper) Minecraft guide
WordPress WordPress guide
Uptime Kuma, Docker, Coolify, LEMP, Node.js and the rest the app's page, from the apps list

Check it worked

  • Open the app the way your users do, log in, and look at something recent: the newest photo, the last post, yesterday's stats.
  • Look at its logs for errors: docker compose logs --tail 50 in the app's folder for Compose apps, docker logs --tail 50 <container> for a single container, or journalctl -u <service> -n 50 for a system service.
  • Keep the snapshot for a few days, until you're sure. Delete it afterwards.

If it went wrong

  • The app won't start, or data looks wrong: revert to the snapshot. The whole disk goes back to the moment you took it, so anything written since, by the app or by you, is lost. That's usually what you want right after a failed update.
  • You only notice days later: reverting would throw away days of new data. Restore the app's own backup instead, following its guide, or ask the app's community what the new version changed.
  • Going back a version: most apps can't simply run the old version again after a new one has changed the database. That's why the snapshot comes first.

If the server itself stops answering after an update, start with the unreachable checklist.

Ready when you are

Order a server