# On-premises

Exivity can be installed in your on-premises data center using the provided installer. You can automatically deploy it using the silent installation command line options or execute it as an interactive installer.

To 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 meeting 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 and it is recommended to use a local SSD volume which is not the boot drive.
* Provide the TCP port for  the Exivity API (default: 8002)
* Provide the TCP port for  the Exivity GUI (default: 8001)
* Choose an admin `username` and `password`
* As the installer completes you will be offered the option to start the Exivity services

## Silent Installation

To execute a silent installation the following command line parameters are supported:

`<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 straightforward and may be done by installing the new version over the top of the old.

### 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 as standard with an untrusted 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. 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 it: &#x20;

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

{% hint style="danger" %}
**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.
{% endhint %}

1. The generated CSR file should be sent 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, to the directory `%EXIVITY_PROGRAM_PATH%\server\nginx\conf`. This should overwrite the existing key and crt files
2. Restart the `Exivity Web Service` Windows service to activate your signed certificate.

## Configuring a separate web server portal

In some environments it may 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, first install Exivity on both nodes using the standard procedure described [here](/2.10.2/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;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port 443;
    }

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

{% hint style="info" %}
When using [SAML2 ](/2.10.2/advanced/integrate/sso.md#saml-configuration)as an authentication mechanism for Single Sign On, and users also connect to a User Portal, take special attention to the`X-Forwarded-Host` and `X-Forwarded-Port` parameters on lines 19 and 20. These are required when the User Portal is served on a different port (i.e. 443) compared to the backend portal API (i.e. 8002). When this is the case, the forwarded port needs to match the port number of the user portal.
{% endhint %}

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 name of the **User Portal**.

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

## Using an Internet proxy when extracting data

In cases where Exivity instance requires internet connectivity (i.e. to obtain Azure or AWS consumption data), and your network infrastructure requires use of a proxy server, it is necessary to configure a system environment variable.

Right click on **This PC** in an ***Explorer*** Window and click on *Properties:*

![System Properties](/files/-LhuIr0coENCwwjhIYx_)

Then go to *Advanced System Settings*, then click the *Environment Variables* button:

![Manage System Variables](/files/-LhuJHIpE6zNIxH78LmU)

Now add a new **System Variable** with the name **ALL\_PROXY** and fill in the address of your proxy server as the value for this variable:

![ALL\_PROXY variable](/files/-LhuJm_-2gUH9NG8zV7t)

In case you do not want to use the proxy for certain address or domains, it is also possible to add an additional variable **NO\_PROXY**:

![Skip proxy for certain addresses](/files/-LhuKsFjt4U07qjlcW35)

{% hint style="info" %}
If the name in the noproxy list has a leading period, it is a domain match against the provided host name. This way ".example.com" will switch off proxy use for both "[www.example.com](http://www.example.com)" as well as for "foo.example.com".
{% endhint %}

After confirming the change, make sure to restart both the Exivity Windows Services.

## Increase limit of filesize upload in the API

By default, [Exivity API](https://api.exivity.com/?version=latest#837072b6-3248-514b-bf2f-3e9d668198ae) has a limit of 2048kb for filesize uploading, should you require to increase it, please modify the file located in ***%EXIVITY\_PROGRAM\_PATH%\server\php\php.ini***

{% hint style="info" %}
Adjust the variables ***post\_max\_size*** and ***upload\_max\_filesize*** to your desired value.
{% endhint %}

##


---

# 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.10.2/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.
