- A tomcat 9 server with required libraries, and base configurations
- The FlexDeploy WAR
- The FlexDeploy database installation scripts
- The FlexDeploy database migration scripts (for upgrading an existing FlexDeploy Tomcat installation)
- The FlexDeploy plugins
Requirements
See FlexDeploy System Requirements for details on software and hardware requirements
Installation Instructions
Adjust for Windows path if you are installing on Windows platform.Step 1. Ensure Java 21 or 17 is installed on the server.
In this example, JAVA_HOME is /u01/java/jdk21 but it can be any path you want.Step 2. Prepare software
FlexDeploy can be downloaded from the Flexagon Support Site. You will download specific version of FlexDeploy, download file is named Tomcat_Complete-X.X.X.X.zip, where X.X.X.X represents four digit version number. Extract the zip file in the desired location (referred to as “FLEXDEPLOY_HOME” in this document). See example below, where zip was extracted in /u01/flexdeploy folder.We recommend use of folder structure without any space in name.

Step 3. Setup database and schemas
Setup the appropriate database, if you not already done so. Manual Installation Instructions - Database Tier - Oracle Manual Installation Instructions - Database Tier - PostgreSQLStep 4. Update Tomcat context.xml
Modify Tomcat configuration file (context.xml) for database connectivity depending on your database type.- Replace the contents of context.xml with the contents the context-<type>.xml if using PostgreSQL.
- Replace URL and Password with the actual values.
Example JDBC URL (CONNECT_STRING)
-
Oracle
-
The JDBC short format of host:sid:port should not be used. URL must be in the format listed below as we are requiring use of UCP based connection pooling.
-
Example -
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=**HOSTNAME**)(PORT=**PORT**)))(CONNECT_DATA=(SERVICE_NAME=**SERVICE_NAME**))) - If RAC is used for the database, multiple nodes can be listed in the address list of the URL or it can point to the scan listener for the cluster. See below sample URL for a RAC implementation that has a primary and secondary scan listener connecting to to a service name GOLD-CLOUD. This includes connection timeout, retry, and retry delay settings.
-
Example -
jdbc:oracle:thin:@(DESCRIPTION = CONNECT_TIMEOUT=120) (RETRY_COUNT=20) (RETRY_DELAY=3) (TRANSPORT_CONNECT_TIMEOUT=3) (ADDRESS_LIST =(LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP) (HOST=primary-scan) (PORT=1521))) (ADDRESS_LIST =(LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP) (HOST=secondary-scan) (PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = gold-cloud)))
-
Example -
-
The JDBC short format of host:sid:port should not be used. URL must be in the format listed below as we are requiring use of UCP based connection pooling.
-
PostgreSQL
- Syntax - jdbc:postgresql://hostname:port/flexdeploy
-
Example -
jdbc:postgresql://dkrlp01:5432/flexdeploy - If you are using database name other than flexdeploy, then update URL accordingly.
Oracle
PostgreSQL
Step 5. (Optional) Update Tomcat server.xml
Modify Tomcat server.xml if necessary. If you want to use different port or setup https, the you would need to update server.xml. File - <FLEXDEPLOY_HOME>/apache-tomcat-flexdeploy/conf/server.xml- By default, the Tomcat server is configured to run on port 8000. If this port is in use, change to some other unused port. Search for <Connector port=“8000” protocol=“HTTP/1.1” if you want to change it.
- There are other ports referenced in the server.xml file as well. If the logs contain a port in use error, you can find the open ports on your machine and then search this file for ports that you find are in use and change them.
Step 6. (Optional) Update setenvoverride
Modify Tomcat Environment script (setenvoverride.sh or setenvoverride.bat) for FlexDeploy server side directories, memory specifications or JAVA_HOME. File - <FLEXDEPLOY_HOME>/apache-tomcat-flexdeploy/bin/setenvoverride.sh (setenvoverride.bat on windows). Main reason to modify this file is to configure specific JAVA_HOME. Other variables can be left as is for default configurations.- Configure variable JAVA_HOME to use specific version of Java for FlexDeploy tomcat process.
- Configure variable FD_APPLICATION_DIRECTORY with directory to use as the FlexDeploy application directory (See System Requirements for more information about how much space is needed.)
- Configure variable FD_REPOSITORY_DIRECTORY with the directory to host the FlexDeploy artifact repository (See System Requirements for more information about how much space is needed.)


Modify Tomcat Environment script (setenvoverride.sh or setenvoverride.bat) for JAVA_HOME. File - <FLEXDEPLOY_HOME>/apache-tomcat-flexdeploy/bin/setenvoverride.sh (setenvoverride.bat on windows)
If JAVA_HOME is already set in your environment, you can skip this step.Unix Example - JAVA_HOME=/u01/java/jdk21Windows Example - set JAVA_HOME=c:/installs/Java/jdk21

Step 7. Update database driver (Only if using Oracle Database)
If FlexDeploy is configured to use an Oracle Database, update the Oracle JDBC driver and its supporting libraries as described below.- Navigate to the Oracle JDBC Driver Downloads page.
- Select the latest supported JDBC driver version compatible with both your Oracle Database version and the Java version (JDK) used by FlexDeploy.
-
Download the complete JDBC driver package, including its companion libraries. For example,
ojdbc17-full.tar.gzfor a compatible JDK 17 or later environment.
UnsupportedClassVersionError, similar to the following:
-
Before completing the upgrade, review the
libextdirectory and remove any outdated or duplicate Oracle JDBC and supporting JAR files. This is especially important if you copied the contents of thelibextdirectory from a previous FlexDeploy installation. Depending on the JDBC driver package, Oracle libraries may include:-
ojdbc8.jar,ojdbc11.jar, orojdbc17.jar -
ucp.jar,ucp11.jar, orucp17.jar -
ons.jar -
oraclepki.jar -
orai18n.jar -
osdt_cert.jar -
osdt_core.jar -
rsi.jar -
simplefan.jar -
xdb.jar -
xmlparserv2.jar
-
-
When upgrading from an older FlexDeploy release, consider removing the existing Oracle JDBC-related libraries and replacing them with a fresh, compatible set from the downloaded driver package. Preserve any unrelated libraries in the
libextdirectory. - Extract the downloaded JDBC driver package.
-
Copy the required JDBC driver and supporting JAR files into the following directory:
<FLEXDEPLOY_HOME>\apache-tomcat-flexdeploy\libext - Oracle Universal Connection Pool (UCP) is required for FlexDeploy connections to Oracle Database. Ensure that the appropriate UCP JAR is included.
- Use JDBC and UCP libraries from the same Oracle driver release to avoid compatibility issues.
Linux
Windows
Step 8. Set execute permission (Linux only)
Set the shell scripts executable with this command.Step 9. Adjust for non-default server side directories
Skip this step if you did not modify setenvoverride for FD_APPLICATION_DIRECTORY in Step 6.
Step 10. Configure Influx database
This is a required step that must be executed.
Linux
ulimit -Hn
will show the open file limit for the current user. Make sure you run it as the user who will be executing FlexDeploy and Influx.
If it is less that 65536, we recommend raising it.
sudo vi /etc/security/limits.conf
where oracle is the user logged into the box to run FlexDeploy:
oracle soft nofile 16384
oracle hard nofile 65536
Windows
Linux
- bolt-path: from <FLEXDEPLOY_HOME>/influxdb/data/influxd.bolt to <FLEXDEPLOY_HOME>/application/vsm/data/influxd.bolt
- engine-path: from <FLEXDEPLOY_HOME>/influxdb/data/engine to <FLEXDEPLOY_HOME>/application/vsm/data/engine
- sqlite-path: <FLEXDEPLOY_HOME>/influxdb/data/influxd.sqlite to <FLEXDEPLOY_HOME>/application/vsm/data/influxd.sqlite
Windows
- bolt-path: from <FLEXDEPLOY_HOME>\influxdb\data\influxd.bolt to <FLEXDEPLOY_HOME>\application\vsm\data\influxd.bolt
- engine-path: from <FLEXDEPLOY_HOME>\influxdb\data\engine to <FLEXDEPLOY_HOME>\application\vsm\data\engine
- sqlite-path: <FLEXDEPLOY_HOME>\influxdb\data\influxd.sqlite to <FLEXDEPLOY_HOME>\application\vsm\data\influxd.sqlite
Setup the config file for FlexDeploy to connect to influxdb.
Create the file <FLEXDEPLOY_HOME>/influxdb/config/fdinflux.config with the following contents, modifed appropriately for your install.Step 11. Start tomcat
If running FlexDeploy 6.0 or higher, do not use startup.sh as this will not start the influx database.
Once influx and tomcat servers are up, we need to run setup on the influx database.

Linux
Windows
Note for Oracle XE Database
After starting your server, check the <FLEXDEPLOY_HOME>/apache-tomcat-flexdeploy/logs/flexdeploy.0.log file for the following error message:
- ORA-12519, TNS:no appropriate service handler found
-
Using SQLPlus update processes setting.
- alter system set processes=200 scope=spfile;
- Stop Tomcat
- Restart the XE Database
- Start Tomcat
Step 12. Launch FlexDeploy in your browser.
-
http://hostname:8000/flexdeploy
- Update hostname in URL to indicate host where FlexDeploy is installed.
- Update port if you had modified server.xml for different port number.
- You will need to complete Initial Registration process, where you will create admin user for login.
Step 13. Verification
Go to Administration - Plugins on FlexDeploy. Verify that Plugins are loaded. You should not see any files remaining in FD_APPLICATION_DIRECTORY**/plugins** folder after a few minutes.Step 14. FlexDeploy configuration
Now that you have installed FlexDeploy, let’s get start with configuration. You can do this in matter of minutes by using Blueprints concept, which is very simple configuration wizard for most common use cases.Related Topics
- Change FlexDeploy process user on Linux
- Enabling HTTPS on FlexDeploy (Tomcat)
- Security Hardening options for FlexDeploy
- Tuning Postgres for better performance if “cold” reads are slow
- FlexDeploy Backups Repository
- Using Amazon RDS for PostgreSQL with FlexDeploy
- Using FlexDeploy with a load Balancer that offloads HTTPS
- Using FlexDeploy to access external services through a proxy
- Enabling HSTS on FlexDeploy (Tomcat)