1. 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 version 2022.12.0 or 2023.02.0 that has been installed using the icom Router Management Server (On-Premises) Install Guide after December 2022. If you have installed icom Router Management Server (On-Premises) before December 2022, please contact our support hotline to schedule a migration because there have been breaking changes in the folder structure and naming in general.

2. Supported version

icom Router Management Server (On-Premises) Version 2024.02.0

3. Preparations

3.1. 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

3.2. Upgrade preparations

Stop the systemd service.

$ sudo systemctl stop insysicom-routermgmt

Backup the old binary.

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

Download the new version from the download link provided by our support team. Create a directory in your home and copy the installation zip file irm_linux_2024_02_0.zip into this directory.

$ mkdir dist
$ unzip irm_linux_2024_02_0.zip -d dist
$ ls -aFl dist
total 86292
drwxrwxr-x  2 user user     4096 Mar 13 08:32 ./
drwxr-xr-x 15 user user     4096 Mar 13 08:32 ../
-rw-r--r--  1 user user      137 Mar  1 14:11 README.txt
-rwxr-xr-x  1 user user 73330688 Mar  1 14:22 insysicom-routermgmt*

4. Upgrade process

4.1. Upgrade application server

Copy the new binary to the correct location.

$ sudo cp ./dist/insysicom-routermgmt /opt/insysicom-routermgmt/bin

Mark the new binary as executable if above ls command did not show the executable flag indicated by * behind the file name.

$ sudo chown insysicom-routermgmt:insysicom-routermgmt /opt/insysicom-routermgmt/bin/insysicom-routermgmt
$ sudo chmod +x /opt/insysicom-routermgmt/bin/insysicom-routermgmt

Set required environment variables and run the database migration. If you didn’t use the default database credentials from the installation guide or if your database is not running on the same host as the application server, please use the correct values from the configuration file located at /opt/insysicom-routermgmt/etc/insysicom-routermgmt.conf.

$ sudo -i -u insysicom-routermgmt
$ export BARRACUDA_DATABASE_DIALECT="postgres"
$ export BARRACUDA_DATABASE_ARGS="user=u4insysicomroutermgmt password=pw4insysicomroutermgmt dbname=insysicomroutermgmt host=localhost port=5432 sslmode=disable"
$ /opt/insysicom-routermgmt/bin/insysicom-routermgmt system upgrade
$ exit

4.2. Start application server

$ sudo systemctl start insysicom-routermgmt

4.3. Reconfigure NGINX web server

With the icom Router Management Server (On-Premises) version 2024.02.0 we added new features to the product, that requires changes to the NGINX web server configuration.

Open the general NGINX server configuration.

$ sudo vi /etc/nginx/nginx.conf

Adjust following settings for increased router connections.

...
worker_rlimit_nofile 40000;
events {
        worker_connections 20000;
        # multi_accept on;
}
...

Open the icom Router Management NGINX server configuration.

$ sudo vi /etc/nginx/sites-available/insysicom-routermgmt

Append following configuration lines to the first server section that listens on port 80 or 443.

server {
    ...
    client_header_timeout 600;
    client_body_timeout 600;
    send_timeout 600;
    proxy_read_timeout 600;

    ...
    location /graphql {
        proxy_read_timeout 180s;
        proxy_connect_timeout 180s;
        proxy_send_timeout 180s;
        send_timeout 180s;
        proxy_pass http://127.0.0.1:9203/graphql;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
    }
}

Append following additional settings to the second server section that listens on port 8080 or 8443.

server {
    ...
    location /devicecontrol {
        ...
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /autoupdate/ {
        ...
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Save the configuration changes and test for validity.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Restart your NGINX web server.

$ sudo systemctl restart nginx

Check if your NGINX web server is running.

$ sudo systemctl status nginx
  nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-01-31 11:15:29 UTC; 33s ago
       Docs: man:nginx(8)
    Process: 17829 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 17831 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 17832 (nginx)
      Tasks: 3 (limit: 2346)
     Memory: 4.5M
     CGroup: /system.slice/nginx.service
             ├─17832 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─17833 nginx: worker process
             └─17834 nginx: worker process

Jan 31 11:15:29 onpremtest-04 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 31 11:15:29 onpremtest-04 systemd[1]: Started A high performance web server and a reverse proxy server.

5. Confirm upgrade

Visit the icom Router Management Server (On-Premises) web interface and check the version number in the system information menu or use curl to do so.

$ curl http://localhost:9203/api/admin/software-version
{"buildVersion":"2024.02.0","buildTime":"2024-02-05T21:26:48Z", ... }

Back to the Configuration Guides for icom Router Management

Back to overview