How to install uCentralGW on Ubuntu 20.04

In order to build the uCentralGW, you will need to install its dependencies, which includes the following:

  • cmake
  • boost
  • POCO 1.10.1 or later
  • a C++17 compiler
  • libyaml
  • openssl
  • libpq-dev (PortgreSQL development libraries)
  • mysql-client (MySQL client)
  • librdkafka
  • cppkafka

These instructions have proven to work on Ubuntu 20.04.

sudo apt install git cmake g++ libssl-dev libmariadb-dev-compat unixodbc-dev
sudo apt install libpq-dev libaprutil1-dev apache2-dev libboost-all-dev libyaml-cpp-dev
sudo apt install librdkafka-dev liblua5.3-dev
sudo apt-get install lua5.3
sudo apt-get install mysql-client

Install POCO

cd ~
git clone https://github.com/stephb9959/poco
cd poco
mkdir cmake-build
cd cmake-build
cmake …
cmake --build . --config Release
sudo cmake --build . --target install

Install cppkafka.

cd ~
git clone https://github.com/stephb9959/cppkafka
#or git clone https://github.com/mfontanini/cppkafka
cd cppkafka
mkdir cmake-build
cd cmake-build
cmake …
cmake --build . --config Release
sudo cmake --build . --target install

Install uCentralGW.

cd ~
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw
cd wlan-cloud-ucentralgw
mkdir cmake-build
cd cmake-build
cmake …
make

After the build step is completed, create folder in ~/wlan-cloud-ucentralgw/

cd ~/wlan-cloud-ucentralgw/
mkdir certs
mkdir certs/cas
mkdir logs
mkdir uploads

You should now have the following:

– cert_scripts
|
±- certs
| ±-- cas
±- cmake
±- cmake-build
±- logs (dir)
±- src
±- test_scripts
±- openapi
±- uploads
±- ucentral.properties

Certificates

The certs directory
For all deployments, you will need the following certs directory, populated with the proper files.

certs —±-- root.pem
±-- issuer.pem
±-- websocket-cert.pem
±-- websocket-key.pem
±-- clientcas.pem
±-- +cas
| ±-- issuer.pem
| ±-- root.pem
±-- restapi-ca.pem
±-- restapi-cert.pem
±-- restapi-key.pem

How to Generate self-signed certificates

cd ~
git clone https://github.com/Telecominfraproject/wlan-pki-cert-scripts

Once complete generate the service certificates and copy these to the controller from in the folder:~/wlan-pki-cert-scripts/generated.

cd ~/wlan-pki-cert-scripts
./generate_all.sh
cd ~/wlan-pki-cert-scripts/generated

Self-signed certificate files in uCentralGW and uCentral AP
These are the files you should install on your gateway and devices. For your gateway, you will need to provide tge following files in the directory above.

Gateway certificates:

These are the files you should install on your gateway and devices. For your gateway, you will need to provide tge following files in the directory above.

Self-signed certificate files In uCentralGW

cd ~/wlan-cloud-ucentralgw
cd certs

root.pem=cacert.pem
issuer.pem=clientcert.pem
clientcas.pem=clientcert.pem+cacert.pem

cd ~/wlan-pki-cert-scripts/generated
cp cacert.pem ~/wlan-cloud-ucentralgw/certs/root.pem
cp clientcert.pem ~/wlan-cloud-ucentralgw/certs/issuer.pem
Create a file called ‘clientcas.pem’ and paste the value from cacert.pem and clientcert.pem
copy root.pem, issuer.pem and clientcert.pem to ~/wlan-cloud-ucentralgw/certs/cas/

For example:

root.pem is:

-----BEGIN CERTIFICATE-----

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
-----END CERTIFICATE-----

issuer.pem is:

-----BEGIN CERTIFICATE-----
MIIFPDCCAySgAwIBAgIBBTANBgkqhkiG9w0BAQsFADCBtDELMAkGA1UEBhMCQ0Ex
EDAOBgNVBAgMB09udGFyaW8xDzANBgNVBAcMBk90dGF3YTEfMB0GA1UECgwWQ29ubmVjdFVzIFRlY2hub2xvZ2llczEbMBkGA1UECwwSVGVzdGluZyBEZXBhcnRtZW50MSMwIQYDVQQDDBpUZXN0IENBIE5vdCBGb3IgRGVwbG95bWVudDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0yMTA2MTExMjUxMDBaFw0yNDAzMDcxMjUxMDBaMGMxCzAJBgNVBAYTAkNBMRAwDgYDVQQIDAdPbnRhcmlvMQ8wDQYDVQQHDAZPdHRhd2ExHzAdBgNVBAoMFkNvbm5lY3RVcyBUZWNobm9sb2dpZXMxEDAOBgNVBAMMB09wZW5fQVAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFKYAQbjcykRrvSZccSHazLlyZECaiokSomjWavLe70QR9oCqQLpHEMa3ZEWSHcXD3ktCZxlV+esK0C0hpu1XQIWrFpw30e5vZ1riDuNPwH+SGaGBg8GUrcK/esh2VN45HeIvZ3ISfF6TRBGDyOAdy22AilRA9lhdshwZTgiXsMdZmAWj1zHYkgR2OBGCCybjxh3edeOpQRKQJmg5E7tqHErgDr2xTac7Wtq8qLp5FZ45WG1onTSiRWQM6a3qWOcR8/V4Qe2ayzOiJh4lSqIxZxZHcDFtRTB4+pfGrM/0UoLmAcMwRMyWLHPR2Dc7ezp1XsDUmrDwHduxWzNkimx2JAgMBAAGjgagwgaUwHQYDVR0OBBYEFGDV192gn0UfV7GkfoPe3wwk8YAOMB8GA1UdIwQYMBaAFMKrYJeeNxJ8s2xFUGBxLOvf3ZVWMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMCMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGllbnQgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQELBQADggIBAK15Fz39HsHo0/e9JCU2bbrLsZF+5JDjEOsiAAu9uFwfHCTlGIWjHH/JBJrm+APr+T8P47FdEmKgJFsLiZ2l6aTbUhm01J2eLJGp1fwk/3+xb0r/aXtAr1gPzz9bLtJ2AjJ8IJmOCiPwfSpKImb438B6K4aXG6EdNUf3jMOxVLvGD+d0GQusAELqWete8UpAlbqseDxsNMhOcYM2O7qDGBeRvEIt+wkes4WWvy3m5m9DfJEyuU5PQFiq0yh9XChMKnhoQILzlQ/CFy7mtj2RMNkhZl+IEluSXs1Dtu1gYFi5NQW1Ki9Xo5QTdgk2GIEV76uU22Okvxob0T/mj/ms4w2dN+t3t2//JvNUz1Khhg1h/l8ceI5n0jwA+Wwm71Vs4hnlbbEyxCXwdUIpJYvZ9boBP26eG47FB84LZltg/fWXnF7MSwnK2ZcdMizYmPzMkrg2uTCtW8NRsf4oBvVUtBngRI5CsTEXnpU++Mia1rdRzUnysBMqdtmgXAm7zN2rsSxBj/WxOJm37Quxnt/7rseSysBruBLndOn/zjueUxph9d5o8m6xFbM6W7bEAAZ32MI/eL94YdFf6ife91kxFmhzLSanC4hbmMNVzZ1TaDjc3DZPaMBsmN5BG/vXUfjvFzHREZcREjIe8FmAQbEfRBTWhb35P1JSfAG1niBeQQFl
-----END CERTIFICATE-----

clientcas.pem is:

-----BEGIN CERTIFICATE-----

MIIFPDCCAySgAwIBAgIBBTANBgkqhkiG9w0BAQsFADCBtDELMAkGA1UEBhMCQ0Ex EDAOBgNVBAgMB09udGFyaW8xDzANBgNVBAcMBk90dGF3YTEfMB0GA1UECgwWQ29ubmVjdFVzIFRlY2hub2xvZ2llczEbMBkGA1UECwwSVGVzdGluZyBEZXBhcnRtZW50MSMwIQYDVQQDDBpUZXN0IENBIE5vdCBGb3IgRGVwbG95bWVudDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0yMTA2MTExMjUxMDBaFw0yNDAzMDcxMjUxMDBaMGMxCzAJBgNVBAYTAkNBMRAwDgYDVQQIDAdPbnRhcmlvMQ8wDQYDVQQHDAZPdHRhd2ExHzAdBgNVBAoMFkNvbm5lY3RVcyBUZWNobm9sb2dpZXMxEDAOBgNVBAMMB09wZW5fQVAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFKYAQbjcykRrvSZccSHazLlyZECaiokSomjWavLe70QR9oCqQLpHEMa3ZEWSHcXD3ktCZxlV+esK0C0hpu1XQIWrFpw30e5vZ1riDuNPwH+SGaGBg8GUrcK/esh2VN45HeIvZ3ISfF6TRBGDyOAdy22AilRA9lhdshwZTgiXsMdZmAWj1zHYkgR2OBGCCybjxh3edeOpQRKQJmg5E7tqHErgDr2xTac7Wtq8qLp5FZ45WG1onTSiRWQM6a3qWOcR8/V4Qe2ayzOiJh4lSqIxZxZHcDFtRTB4+pfGrM/0UoLmAcMwRMyWLHPR2Dc7ezp1XsDUmrDwHduxWzNkimx2JAgMBAAGjgagwgaUwHQYDVR0OBBYEFGDV192gn0UfV7GkfoPe3wwk8YAOMB8GA1UdIwQYMBaAFMKrYJeeNxJ8s2xFUGBxLOvf3ZVWMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMCMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGllbnQgQ2VydGlmaWNhdGUwDQYJKoZIhvcNAQELBQADggIBAK15Fz39HsHo0/e9JCU2bbrLsZF+5JDjEOsiAAu9uFwfHCTlGIWjHH/JBJrm+APr+T8P47FdEmKgJFsLiZ2l6aTbUhm01J2eLJGp1fwk/3+xb0r/aXtAr1gPzz9bLtJ2AjJ8IJmOCiPwfSpKImb438B6K4aXG6EdNUf3jMOxVLvGD+d0GQusAELqWete8UpAlbqseDxsNMhOcYM2O7qDGBeRvEIt+wkes4WWvy3m5m9DfJEyuU5PQFiq0yh9XChMKnhoQILzlQ/CFy7mtj2RMNkhZl+IEluSXs1Dtu1gYFi5NQW1Ki9Xo5QTdgk2GIEV76uU22Okvxob0T/mj/ms4w2dN+t3t2//JvNUz1Khhg1h/l8ceI5n0jwA+Wwm71Vs4hnlbbEyxCXwdUIpJYvZ9boBP26eG47FB84LZltg/fWXnF7MSwnK2ZcdMizYmPzMkrg2uTCtW8NRsf4oBvVUtBngRI5CsTEXnpU++Mia1rdRzUnysBMqdtmgXAm7zN2rsSxBj/WxOJm37Quxnt/7rseSysBruBLndOn/zjueUxph9d5o8m6xFbM6W7bEAAZ32MI/eL94YdFf6ife91kxFmhzLSanC4hbmMNVzZ1TaDjc3DZPaMBsmN5BG/vXUfjvFzHREZcREjIe8FmAQbEfRBTWhb35P1JSfAG1niBeQQFl

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

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

-----END CERTIFICATE-----

Gateway certificates: TIP portion (* must be obtained from TIP)

The gateway requires its own Self-signed certificate. Once obtained, you need to identify the key and the certificate rename them

websocket-key.pem

and

websocket-cert.pem

, and copy them in your certs directory. These files mus be obtained from TIP.

servercert.pem–>websocket-cert.pem
serverkey.pem → websocket-key.pem

cd ~/wlan-pki-cert-scripts/generated
cp servercert.pem ~/wlan-cloud-ucentralgw/certs/websocket-cert.pem
cp serverkey_dec.pem ~/wlan-cloud-ucentralgw/certs/websocket-key.pem

Gateway certificates: for REST API

The gateway requires a key/vertificate/ca for the REST interface. These files you need to obtain on your own of generate them. This is beyond the scope of this document. Once you have these files, you need to renamed them

restapi-key.pem

restapi-cert.pem

, and

restapi-ca.pem

. This will guarantee proper HTTPS in your browser.

restapi-ca.pem → cacert.pem
restapi-cert.pem → servercert.pem
restapi-key.pem → serverkey.pem

cd ~/wlan-pki-cert-scripts/generated
cp cacert.pem ~/wlan-cloud-ucentralgw/certs/restapi-ca.pem
cp servercert.pem ~/wlan-cloud-ucentralgw/certs/restapi-cert.pem
cp serverkey.pem ~/wlan-cloud-ucentralgw/certs/restapi-key.pem

For the sample configuration to work, you need to define 2 environment variables.

export UCENTRAL_ROOT=’/home/fouripnet/wlan-cloud-ucentralgw’
export UCENTRAL_CONFIG=’/home/fouripnet/wlan-cloud-ucentralgw’
export UCENTRALGW=10.2.20.28:16001

Running the gateway
To run the gateway, you must run the executable

ucentralgw

. You can use several command line options to run as a daemon or specify the configuration file location.

uCentral AP certificates:

Self-signed certificate files In Ucentral AP

scp cacert.pem root@{AP’s IP}:/etc/ucentral/cas.pem
scp clientcert.pem root@{AP’s IP}:/etc/ucentral/cert.pem
scp clientkey_dec.pem root@{AP’s IP}:/etc/ucentral/key.pem

clientkey_dec.pem=key.pem
clientcert.pem=cert.pem
cacert.pem=cas.pem

All 3 files must be present in

/etc/ucentral

on the device
You will need to upgrade your device to the latest firmware. Once updated, you will need to copy the 3 files mentionned above in the

/etc/ucentral

directory. You will need to modify the

/etc/config-shadow/ucentral

file with your hostname. At which point, you should be able to restart the uCentral client with

/etc/init.d/ucentral restart

.
Then the command

logread -f

should tell you if you device was able to connect to the
gateway.

Using the API

In the :

~/wlan-cloud-ucentralgw/test_scripts/curl

directory, you will find a series of scripts that will show you how to use the API with curl or python. More
scripts will be added in the future.

Troubleshooting

  1. Error occurred when executing uCentralGW

.ucentralgw: error while loading shaed libraries: libPocoXML.so.71: cannot open
shared object file: No such file or directory
Resolve:add path / usr/ local/ lib

sudo vi /etc/ld.so.conf
sudo ldconfig

When using API tool

cli

and appeared “Cloud not login. Please verify the host and username/ password."
Please add the “-trace-ascii /tmp/dumptrace.txt” parameter in the function login () of

cli

to see if there shows “info: SSL certificate problem: self signed certificate in certificate chain” in the log.
Due to the system will block the self-signed certificate, please manually add

-k

for each function to pass this verification.

uCentral - Open Converged Wireless - Confluence (atlassian.net)
GitHub - Telecominfraproject/wlan-cloud-ucentralgw
GitHub - Telecominfraproject/wlan-pki-cert-scripts

Greetings, I thank you for your clear and precise instructions regarding the installation of tip controllers. I have followed all the steps and completed the installation. I would like to know how to launch the program. I cannot locate the “ucentralgw” executable file in the “wlan-cloud-ucentralgw” package. Would a web page with a dashboard also be created? I apologize for my question, I am new to this field.

Thank you

1 Like

How do I get the certs for the Gateway from TIP, please advise

Gateway certificates: TIP portion (* must be obtained from TIP)

The gateway requires its own DigiCert certificate. Once obtained, you need to identify the key and the certificate rename them websocket-key.pem and websocket-cert.pem, and copy them in your certs directory. These files mus be obtained from TIP.

Hello. @sevendi !

Sorry for the late reply. We are now back to the Edgecore OpenWiFi User Forum.
I’m Nick Ho of the Edgecore Technical Support Team Taipei Office.

Here is the prompt answer for your reference.
After building up the uCentral Gateway following the GitHub Instruction here,
[https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/1213268275/Getting+Started+-+Open+WiFi+2.0](https://Getting Started - Open WiFi 2.0)
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw

You need to continue to the uCentral Gateway UI Git Repository to get a Web UI with a local URL address.

Note: So you need to add your Ubuntu Server to your computer’s local DNS host.
FYI: [How to Add a Local DNS Lookup to Hosts File]

After that, you can access the uCentral Web UI with https://ucentral.dpaas.arilia.com:16001

Good luck with the TIP OpenWiFi project.
Let us know if you need more assistance.

Thanks
Nick Ho
Edgecore Technical Support Team Taipei Office
support@edge-core.com
nick_ho@accton.com

Hello, @ ltitus!

Sorry for the late reply. We are now back to the Edgecore OpenWiFi User Forum.
I’m Nick Ho of the Edgecore Technical Support Team Taipei Office.

Gateway certificates: TIP portion (* must be obtained from TIP)

The gateway requires its own DigiCert certificate. Once obtained, you need to identify the key and the certificate rename them websocket-key.pem and websocket-cert.pem, and copy them in your certs directory. These files must be obtained from TIP.

About this part, you need to contact a TIP member. If you know a TIP member, you can directly contact the guy or ask for it from TIP Slack Channel.
https://app.slack.com/client/T017Z29THRR/composer/draft-a3fef47b-cd54-4411-bd83-a268b4440459/thread/G01HT3KGFBJ-1622122188.015200?cdn_fallback=1

Meanwhile, could you tell us why do you need a TIP portion certificate? We could also help you with it.

Thanks
Nick Ho
Edgecore Technical Support Team Taipei Office
support@edge-core.com
nick_ho@accton.com

Unable to install the uCentralGW on Ubuntu 20.4 follow those instruction. I get the output error as below:

CMake Error at CMakeLists.txt:49 (find_package):
By not providing “Findfmt.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “fmt”, but
CMake did not find one.

Could not find a package configuration file provided by “fmt” with any of
the following names:

fmtConfig.cmake
fmt-config.cmake

Add the installation prefix of “fmt” to CMAKE_PREFIX_PATH or set “fmt_DIR”
to a directory containing one of the above files. If “fmt” provides a
separate development package or SDK, be sure it has been installed.

– Configuring incomplete, errors occurred!
See also “/home/uadmin/wlan-cloud-ucentralgw/cmake-build/CMakeFiles/CMakeOutput.log”.

If we navigate to https://github.com/Telecominfraproject/wlan-cloud-ucentralgw, it need us to install 2 more components which are json and json-schema-validator. However, this 2 component also facing cmake issue. If possible, please try this step in your environment and provide a solution for this.

My test environment parameter
Ubuntu Servef 20.04.4 LTS
4 vCPU
4GB RAM
20GB HDD

Hello, @mcchin .

Enco sent your sreenshots.

Could you tell us which command comes with the screenshot results?
Which step are you stopping at?
Is it this section?

Install POCO

cd ~
git clone https://github.com/stephb9959/poco
cd poco
mkdir cmake-build
cd cmake-build
cmake …
cmake --build . --config Release
sudo cmake --build . --target install

Let me put a note. I’ll consult and get back to you.

git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw

cd wlan-cloud-ucentralgw

mkdir cmake-build

cd cmake-build

cmake … ← this command cause the error.

Hello, @mcchin

This is the correct result for Installing the POCO using CMAKE.

[tip@ubuntu18:~/poco/cmake-build$ cmake …
– The C compiler identification is GNU 7.5.0
– The CXX compiler identification is GNU 7.5.0
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Checking for C++14 compiler
– Checking for C++14 compiler - available
– Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version “1.1.1” )
– Found APR: /usr/include/apr-1.0 (found version “1.6.3”)
– Found APRUTIL: /usr/include/apr-1.0 (found version “1.6.1”)
– Found Apache2: /usr/include/apache2
– Could NOT find MySQL (missing: MYSQL_INCLUDE_DIR MYSQL_LIBRARY)
– Found PostgreSQL: /usr/lib/x86_64-linux-gnu/libpq.so (found version “10.19 ( Ubuntu 10.19-0ubuntu0.18.04.1)”)
– Could NOT find ODBC (missing: ODBC_LIBRARY ODBC_INCLUDE_DIR)
– Building without tests & samples
– Using internal sqlite, zlib, pcre, expat, …
– SQLite Support Enabled
– MySQL Support Disabled
– PostgreSQL Support Enabled
– ODBC Support Disabled
– CMake 3.10.2 successfully configured Poco using Unix Makefiles generator
– Poco package version: 1.11.1
– Building dynamic libraries
– [cmake] Installation target path: /usr/local
– [cmake] Build for OS type: Linux
– [cmake] Build for OS version: 4.15.0-167-generic
– [cmake] Build for CPU type: x86_64
– [cmake] Build type: RelWithDebInfo
– [cmake] Build with cxx flags: -O2 -g -DNDEBUG
– [cmake] Build with c flags: -O2 -g -DNDEBUG
– Building: Encodings
– Building: XML
– Building: JSON
– Building: Util
– Building: Net
– Building: MongoDB
– Building: Redis
– Building: JWT
– Building: NetSSL_OpenSSL
– Building: Crypto
– Building: Data
– Building: ActiveRecord
– Building: ActiveRecordCompiler
– Building: Zip
– Building: PageCompiler
– Building: File2Page
– Configuring done
– Generating done
– Build files have been written to: /home/tip/poco/cmake-build
tip@ubuntu18:~/poco/cmake-build$

You are in the progress of installing the dependencies and packages that uCentral needs, which is still in the early stages.

Could you show us the result of "
sudo apt install git cmake g++ libssl-dev libmariadb-dev
" for us to confirm that you installed CMAKE correctly?

Dear Nick,
Below is the result of the installation of the cmake. As in my email, it show all the log from clean installation of the minimum Ubuntu 20.04 installation.

uadmin@ucentralgw:~$ sudo apt install git cmake g++ libssl-dev libmariadb-dev
[sudo] password for uadmin:
Reading package lists… Done
Building dependency tree
Reading state information… Done
cmake is already the newest version (3.16.3-1ubuntu1).
g++ is already the newest version (4:9.3.0-1ubuntu2).
git is already the newest version (1:2.25.1-1ubuntu3.3).
libssl-dev is already the newest version (1.1.1f-1ubuntu2.12).
libmariadb-dev is already the newest version (1:10.3.34-0ubuntu0.20.04.1).
libmariadb-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
uadmin@ucentralgw:~$ Last login: Thu Apr 21 05:53:32 2022
g++ is already the newest version (4:9.3.0-1ubuntu2).
git is already the newest version (1:2.25.1-1ubuntu3.3).
libssl-dev is already the newest version (1.1.1f-1ubuntu2.12).
libmariadb-dev is already the newest version (1:10.3.34-0ubuntu0.20.04.1).
libmariadb-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
uadmin@ucentralgw:~$

If having trouble with the Linux dependencies, or struggling with the uCentral Gateway installation, there is a docker-composed instruction, too.

Refer to the section: Non-LB deployment with self-signed certificates