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.distpurely 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-nginxdeliberately (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.