Upgrade

ProxSave can upgrade the binary (from GitHub Releases) and can upgrade your backup.env by merging it with the embedded template.

Upgrade the binary (recommended)

Run as root from the installation directory (or pass --config explicitly). The upgrade flow is interactive and asks for confirmation before downloading.

cd /opt/proxsave
sudo ./build/proxsave --upgrade

If proxsave is installed in PATH, you can run:

sudo proxsave --upgrade --config /opt/proxsave/configs/backup.env

What it does:

  1. Checks the latest GitHub release
  2. Downloads proxsave_<version>_linux_<arch>.tar.gz and SHA256SUMS
  3. Verifies the archive checksum (SHA256)
  4. Extracts the proxsave binary and replaces the current one via atomic rename
  5. Refreshes entrypoints (/usr/local/bin/proxsave, /usr/local/bin/proxmox-backup) when possible
  6. Migrates legacy Bash cron entries and ensures a proxsave cron entry exists if none is present (default 02:00)
  7. Refreshes bundled support docs, removes legacy symlinks, and normalizes permissions

Notes:

  • Requires outbound HTTPS access to GitHub API and GitHub Releases.
  • Does not modify your configuration values in configs/backup.env.

Manual binary upgrade

If you prefer not to use --upgrade, install a specific release manually.

  1. Download and verify the release archive (replace VERSION and ARCH):
VERSION="x.y.z"
OS="linux"
ARCH="amd64" # or arm64
FILENAME="proxsave_${VERSION}_${OS}_${ARCH}.tar.gz"

curl -fsSLO "https://github.com/tis24dev/proxsave/releases/download/v${VERSION}/${FILENAME}"
curl -fsSLO "https://github.com/tis24dev/proxsave/releases/download/v${VERSION}/SHA256SUMS"

grep " ${FILENAME}$" SHA256SUMS | sha256sum -c -
  1. Extract the binary and install it:
tar -xzf "${FILENAME}" proxsave
sudo mkdir -p /opt/proxsave/build
sudo mv proxsave /opt/proxsave/build/proxsave
sudo chmod +x /opt/proxsave/build/proxsave
  1. Verify:
/opt/proxsave/build/proxsave --version

Upgrade configuration (backup.env)

When new versions add configuration keys, you can upgrade your existing config by merging it with the embedded template.

Preview (no writes):

cd /opt/proxsave
./build/proxsave --upgrade-config-dry-run

Apply upgrade:

cd /opt/proxsave
sudo ./build/proxsave --upgrade-config

What --upgrade-config does:

  1. Creates a timestamped backup file next to your config: <configPath>.backup.YYYYMMDD_HHMMSS
  2. Adds missing keys with template defaults
  3. Preserves your existing values for known keys
  4. Preserves unknown/custom keys in a “Custom keys” section at the end of the file
  5. Writes atomically and validates; if parsing fails, it restores the backup automatically

Check version

/opt/proxsave/build/proxsave --version

Rollback

If you encounter issues after upgrading:

  1. Binary rollback: ProxSave does not keep an automatic backup of the previous binary. If you want a quick rollback, copy it before upgrading:
sudo cp /opt/proxsave/build/proxsave /opt/proxsave/build/proxsave.bak

To rollback, restore the backup:

sudo mv /opt/proxsave/build/proxsave.bak /opt/proxsave/build/proxsave

If you did not save a copy, reinstall an older release tarball using the “Manual binary upgrade” steps above.

  1. Config rollback: Restore the backup created by --upgrade-config:
sudo cp /opt/proxsave/configs/backup.env.backup.YYYYMMDD_HHMMSS /opt/proxsave/configs/backup.env

Upgrade best practices

  1. Run a --dry-run after upgrading
  2. Review config changes with --upgrade-config-dry-run before applying
  3. Check crontab -l after --upgrade (cron entries may be migrated/normalized)
  4. Upgrade during maintenance windows