menu

Manual installation (Windows)

This section is a step-by-step guide to installing the Navixy On-premise solution.

This guide describes the installation process on Windows. We recommend using Windows Server 2016 or later.

If you want to install the solution on any other version of Windows, this guide can also be applied, as the basic principles are the same.

In general, the platform works the same on Linux and Windows because the platform uses the same software. The main difference is how the services work on Windows. Additionally, Nginx configs have no preview blocks as Nginx does not support it.

You need an account with administrator privileges to perform the installation. It does not matter if it is a local or domain account, because the platform is in no way related to the domain infrastructure. You just need an elevation of rights to install it.

Install pre-requisites

Download and install the pre-requisites:

  • MySQL 8.0 - only Server is required, other components are optional;
  • Java SE Development Kit of the required version (17 for now);
  • Nginx - any recent version (it does not need installation, just extract it);
  • Any archiver capable of working with tar.gz files (7zip, for example).

Java and MySQL need to be added to the PATH environmental variable.

Upload and unpack the platform package

You should have received a distribution package from Navixy, typically in a .tar.gz file.
Extract the package. It has a plenty of nested folders, so be careful not to exceed Windows limit of 255 symbols in file path. Place "navixy-package" folder from the archive to some directory like: C:\Users\Administrator\Downloads\navixy-package

Hereinafter this will be the main folder of the distribution. You can see in this manual paths like "...navixy-package/db", which means that operations must be performed from this folder.

MySQL tuning

Find and edit my.ini file. By default, it is located at this path: C:\ProgramData\MySQL\MySQL Server 8.0
Note: this folder is ProgramData, not Program Files, and it is hidden by default.

Change or add the following parameters under [mysqld] section.

On database level, Navixy always works with data in UTC timezone, so it is needed to make this a default timezone for MySQL:
default-time-zone = '+00:00'
Set sql-mode to the following:
sql-mode="NO_ENGINE_SUBSTITUTION"
You need to tune MySQL according to your hardware specifications for the most efficient usage. If your server will be used only for Navixy platform, set the following paremeter to 70% of total RAM. For example, if you have 32 Gb RAM, set is as follows:
innodb_buffer_pool_size=22G

Restart the service form the "Services" menu in Windows to apply changes.

Preparing databases

Next, you need to prepare the databases.

Log into MySQL from command line, with root login, and execute the following (Substitute $PASSWORD variable for a new password for user "Navixy", remember it, you will need it later):


CREATE USER [email protected]'%' IDENTIFIED BY '$PASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE google CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE tracking CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT USAGE ON *.* to [email protected]'%';
GRANT ALL PRIVILEGES ON google.* TO [email protected]'%';
GRANT ALL PRIVILEGES ON tracking.* TO [email protected]'%';

Exit from MySQL back to cmd.

Switch to ...navixy-package\db folder. Likely:

C:\Users\Administrator\Downloads\navixy-package\db

Execute the following (of course change $ROOTPASSWORD to the password of your MySQL root user) to fill DB google with default tables:

mysql -uroot -p$ROOTPASSWORD google < google.sql

Delete updates.sql file (not needed here, only used for server updates) and google.sql (already used above)


del updates.sql
del google.sql

Check that these files are deleted and upload all the other dictionaries from DB folder to database:

type *.sql | mysql -uroot -p$ROOTPASSWORD google

Execute the following to switch on web branding:

INSERT INTO google.features_to_dealers (dealer_id, feature_code) values (1,1);

Add the following line to the database so that you can transfer files through the mobile app to your server. Of course change api.domain.com to your domain for API, do not forget to change https to http if you do not use SSL.

INSERT INTO google.file_storages (id, engine, config) values (1, 'local_fs', '{"base_path":"./files/","base_upload_url":"https://api.domain.com/file/upload","base_download_url":"https://api.domain.com/file/dl","secret":"ervg4ver","upload_credentials_ttl":"10m","is_dynamic_preview_enabled": true,"dynamic_preview_pattern":"(.+)/file/dl/(.+)","dynamic_preview_replace":"$1/file/preview/$2","security_module":{"type":"hashid","salt":"vd8sgh8w3t4w","ttl":"7d","min_length":8}}');

Finally, apply the license key (fingerprint), which should be provided by Navixy. It will be just a string of symbols.
Insert fingerprint into the database (change $FINGERPRINT to the received value):

UPDATE google.variables SET value='$FINGERPRINT' WHERE var='fingerprint';

Fingerprint is a dynamic license key. It is updated each time your server connects to the auth.navixy.com licensing server. This happens every 3-4 days and at every service startup. So you do not need to store it separately from the platform. Also for this reason you cannot use it on multiple instances. The key can only be used on one server at a time.

Adding folders for further configuration

Create and fill the following folders:

C:\java
Copy api-server, sms-server and tcp-server folders from navixy-package into it.

C:\nginx
Unpack the contents of Nginx distribution into it, as shown in this screenshot.

In C:\nginx create a folder named www. It will store frontend static files.
Copy folders panel-v2 and pro-ui from navixy-package into it.

In C:\nginx\conf create a folder named sites-enabled. It will contain the configuration for platform websites.

Add the following line to the file C:\nginx\conf\nginx.conf, anywhere in http block:
include sites-enabled/*.conf;

Configuring the platform: frontend

Pro-UI folder

Find the file Config.example.js in C:\nginx\www\pro-ui.
Edit the following line. Change api.domain.com to your actual API domain.
apiRoot: '//api.domain.com',

If you do not have a separate domain for API and use one domain for all the platform, you need to add /api to this line, so the value should look like this:
apiRoot: '//domain.com/api',

Note: '//' is short for HTTPS in this case. If your website is not SSL-protected and uses HTTP, then specify 'http://' instead

Save file as Config.js

Find the file app_config.example.sa.js in C:\nginx\www\pro-ui\static.
Again, specify your API domain in the line (of course, pay attention to http/https):
apiUrl: 'https://api.domain.com/api/',

If you have a domain for API, the value should be like: https://api.domain.com

If you use one domain for the platform, the value should look like: https://domain.com/api

Save edited file as app_config.js

Panel-v2 folder

Find the file PConfig.example.sa.js in C:\nginx\www\panel-v2 and edit the followng.
Switch api.domain.com to your actual API domain. Warning: do not delete '/panel', just edit the domain name. Pay attention to http/https.
apiRoot: 'http://api.domain.com/panel',

If you use one domain (not three) with subdirectories for the services, in this case you should have http://domain.com/api/panel

Change saas.navixy.com to your UI domain (without http/https):
paasCompanyUrl: 'saas.navixy.com',

Change api.domain.com to your actual API domain:
terminalHost: 'ws://api.domain.com:8383/',

For SSL-protected version you need to change 'ws' to 'wss' and remove ':8383' port.
This string is used only for GPRS-terminal (Air console) in your admin panel. If you are not going to open port 8383 and use Air console, you can skip this setting (although it is not recommended to do it).
Save file as PConfig.js

Setting up Nginx web service configuration

Open the directory C:\nginx\conf\sites-enabled.

Copy the file map.conf from ...navixy-package\templates to this folder.

Create a file named navixy.conf and fill it with the required Nginx configuration from this page:

Nginx configurations

Choose configuration based on HTTP/HTTPS and a number of domains to be used.

If you are going to use SSL, you do not always need to specify the full path to the certificates in the Nginx configuration. You can create a folder C:\nginx\conf\ssl and put the certificates there. In this case you need to specify in the Nginx configuration only short path: ssl/name.crt and ssl/name.key

Note that if you use SSL, the certificate must be valid

It should match the private key, otherwise Nginx will fail to start.

Also, the certificate must be full-chain, which means it must contain in one file the main certificate, intermediate certificate (or several) and the root certificate, as shown in the example below.

-----BEGIN CERTIFICATE-----
*contents of main cert*
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
*contents of intermediate cert*
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
*contents of root cert*
-----END CERTIFICATE-----

After the configuration is complete, run nginx.exe.

To auto-start Nginx on system startup, create a script for this.

Create a batch file start-nginx.bat with the following contents:

@echo off
cd c:\nginx
start nginx.exe

Place this batch file into Windows Task Scheduler and schedule it for server startup.

Configuring the platform: backend

Switch to C:\java directory.

Earlier you have copied three service folders here:

  • api-server
  • sms-server
  • tcp-server

Inside each of them is a subdirectory named conf, and you will find a file db.properties in it.
This is the file for configuring the platform to connect to the database.
You need to change the database connection credentials for each of the services.
To do this, edit the following lines ($PASSWORD is apassword for user navixy you created before)

db.username=navixy
db.password=$PASSWORD

If your database is hosted on another server, you also need to change the db.connectionString line in the same files. Specify the actual address of your database server instead of localhost, but do not change anything else in this string.

API-server

Switch to C:\java\api-server\conf and edit a file named config.properties.

Specify full link to your API domain (with http:// or https:// in the beginning) in the following string:

api.externalBaseUrl=

Specify the email settings that will be used for feedback/help section:

[email protected]
[email protected]
feedback.substituteFromEmail=false

feedback.toEmail - should contain the target address to which help emails will be sent.
feedback.defaultFromEmail - default sender of help emails (e.g. [email protected])
feedback.substituteFromEmail - toggles between sending a help email from the default sender (false) or from the user's own address (true).

Add the following line to the end of the configuration to enable file storage:
fileStorage.fileStorageId=1

TCP-server

Switch to C:\java\tcp-server\conf and again edit a file named config.properties.

Specify IP and domain name that are used for UI. These settings will be used for auto-activation commands for trackers.

externalIP=127.0.0.1
externalHostname=myhost.ru

Add the following string to the end of config for file storage operations:
api.command.baseUrl=http://127.0.0.1:8084/internal/command/

SMS-server

This service is responsible for sending and receiving the messages. It uses the default settings and requires no further configuration.

Adding Windows services for the platform.

Proceed to ...navixy-package\wrapper\conf.

Find wrapper files for each of the services:

  • wrapper.api-server.conf
  • wrapper.sms-server.conf
  • wrapper.tcp-server.conf

In each of the files edit the line:
wrapper.java.command = C:\\\\ProgramData\\\\Oracle\\\\Java\\\\javapath\\\\java

Specify a path to your actual Java install folder. For example, C:\Program Files\Java\jdk-11.0.4\bin\java

Regular Windows paths have one slash '\' symbol. But for this configuration you need to specify four '\\\\'.
Example:
wrapper.java.command = C:\\\\Program Files\\\\Java\\\\jdk-11.0.4\\\\bin\\\\java

After changing the directories, you need to run the command line with administrator privileges (cmd - Run as administrator).

Change directory to to ...\navixy-package\wrapper\bat
cd C:\Users\Administrator\Downloads\navixy-package\wrapper\bat

Run setenv.bat from this directory in the command line.

Then, without closing the command line, execute the following commands, one by one:

wrapper.bat -i ../conf/wrapper.api-server.conf
wrapper.bat -i ../conf/wrapper.sms-server.conf
wrapper.bat -i ../conf/wrapper.tcp-server.conf

It will install the services as regular Windows services.
Check "Services" menu and find the following:

  • Navixy api-server
  • Navixy sms-server
  • Navixy tcp-server

Launch the services.

Once everything is installed and launched, check availability of your Admin panel domain. It should direct you to admin login page.

The credentials are default, so consider changing your password as soon as you log into the system.

  • username: admin
  • password: admin

If something goes wrong, check Troubleshooting pages.

User interface is not available at this stage, because its domain should first be specified in Admin panel, "Service Preferences" tab.

Video Telematics NEW
Open
Video Telematics NEW
Review incidents
Determine liability
Coach drivers
Learn more >
Open

This website uses cookies.
See our Privacy Policy to learn more.