Skip to main content

Upgrades

In-place upgrade (single host)

Put the new release on the host and re-run the installer:

cd ~/omnibus-<new-version>
sudo ./install.sh

The installer is idempotent. It redeploys /opt/omnibus, reinstalls production dependencies, refreshes the systemd unit, and restarts the service. Your data directory is preserved, so config, users, and TLS material carry over.

Roll back by re-running the installer from the previous release directory.

Fast incremental deploys (fleets / dev → device)

After the first install you can update a box without re-running npm install on the target. From your build machine:

# with an SSH key already on the target:
scripts/deploy.sh <host> [user]

# or with password auth:
SSHPASS=<password> scripts/deploy.sh <host> [user]

This:

  1. Runs npm run build locally.
  2. Packs the bundled server.js, the built client/, the production package.json, and the systemd unit into a small (~370 KB) archive.
  3. Ships it over scp and runs an embedded update.sh on the target.
  4. The remote script swaps files in place, restarts the service, health-checks /api/status, and rolls back from a timestamped backup directory if the new version doesn't come up.

End-to-end deploy time on the reference SBC is a few seconds.

Verifying an upgrade

After any upgrade:

sudo systemctl status omnibus # active (running)?
curl -fsS http://127.0.0.1/api/status # responds?
sudo journalctl -u omnibus -n 50 # any errors on start?

The version is shown in the UI footer and at GET /api/system.