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:
- Runs
npm run buildlocally. - Packs the bundled
server.js, the builtclient/, the productionpackage.json, and the systemd unit into a small (~370 KB) archive. - Ships it over
scpand runs an embeddedupdate.shon the target. - 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.