> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/on-premise/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/installation-wizard.md).

# Installation wizard

Run the Ubuntu installation wizard for Navixy on-premise on a single or two-server setup. Configure server roles, domain names, and SSL certificates.

The steps for installation will vary based on whether you plan to use an all-in-one server (generally used for small instances) or a separate server for the application and the database (big instance with over 1000 devices). Please select the appropriate section below based on your installation type.

The installation requires Navixy platform distribution package. It can be downloaded directly to the server using the following command:

```
wget --content-disposition https://get.navixy.com/latest
```

After the package is downloaded, you can proceed with the installation.

## Option 1. All-in-one server

First, unpack the Navixy platform build provided as a `tar.gz` archive. Go to the directory with the archive and run the following command for unpacking it (of course replace **\<PACKAGE\_NAME>** with the actual file name):

```
tar -zxvf <PACKAGE_NAME>.tar.gz
```

The archive will be extracted to `/navixy-package` directory. Then, open this directory and run the installation script from it:

```
./install.sh
```

The script will check the OS compatibility and other pre-requisites. No action is needed from you a this stage.

### Select the server role

You will be asked to select the server role for further deployment. You need to select **Single server - all services in one server**. Be careful not to click other options as they are supposed to be used for two-server deployment.

![](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-847cd113294e5de3eb2264c8c1c73acb181e3ae9%2Fimage-20230802-134855.png?alt=media)

### Installation process

The script will make a software check. You will see that the software is being installed, including Java, Nginx and MySQL. You will see a request to restart MySQL, confirm this by entering `1`. Next, you will be asked to confirm databases initialization, answer affirmative again by entering `y`.

![](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-872fc20c2335ea24128efcf0192b718165167dea%2Fimage-20230810-130547.png?alt=media)

MySQL will ask you to specify the root password. It is not mandatory for the platform so you can leave it blank. If you specify any, be sure to remember it. Next, the script will create databases and the DB user *navixy* with random password. This will be the main user for the platform services to interact with the database. However, you do not need to remember its password as it will be automatically inserted into the configuration files. After this is done, the script will populate the database with system tables.

![](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-aa8fb97a27855cf0497f8493951589ebf76b90f5%2Fimage-20230810-130559.png?alt=media)

After the database initialization, the script will ask the following:

```
This script will install Navixy platform on this server. Continue? (y/n)
```

Answer affirmative with `y`, and it will do the following:

* Create user for Java services (backend)
* Make the Java services directories and populate them with the required files
* Copy and configure web components (frontend)
* Copy runit scripts required for running Java services
* Configure Java services

### Domains

The script will ask you to specify a domain name for your service. This is a domain used for:

* All the system services in one-domain installation.
* User interface and devices activation in three-domain installation.

![On-Premise - Ubuntu installation - Domain setup](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-bc520a00f56721ab711a683264dbbcbd67dd86f0%2Fimage-20230802-140224.png?alt=media)

Next, you will be asked for API and Admin panel domains.

* For one-domain installation, leave these values blank and press Enter (OK).
* For three-domain installations, specify API and Panel domains accordingly.

![On-Premise - Ubuntu installation - API setup](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-4ba633d13f4ee87f5b0f5b551e3eb259a8a23457%2Fimage-20230802-140910.png?alt=media)

![On-Premise - Ubuntu installation - Panel setup](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-541940424f651445512bf3d233c040da5cdc215b%2Fimage-20230802-140938.png?alt=media)

You will see a notification about the domains configuration you have made.

Next, you will be prompted to perform the installation of SSL certificates for your platform. If this is what you want to do, click `Yes` and follow the wizard prompts.

For details on installing the SSL certificate, see the [Configuration wizard](/docs/on-premise/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/configuration-wizard.md) page.

At this point, the basic platform installation is complete. If you need more customization, use the [**./configure.sh**](/docs/on-premise/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/configuration-wizard.md) script.

## Option 2. Two servers

First, unpack the Navixy platform build provided as a `tar.gz` archive. Upload and unpack the archive to **both servers**. To perform unpacking, go to the directory with the archive and run the following command (of course replace **\<PACKAGE\_NAME>** with the actual file name):

```
tar -zxvf <PACKAGE_NAME>.tar.gz
```

The archive will be extracted to **navixy-package** directory. The following installation must be done first on the database server and second on the application server.

### Database server

Open `/navixy-package` directory and run the `install.sh` script from it.

```
./install.sh
```

You will be asked to select the server role for further deployment. Select **#2 SQL server**.

![On-Premise - Ubuntu installation - DB server](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-79d6fdad87871602eacd34927d00347410f32a65%2Fimage-20230803-135111.png?alt=media)

The script will begin with a system and software check. You will see that MySQL is being installed and configured. You will see a request to restart MySQL, confirm this by entering `1`. Next, you will be asked to confirm databases initialization, answer affirmative again by entering `y`.

![](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-913590364567d9e8ca55aba639c085ad75cc458c%2Fimage-20230810-130630.png?alt=media)

MySQL will ask you to specify the root password. It is not mandatory for the platform so you can leave it blank. If you specify any, be sure to remember it. Next, the script will create databases and the DB user *navixy* with random password. This will be the main user for the platform services to interact with the database.

![](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-19193fde296d45c6e7ba19a9cd1664eb3c0e952e%2Fimage-20230810-130640.png?alt=media)

The script will then populate the database with system tables. After the database initialization, you will see the following information regarding the database server:

* Username: *navixy* - this is the DB user specified in system configs for the database interaction.
* Password: *random* - the password for *navixy* user.
* IP address: your DB server actual address.

![](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-b79f8c73ecc3a18d674bbef803fb604f0a8d9ad9%2Fimage-20230810-130655.png?alt=media)

Be sure to save these values, as you will need them during the application server installation.

### Application server

Open `/navixy-package` directory and run the `install.sh` script from it.

```
./install.sh
```

You will be asked to select the server role for further deployment. Select **#3 Application server**.

![On-Premise - Ubuntu installation - Application server](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-16d6b036536c02960eb0248fa8ba1f3519e124c9%2Fimage-20230803-135805.png?alt=media)

The script will download and install Java, Nginx and other pre-requisites to run the platform. This will be done automatically and does not require your attention. After all the pre-requisites are installed, the script will ask you for SQL server user password. This is *navixy* user password that you obtained after installing the database at the previous step. Use `Shift+Insert` to paste it from the clipboard.

![On-Premise - Ubuntu installation - MySQL credentials](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-5a7cbb40bfa5e146358eac6a24b8eb72c09e95d9%2Fimage-20230803-135651.png?alt=media)

You will then be prompted for the IP address of your database server. Enter it.

![On-Premise - Ubuntu installation - MySQL setup](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-6f4d7d68026f381ca42ce6d824d3f4342265f23a%2Fimage-20230803-135831.png?alt=media)

The script will make sure that the IP is valid. You will then be asked to confirm the platform installation on your server.

Do this by typing `y` and pressing `Enter`.

![On-Premise - Ubuntu installation - Application server](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-baa31dab35969d983f6b9229b44f488135afb8c2%2Fimage-20230810-130708.png?alt=media)

### Domains

The script will ask you to specify a domain name for your service. This is a domain used for:

* All the system services in one-domain installation.
* User interface and devices activation in three-domain installation.

![On-Premise - Ubuntu installation - Domain checking](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-bc520a00f56721ab711a683264dbbcbd67dd86f0%2Fimage-20230802-140224.png?alt=media)

Next, you will be asked for API and Admin panel domains.

* For one-domain installation, leave these values blank and press Enter (OK).
* For three-domain installations, specify API and Panel domains accordingly.

![On-Premise - Ubuntu installation - API checking](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-4ba633d13f4ee87f5b0f5b551e3eb259a8a23457%2Fimage-20230802-140910.png?alt=media)

![On-Premise - Ubuntu installation - Panel checking](https://4021216648-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-541940424f651445512bf3d233c040da5cdc215b%2Fimage-20230802-140938.png?alt=media)

You will see a notification about the domains configuration you have made.

Next, you will be prompted to perform the installation of SSL certificates for your platform. If this is what you want to do, click `Yes` and follow the wizard prompts.

For details on installing the SSL certificate, see the [Configuration wizard](/docs/on-premise/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/configuration-wizard.md) page.

At this point, the basic platform installation is complete. If you need more customization, use the [**./configure.sh**](/docs/on-premise/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/configuration-wizard.md) script.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/on-premise/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/installation-wizard.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
