Exivity can be easily deployed on any system running Windows Server 2016 or later.
In order to deploy a single node Exivity system, be aware of the following system architecture:
All components can be installed on a single node. However, even in a single node deployment, it might be desirable to run a the PostgreSQL database on a diffent system. Apart from installing PostgreSQL from the Exivity installer, ths Exivity software is also compatible with any PostreSQL compatible database engine (PostgreSQL on Linux, Amazon RDS, CockroachDB, etc) in order to achieve High Availability or Load Balancing.
After starting the Exivity installer and providing a valid license, ensure to have all components selected and click Next:
Then make sure to provide a valid path for the Exivity program files:
And select a folder for the Exivity home files:
It is recommended to configure a dedicated volume with SSD performance for the Exivity home folder location
Provide a custom administrator username and password, or leave the default:
Then provide the details for the PostgreSQL database. The installer will configure a local PostgreSQL database by default:
When installing PostgreSQL on a single node host, it is recommended to use a dedicated volume for the PostgreSQL database folder (refered to as 'PGDATA')
In case you prefer to use a remote PostgreSQL database system, ensure to deselect 'Install Local PSQL Engine' and provide your remove PSQL server credentials:
When using a PostgreSQL database on a remote host, the database and user must have been created beforehand. To create the database, ask your database administator to execute a database create statement similar to the one below:
CREATE DATABASE exdb WITH OWNER = exadmin TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1;
When you are finished configuring your PostgreSQL database settings, click the Install button to start the installation process.
Once the installation is finished, ensure to check 'Start the Exivity Windows Services' to start the Exivity services after clicking Finish.
Follow below steps to execute an unintended setup using the silent installer flags supported by the setup program.
The below example will silently install Exivity with mostly default settings, except having the Exivity program, home and PGDATA in seperate locations:
The below example will silently install Exivity while using a remote PostgreSQL database:
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:
A system that complies with the Exivity minimal system requirements
The Exivity software installation executable
A valid Exivity license key
If you need help meeting one or more of the above requirements, please get in contact with our support department.
To install Exivity interactively, execute the provided setup executable. Then follow the instructions depending on your intended architecture:
Silent installation is only recommended for experienced users requiring automated deployments
To execute a silent installation the following command line parameters are supported:
<setup>.exe /S
<setup>.exe /S /EXIVITY_PROGRAM_PATH="C:\Program Files\Exivity\program" /EXIVITY_HOME_PATH=D:\Exivity\home /ADMIN_USER=master /ADMIN_PASSWORD=P@ssword
Updating your installation of Exivity to a more recent minor and/or bugfix release (i.e. 3.x.x --> 3.x.x) is straightforward and may be done by installing the new version over the top of the old.
Execute the setup executable. It will detect the installed version of Exivity, and will automatically upgrade when you click Next
When executing <setup>.exe /S
, your existing installation will be automatically upgraded.
When upgrading to a more recent major version (i.e. 2.10.2 --> 3.x.x) consult first the release notes to verify any breaking changes that may apply to your installation.
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:
Download the 32 bit version of openssl.exe from https://slproweb.com/products/Win32OpenSSL.html, and install this tool on the Exivity server
Use the openssl.exe executable to generate a valid key file on the Exivity server by executing the following command:
Run the following command to create a certificate signing request file:
Replace example.com
in the command above with the FQDN of the Exivity server.
You will be asked to enter general information like company name, city, etc. It is important to include the FQDN of the Exivity server when asked for Common Name (e.g. server FQDN or YOUR name) []:
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.
The generated CSR file should be sent to your Certificate Authority. After processing by your CA, you should receive back a .crt file. Rename this file to webcertificate.crt and rename your exivity.key to webcertificate.key and copy it to the directory %EXIVITY_PROGRAM_PATH%\server\nginx\conf
. This should overwrite the existing .key and .crt files.
Restart the Exivity Web Service
Windows service to activate your signed certificate.
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:
To achieve this, first install Exivity on the backend node using the standard procedure described here. Afterwards install the Exivity software on the system that should become the User Portal and only install the Web Component. When asked, specify the API Backend hostname and port to finalize the installation.
Make sure to replace HOSTNAME_BACKEND_PORTAL
with the actual hostname or IP address of the system that serves as your Exivity Backend Portal.
When using SAML2 as an authentication mechanism for Single Sign On, and users also connect to a User Portal, take special attention to theX-Forwarded-Host
and X-Forwarded-Port
in the Nginx webproxy.conf. 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.
After completing your installation, you should now be able to access your Exivity User Portal.
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:
Then go to Advanced System Settings, then click the Environment Variables button:
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:
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:
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" as well as for "foo.example.com".
After confirming the change, make sure to restart both the Exivity Windows Services.
By default, Exivity API 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
Adjust the variables post_max_size and upload_max_filesize to your desired value.
In order to generate PDF documents through the Exivity API, the Chrome browser needs to be installed and the directory where chrome.exe
can be found should be made available in the systems Path
environmental variable. Read how to add a directory to the Path environmental variable.
Depending on your installation method chrome.exe
should be installed in one of those directories:
C:\Program Files\Google\Chrome\Application
C:\Users\{username}\AppData\Local\Google\Chrome\Application
To prevent server overload, generating PDF reports through the API is limited to take 1 minute. Very large reports (e.g. consolidated reports with instance details) may take more time and result in an API error. If that's the case, try generating reports for single accounts or without instance details.
Restart the Exivity API service after making these changes.
Parameter
Description
Default
/EXIVITY_PROGRAM_PATH
Path to Exivity program files
C:\Exivity\program
/EXIVITY_HOME_PATH
Path to Exivity home files
C:\Exiivty\home
/ADMIN_USER
Exivity admin user
admin
/ADMIN_PASSWORD
Exivity admin password
exivity
/PGUSER
PostgreSQL user
postgres
/PGPASSWORD
PostgreSQL password
randomized
/PGHOST
Hostname for PostgreSQL server
localhost
/PGPORT
Port of PostgreSQL server
5432
/PGSSLMODE
Disable or require PostgreSQL SSL communication
disable
/PGDATABASE
Exivity database on PostgreSQL server
exdb
/PGDATA
Location of PostgreSQL data files (only used when installing local database instance)
<exivity_home>\system\pgdata
/PSQL_INSTALLED
1 (install locally) or 0 (do not install)
1
/API_INSTALLED
1 (install locally) or 0 (do not install)
1
/WEB_INSTALLED
1 (install locally) or 0 (do not install)
1
/SCHEDULER_INSTALLED
1 (install locally) or 0 (do not install)
1
/PROXIMITYHOST
Remote API hostname (required when installing Web component only)
localhost
/PROXIMITYPORT
Remote API port (required when installing Web component only)
8002
Exivity can be deployment on a single node, or on multiple nodes for HA and load balancing. This guide walks you trough the steps to install some of the Exivity components on different nodes.
The following diagram outlines the various components that can be deployed on seperate nodes:
PostgreSQL DB
Apart from installing PostgreSQL from the installer, Exivity is compatible with any PostreSQL compatible database engine (PostgreSQL on Linux, Amazon RDS, CockroachDB, etc) in order to achieve High Availability
API/Backend
The API and backend components can be installed on any Windows Server. To achieve HA, it is possible to leverage HA techniques from the underlying hypervisor. Or optionally it is possible to deploy Exivity on an Active/Passive Windows cluster
Web/UI
The Exivity Web application and front end facing component can be deployed on as many instances as you like. In case multiple Web UI instances are required, this will require a load balancer in front of the Exivity Web application. Please note that the load balancer component is not shipped with the Exivity installer. However, Exivity is compatible with most load balancer software suits available (i.e. Nginx, Cisco, F5, AWS ELB, etc)
Exivity highly recommends to deploy your own PostgreSQL database cluster on Linux (or use a managed PSQL service from Azure, AWS or other vendors). To achieve High Availability, any PostgreSQL compatible cluster manager software may be used. At Exivity we have good experiences with pg_auto_failover, which is an open source PostgreSQL on Linux cluster manager (backed by Microsoft) in case you prefer to self-manage the Exivity PostgreSQL database.
When using a PostgreSQL database on a remote host, the database and user must have been created beforehand. To create the database, ask your database administator to execute a database create statement similar to the one below:
CREATE DATABASE exdb WITH OWNER = exadmin TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1;
In case you prefer to install PostgreSQL on Windows, Exivity recommends to install the PostgreSQL role together with the API/Scheduler backend components during the installation wizard.
In order to deploy a API/Backend node, the following steps needs to be executed manually or automatically thru the use of the silent installer CLI interface.
After starting the installer, click Next and provide a valid license key when asked. After clicking Next again, the component screen will be shown:
Ensure to deselect the Web Service component.
Click Next to continue. Then chose a folder for the Exivity program files, and afterwards select a folder for the Exivity home files.
Provide a custom administrator username and password, or leave the default:
Now specify a remote PostgreSQL database instance, or select to install the PostgreSQL database locally on the API/backend node:
When you are finished configuring your PostgreSQL database settings, click the Install button to start the installation process.
Once the installation is finished, ensure to check 'Start the Exivity Windows Services' to start the Exivity services after clicking Finish.
In order to achieve High Availability for the Exivity API/backend node, it is advisable to leverage the HA capabilities of your hypervisor (i.e. vSphere HA). In case you want to achieve OS level HA, you may consider implementing a Windows Failover Cluster. Please reach out to support@exivity.com / support.exivity.com to learn more about this kind of configuration.
The below example will silently install an Exivity API/Backend node while using a remote PostgreSQL database instance:
In order to deploy a Web/UI only node, the following steps needs to be executed manually or automatically thru the use of the silent installer CLI interface.
After starting the installer, click Next and provide a valid license key when asked. After clicking Next again, the component screen will be shown:
Click Next to continue. Then chose a folder for the Exivity program files, and afterwards select a folder for the Exivity home files.
In the following screen, it will be required to specify the remote host and port of your Exivity API node:
Ensure that the Exivity API host is active and accepting connections. After clicking the Next button, the installer will issue a connection attempt to the Exivity API host
Once the installation is finished, ensure to check 'Start the Exivity Windows Services' to start the Exivity services after clicking Finish.
The below example will silently install an Exivity Web/UI node: