Skip to content

Upgrades

Native / PM2 — from a vendor package

When a new version (e.g. v1.1.0) is released:

tar -xzf itsm-onprem-v1.1.0.tar.gz
cd itsm-onprem-v1.1.0
cp ../itsm-onprem-v1.0.0/.env .env
cp ../itsm-onprem-v1.0.0/license.key license.key
sudo ./install-onprem.sh

This is also how the installer reconciles credentials

install-onprem.sh decrypts an existing DB_PASSWORD_ENC (if encryption is set up) or reads plaintext DB_PASSWORD, then re-applies it to the Postgres role. This keeps Postgres in sync with whatever .env currently holds — it does not rotate the password. See Changing the Database Password if that's what you actually need.

Key guarantees:

  • Zero data loss — migrations run without overwriting user data; PM2 reloads cleanly.
  • SSL survives updates — if an Nginx site config already exists, the installer leaves it (and any SSL block you've added) untouched, writing the fresh default to itsm-app.dist purely for reference.
  • Nginx version — a fresh install pins Nginx to the 1.29.x mainline from nginx.org rather than the distro's older default. An existing install is never silently touched; run sudo ./install-onprem.sh --upgrade-nginx deliberately (ideally in a maintenance window) to upgrade it.

Native / PM2 — direct Git checkout (no tarball)

For servers where the repo is cloned directly and managed with PM2:

cd /path/to/service-mgmt-application
git fetch --all --tags
git checkout main
git pull origin main

cd backend && npm install && npm run build && cd ..
cd backend && npm run migration:run && cd ..     # before restarting the backend
cd ai && npm install && npm run build && cd ..    # AI microservice — safe to skip, only AI suggestions stop working
cd frontend && npm install && npm run build && cd ..

ls -la license.key backend/vendor_public.pem      # confirm still present
pm2 restart all

Or, if available: bash restart-apps.sh (handles migrations and the AI microservice for you).

Verify: pm2 status, pm2 logs --lines 50, then log in as Super Admin and check Super Admin Console → License & Entitlements shows Active Platform License.

Docker

tar -xzf itsm-onprem-v1.1.0.tar.gz    # if upgrading via a new vendor package
cd itsm-onprem-v1.1.0
cp ../<previous-version>/.env .env
cp ../<previous-version>/license.key license.key

docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml ps
docker compose -f docker-compose.prod.yml logs -f --tail=50

Data in postgres_prod_data, redis_prod_data, and itsm_uploads persists across the rebuild — these are named volumes, not part of the image.