Upgrade icom Router Management to 2025.09.0

Prev Next

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 database

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 -Fc

Only if necessary, restore the database with the pg_restore command:

sudo -i -u postgres pg_restore -d insysicomroutermgmt /tmp/insysicomroutermgmt_backup.bin -Fc

Upgrade preparations

Stop the insysicom-routermgmt systemd service.

sudo systemctl stop insysicom-routermgmt

Stop the insysicom-autoupdate systemd service.

sudo systemctl stop insysicom-autoupdate

Backup the old binaries.

sudo cp /opt/insysicom-routermgmt/bin/insysicom-routermgmt /opt/insysicom-routermgmt/bin/insysicom-routermgmt.old
sudo cp /opt/insysicom-routermgmt/bin/insysicom-autoupdate /opt/insysicom-routermgmt/bin/insysicom-autoupdate.old

Download 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_0.zip into this directory.

mkdir dist
unzip irm_linux_2025_09_0.zip -d dist
ls -aFl dist

You 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-routermgmt

For the static frontend files:

sudo chown -R insysicom-routermgmt:insysicom-routermgmt dist/www

For the insysicom-autoupdate binary:

sudo chown insysicom-routermgmt:insysicom-routermgmt dist/insysicom-autoupdate
sudo chmod +x dist/insysicom-autoupdate

Upgrade 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
exit

Migrate 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 -migrate

The 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/www

Adapt 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 -t

Change 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.service

Change 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-reload

Start application server

sudo systemctl restart nginx
sudo systemctl start insysicom-routermgmt
sudo systemctl start insysicom-autoupdate

Confirm upgrade

Confirm that both services are active and running.

sudo systemctl status insysicom-routermgmt
sudo systemctl status insysicom-autoupdate

Should the autoupdate service not be running, try restarting it.

sudo systemctl restart insysicom-autoupdate

Visit 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