Preface
This guide describes the upgrade process of icom Router Management Server (On-Premises). It assumes that you have a working icom Router Management Server installation 2025.03.0 that has been installed using the icom Router Management Server (On-Premises) Install Guide after June 2024. If you have installed icom Router Management Server (On-Premises) before September 2023, please contact our support hotline to schedule a migration because there have been breaking changes in the folder structure and naming in general.
Supported version
icom Router Management Server (On-Premises) Version 2025.03.0
Preparations
Backup PostgreSQL databasea
Backup your PostgreSQL database before you start the upgrade process. You can use the pg_dump command to create a backup of your database.
sudo -i -u postgres pg_dump -d insysicomroutermgmt -f /tmp/insysicomroutermgmt_backup.bin -FcOnly if necessary, restore the database with the pg_restore command:
sudo -i -u postgres pg_restore -d insysicomroutermgmt /tmp/insysicomroutermgmt_backup.bin -FcUpgrade preparations
Stop the insysicom-routermgmt systemd service.
sudo systemctl stop insysicom-routermgmtStop the insysicom-autoupdate systemd service.
sudo systemctl stop insysicom-autoupdateBackup the old binaries.
sudo cp /opt/insysicom-routermgmt/bin/insysicom-routermgmt /opt/insysicom-routermgmt/bin/insysicom-routermgmt.oldsudo cp /opt/insysicom-routermgmt/bin/insysicom-autoupdate /opt/insysicom-routermgmt/bin/insysicom-autoupdate.oldDownload the new version from the INSYS icom Router Management Cloud or from the link provided by our support team. Copy the zip file to your server. Create a directory in your home and copy the installation zip file irm_linux_2025_09_0a.zip into this directory.
mkdir dist
unzip irm_linux_2025_09_0a.zip -d dist
ls -aFl distYou should see the insysicom-routermgmt and insysicom-autoupdate binaries aswell as the static frontend files www in the dist directory.
Mark the new binaries as executable if the ls command did not show the executable flag indicated by * behind the file name. Static files should be owned by the insysicom-routermgmt user.
For the insysicom-routermgmt binary:
sudo chown insysicom-routermgmt:insysicom-routermgmt dist/insysicom-routermgmt
sudo chmod +x dist/insysicom-routermgmtFor the static frontend files:
sudo chown -R insysicom-routermgmt:insysicom-routermgmt dist/wwwFor the insysicom-autoupdate binary:
sudo chown insysicom-routermgmt:insysicom-routermgmt dist/insysicom-autoupdate
sudo chmod +x dist/insysicom-autoupdateUpgrade process
Upgrade application server
Copy the new binaries to the correct location.
sudo cp ./dist/insysicom-routermgmt /opt/insysicom-routermgmt/bin/
sudo cp ./dist/insysicom-autoupdate /opt/insysicom-routermgmt/bin/Set required environment variables and run the database migrations.
Migrate the database for the insysicom-routermgmt service.
sudo -i -u insysicom-routermgmt
/opt/insysicom-routermgmt/bin/insysicom-routermgmt system upgrade -c /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf
exitMigrate the database for the insysicom-autoupdate service.
set -a
source /opt/insysicom-routermgmt/etc/insysicom-autoupdate.env
set +a
/opt/insysicom-routermgmt/bin/insysicom-autoupdate -migrateThe result should be Migration completed successfully or No pending migrations, depending on the current state of the database.
Delivering the Frontend
With version 2025.09.0 static frontend files are being delivered separately from the application. In our case nginx will act as a static file server for them.
Start by copying the frontend files to the correct location:
sudo cp -r ./dist/www /opt/insysicom-routermgmt/wwwAdapt the nginx config for the servers on port 80 and/or 443:
sudo vi /etc/nginx/sites-available/insysicom-routermgmt/etc/nginx/sites-available/insysicom-routermgmt
server {
...
client_max_body_size 300M;
client_header_timeout 600;
client_body_timeout 600;
send_timeout 600;
proxy_read_timeout 600;
# - delete this block
location = / {
return 301 /ui;
}
location /ui/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:9203;
}
# -
# + add this block
gzip on;
gzip_proxied any;
gzip_http_version 1.1;
gzip_comp_level 5;
gzip_min_length 256;
gzip_vary on;
gzip_types text/css text/javascript text/xml text/plain application/javascript application/x-javascript application/json;
location = / {
return 302 /ui/;
}
location /ui/ {
root /opt/insysicom-routermgmt/www;
index index.html;
try_files $uri $uri/ /ui/index.html;
}
# +
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:9203;
}
...Replace the locations / and /ui/ with additional settings and content, delivering the files in www.
If applicable, also change these locations in the https server block.
Save the configuration and check it with the following command:
sudo nginx -tChange command for autoupdate systemd service
The command for starting the autoupdate service has changed. Without the following command change, devices might not leave the state Not Configured.
Open the systemd service file for the autoupdate service.
sudo vi /etc/systemd/system/insysicom-autoupdate.serviceChange the command for ExecStart to the following one.
/etc/systemd/system/insysicom-autoupdate.service
[Unit]
...
[Service]
...
ExecStart=/opt/insysicom-routermgmt/bin/insysicom-autoupdate -serve-all
[Install]
...Reload the systemd daemon to apply the changes.
sudo systemctl daemon-reloadStart application server
sudo systemctl restart nginx
sudo systemctl start insysicom-routermgmt
sudo systemctl start insysicom-autoupdateConfirm upgrade
Confirm that both services are active and running.
sudo systemctl status insysicom-routermgmt
sudo systemctl status insysicom-autoupdateShould the autoupdate service not be running, try restarting it.
sudo systemctl restart insysicom-autoupdateVisit the icom Router Management Server (On-Premises) web interface and check its availability and the version number in the system information menu or use curl to do so.
curl http://localhost:9203/api/admin/software-version