# On-premises

Exivity can be installed in your on premise data center using the provided installer. You can automatically deploy it using the silent installation command line options. But you may also execute it as a interactive installer.

Before you can install Exivity, you'll need the following:

1. A system that complies with the Exivity minimal system requirements
2. The Exivity software installation executable
3. A valid Exivity license key

If you need help on fulfilling one or more of the above requirements, please get in contact with our [support](mailto:support@exivity.com) department.

## Interactive installation

To install Exivity interactively, execute the provided setup executable. Then follow the instructions on screen:

* Provide a valid license key
* Pick a folder to install the Exivity program Files
* Pick a folder that Exivity will use to save its configuration, extraction and reporting files. This is called the Exivity home directory
* Provide the TCP port for  the Exivity API (default: 8002)
* Provide the TCP port for  the Exivity GUI (default: 8001)
* Choose a admin `username` and `password`
* After the installer completes, you can automatically start it.

## Silent Installation

To execute a silent installation, consider the following command line parameters:

`<setup>.exe /S /EXIVITY_PROGRAM_PATH=[path] /EXIVITY_HOME_PATH=[path] /ADMIN_USER=[user] /ADMIN_PASSWORD=[password]`

EXAMPLE:

`<setup>.exe /S /EXIVITY_PROGRAM_PATH="C:\Program Files\Exivity\program" /EXIVITY_HOME_PATH=D:\Exivity\home /ADMIN_USER=master /ADMIN_PASSWORD=P@ssword`

## Upgrading

Upgrading your installation of Exivity is very simple and fast:

### Manually upgrade

Execute the setup executable. It will detect the installed version of Exivity, and will automatically upgrade when you click `Next`

### Silent upgrade

When executing `<setup>.exe /S`, your existing installation will be automatically upgraded.

## Installing a valid SSL certificate

Exivity comes standard with an insecure self signed SSL certificate. It is therefore highly recommended to replace the default certificate with an official one, signed by your Certificate Authority. To install a signed certificate, follow this procedure:

1. Download the 32 bit version of **openssl.exe** from <https://slproweb.com/products/Win32OpenSSL.html>, and install this tool on the Exivity server
2. Use the **openssl.exe** executable to generate a valid key file on the Exivity server by executing the following command:
   * `C:\TEMP>c:\location\to\openssl.exe genrsa -out exivity.key 4096`
3. Then run the following command to create a certificate signing request file:
   * `C:\TEMP>c:\location\to\openssl.exe req -new -key exivity.key -out exivity.csr`
4. You will be asked to enter general information like company name, city, etc. However, it is important to include the **FQDN** of the Exivity server when asked for:<br>

   * '*Common Name (e.g. server FQDN or YOUR name) \[]*'&#x20;

   \
   \&#xNAN;***NOTE:** when asked, it is required to **not** provide a password (leave this field empty and press return), otherwise the Exivity application will not be able to use your certificate.*<br>
5. The generated CSR file should be send to your Certificate Authority. After processing by your CA, you shoud receive back a *.crt* file. Rename this file to ***exivity.crt*** and copy it, together with your ***exivity.key*** file, in your `%EXIVITY_PROGRAM_PATH%\server\nginx\conf`. This should overwrite the existing key and crt files
6. Now restart the `Exivity Web Service` Windows service, and your signed certificate should now be active.

## Configuring a separate web server portal

In some cases it might be desirable to separate the webserver from the backend components. This can be achieved by installing two separate Exivity instances. One instance could be placed in a DMZ, and the second instance would then typically be deployed within a local network as shown in the following diagram:

![Separating web portal from backend components](/files/-Lazog3LaIwnvslcxEaf)

To achieve this goal, first install Exivity on both nodes using the standard procedure described [here](/2.3.1/getting-started/installation/on-premises.md#interactive-installation). After installing the Exivity software on the system that should become the **User Portal**, create the following file in the directory`%EXIVITY_PROGRAM_PATH%/server/nginx/conf/sites-enabled`:

{% code title="userportal.conf" %}

```
server {
    listen                  443 http2 ssl;
    server_name             localhost;

    ssl_certificate         exivity.crt;
    ssl_certificate_key     exivity.key;

    error_page              497 301 =307 https://$host:$server_port$request_uri;

    root                    web/glass;
    index                   index.html;

    charset                 utf-8;

    location ~ /v[0-9]+?/ {
        proxy_pass          https://HOSTNAME_BACKEND_PORTAL:8002;
        proxy_buffering     off;
    }
    
    location / {
        proxy_pass          https://127.0.0.1:8001;
        proxy_buffering     off;
    }

    access_log              logs/access-webproxy.log;
    error_log               logs/error-webproxy.log error;

    location = /favicon.ico {
        access_log          off;
        log_not_found       off;
    }
    location = /robots.txt  {
        access_log          off;
        log_not_found       off;
    }

    client_max_body_size    100m;
}
```

{% endcode %}

Make sure to replace `HOSTNAME_BACKEND_PORTAL` with the actual hostname or IP address of the system that serves as your Exivity **Backend Portal**.&#x20;

The second item that requires configuration is the `config.json` in the `%EXIVITY_PROGRAM_PATH%/web/glass` directory on the **User** **Portal**:

{% code title="config.json" %}

```javascript
{
  "whiteLabel": false,
  "apiHost": "https://HOSTNAME_USER_PORTAL"
}

```

{% endcode %}

Replace `HOSTNAME_USER_PORTAL` with the actual hostname or IP address of the system that serves as your Exivity **User Portal**. In case the **User Portal** should be accessible from the internet, you will need to ensure to provide the fully qualified domain of the **User Portal**.

Once you have applied these changes, restart the `Exivity Web Service` Windows services. You should now be able to access your Exivity **User Portal**.


---

# Agent Instructions: 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 current page URL with the `ask` query parameter:

```
GET https://olddocs.exivity.io/2.3.1/getting-started/installation/on-premises.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
