> For the complete documentation index, see [llms.txt](https://docs.vex-nx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vex-nx.com/admin-guide/in-place-updates.md).

# In-place updates

![Updates / maintenance](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FMrprQ4fajNagwg3qGlDE%2Fve20261112v5-admin-updates.png?alt=media)

## Goal

Apply a VEX-NX update package on a running appliance without reinstalling the OVA or USB image.

## Why patches exist

Full media upgrades are still used for major OS / disk layout changes. Most product fixes (API, web UI, helpers, templates) ship as a **versioned update package** so labs, images, licences, and settings stay in place.

## Cumulative packages (recommended)

Customer packages look like:

`vex-nx-2.0-update9-amd64.vxp`

One cumulative package installs from any supported baseline (for example factory `2.0`, `2.0 Update 1`, `2.0 Update 4`, or `2.0 Update 8`) directly to the target (for example `2.0 Update 9`). You do not need intermediate packages.

Older hop packages may still use:

`vex-nx-<from>-to-<to>-amd64.vxp`

Prefer complete packages (API + web UI + templates + updater) for classroom upgrades.

## Recipe: Admin GUI (offline upload)

1. Sign in as **admin**
2. Open **Administration -> Updates** (or Help -> Check for Updates)
3. **Upload .vxp** and wait for validation (cumulative summary shows included updates)
4. **Run pre-check** (disk, signature key, upgrade path)
5. Confirm the checkbox, then **Install**
6. Watch progress stages and log; you may close the browser - the job continues on the appliance
7. After completion, review **Post-upgrade health**; reboot if the package requires it

## Recipe: CLI

1. Copy the `.vxp` to the appliance (SCP as `vexnx`)
2. SSH in and run:

```bash
sudo vexnx-update verify /path/to/package.vxp
sudo vexnx-update apply  /path/to/package.vxp
sudo vexnx-update status
```

3. Confirm **Home** / Host pulse shows the new version (`X.Y Update Z` when Z > 0)
4. Spot-check **Images -> Compatibility** and one Guided Lab Start

### Bootstrap note (older OVA baselines)

Some older OVA baselines did not ship `/usr/local/sbin/vexnx-update`. If `verify` is missing, install the updater from your vendor instructions for that jump, then run verify / apply as above. Later packages usually refresh the updater as a payload.

## Online check

**Check for updates** queries the configured update server (`https://updates.vex-nx.com` by default). When the server is unreachable, use Offline Update upload. Auto-check is off by default under Update settings.

## Recipe: rollback

```bash
sudo vexnx-update rollback
```

Or use Administration -> Updates history context / CLI with a named package id when your vendor documents one.

## What is preserved

Labs, Library images, licence files, users, Assist settings, and cloud / management network config are **not** replaced unless a package migration explicitly lists them.

## What still needs full OVA / USB

Kernel / KVM stack, Docker engine major upgrades, disk repartition, first-boot identity, or when release notes say "full media required".

## Security notes

* Apply only packages from your vendor
* Customer appliances verify package signatures with `/etc/vex-nx/update/public.pem` (installed with the OVA)
* Do not use `VEXNX_UPDATE_ALLOW_UNSIGNED=1` on production classroom hosts

## Developer pack recipe

```powershell
.\scripts\build-vexnx-update.ps1 -FromVersion 2.0.0 -ToVersion 2.0.9 `
  -Cumulative -CompatibleFrom 2.0.0,2.0.1,2.0.4,2.0.8 `
  -ApiBin dist\pram-api -WebDir apps\web\dist -TemplatesDir templates `
  -SigningKey deploy\update\private.pem -RequireComplete

.\scripts\verify-vxp.ps1 -Package release\updates\vex-nx-2.0-update9-amd64.vxp -InstalledVersion 2.0.4
```

See `deploy/update/README.md` for signing key placement.

## Related

* [Sizing and upgrades](/admin-guide/sizing-and-upgrades.md)
* [Maintenance](/admin-guide/maintenance.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.vex-nx.com/admin-guide/in-place-updates.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
