BackupWallby PortWall
Updates and channelsUpdated 2026-11-16

How do I upgrade BackupWall by hand with install.sh?

Read UPGRADING.md in the new release folder, check the tarball's checksum, unpack it and run install.sh again with the same variables. Your settings, master key, database, jobs and admin user are kept. Upgrade when no backup is running.

Before you upgrade

  1. Read UPGRADING.md in the new release folder. It lists, build by build, the steps you must do by hand, what costs time or space once, and what to watch for if you go back. Read every section from the build after yours up to the build you install. Find your current build with curl -s http://127.0.0.1:8087/api/v1/health/ready (the build field) or Settings → Server → About.
  2. Upgrade when no backup, restore or migration is running. The installer restarts every service. A running one is stopped and nothing starts it again by itself: a backup's point is marked failed ("Interrupted ...") and the job's next scheduled run, or Run now, takes over and reuses what was already uploaded. Start an interrupted restore or migration again yourself.

Upgrade

sha256sum -c backupwall-<version>-<build>.tar.gz.sha256
tar xzf backupwall-<version>-<build>.tar.gz
cd backupwall-<version>-<build>
bash install.sh 2>&1 | tee /root/backupwall-upgrade.log

Pass the same variables as the first time; variables are not remembered. Your licence key stays in /etc/backupwall/backupwall.env; add --license-key only to replace it. Then run the plugin installers again, only the ones you use:

bash cpanel-plugin/whm/install.sh
bash cpanel-plugin/cpanel/install.sh
bash directadmin-plugin/install.sh

Afterwards, check the version.

What the installer prints on an upgrade

Four lines differ from a first install, and they are expected:

  • Existing configuration found ... no new secrets are generated and Existing configuration kept: /etc/backupwall/backupwall.env. Never delete that file on a server that has backups: it holds the master key.
  • Existing database kept: /var/lib/backupwall/backupwall.db.
  • Admin user already exists -- its password is unchanged (no password is printed).
  • A pointer to where UPGRADING.md is.

What is kept and what is replaced

  • Kept: your settings file with the master key, the database with every job, destination and backup point, the admin user, the Redis password, the TLS certificate and working panel credentials. Database changes of the new release are applied when the API starts, after saving a copy as backupwall.db.premigrate-<time> (the last five are kept).
  • Replaced: the code in /opt/backupwall/app and /opt/backupwall/scripts, and the console. Files the new release removed or changed are saved to /opt/backupwall/.upgrade-backup-<time> (the last five are kept).

The in-console route

A licensed server on build v277 or later can instead update from Settings → Software updates. That route does not change install.sh, the panel plugins or Python packages; for a release that does, use these steps. See How updates work.

Still stuck? Open a ticket at portwall.net/billing or write to [email protected], and attach a support bundle. See Report a problem and make a support bundle.