TIBCO EBX® Container Edition is tested with the Docker Engine version 20.10.
Current EBX® Container Edition release was tested with a certified Kubernetes implementation version 1.26 and Red Hat® OpenShift® 4.13.1.
We provides Helm chart samples for EBX® Container Edition that are available on GitHub. See https://github.com/TIBCOSoftware/ebx-container-edition for more information.
To start EBX® with default configuration that includes an embedded H2 database, execute command:
docker run -p 8080:8080 -d ebx:6.2.0
Using a browser, you can connect to EBX® with URL http://localhost:8080 . This will display the first-launch assistant that will help you configure EBX®.
For more information on the first launch assistant, see chapter Initialization and first-launch assistant .
To start EBX® with automatic initialisation on first startup and an embedded H2 database, execute command:
docker run -d -p 8080:8080 \ -e "EBX_FLA_DISABLED=true" \ -e "EBX_INSTALL_ADMIN_PASSWORD=<password>" \ ebx:6.2.0
The EBX® repository will be automatically created on first startup.
Using a browser, you can connect to EBX® with URL http://localhost:8080 . This will display the EBX® login screen. The username for administrator is admin and the password is the one specified in previous command.
Note
It’s possible to specify another username for the administrator. For more information see Automatic repository installation on first launch .
For details a supported browsers see: Supported Web Browsers .
The following command will start a bash shell inside the EBX® container using default user:
docker exec -it <container-id> bash
To connect as root, use command:
docker exec -it --user root <container-id> bash
This chapter describes the environment variables supported by EBX® Container Edition .
All are optional.
For security reasons, one might want to disable the first-launch assistant in all circumstances.
This is achieved by setting environment variable to EBX_FLA_DISABLED to true .
If the repository is not yet initialized and first-launch assistant is disabled, EBX® will automatically trigger its installation if following mandatory variables are provided:
Name | Default | Description |
---|---|---|
EBX_INSTALL_ADMIN_LOGIN | admin | Sets the EBX® administrator login name. This parameter is ignored if repository variable EBX_FLA_DISABLED value is not true or if repository is already initialized. |
EBX_INSTALL_ADMIN_PASSWORD | Sets the EBX® administrator login name. This parameter is mandatory if EBX_FLA_DISABLED value is true and is ignored if repository variable EBX_FLA_DISABLED value is not true or if repository is already initialized. |
Note
If mandatory variables are not provided, EBX® will display an error message.
Example
To automatically install repository launch EBX® using following command:
docker run -d -p 8080:8080 \ -e "EBX_FLA_DISABLED=true" \ -e "EBX_INSTALL_ADMIN_LOGIN=<login-name>" \ -e "EBX_INSTALL_ADMIN_PASSWORD=<password>" \ ebx:6.2.0
Some EBX® features require generating URLs. Specific configuration may be required to achieve this, for example if EBX® is running behind a reverse proxy or on a Kubernetes cluster.
Name | Default | Description |
---|---|---|
EBX_IS_SECURED | If incoming request is HTTPS, "true" is assumed or else "false" is assumed. | If "true", the protocol "HTTPS" is always assumed. This value can be useful if the container is behind a reverse proxy, a firewall or an ingress that takes care of HTTPS encryption. This will also set the EBX authentication cookie to be secure . This means that a user using a modern browser will not be able to log in using HTTP. If "false", the protocol "HTTP" is assumed. |
EBX_AUTHENTICATION_REDIRECT_TO_HTTPS | Default is "false". | If "true" and the incoming request to the login form is HTTP, a redirect occurs to to force HTTPS. This property it should be set to false if the container is behind a reverse proxy, a firewall or an ingress that takes care of HTTPS encryption. |
EBX_HOSTNAME | The host name specified by the incoming HTTP(S) request. | The EBX® server host name. |
EBX_PORT | The port number specified by the incoming HTTP request. | The EBX® server HTTP port number. |
EBX_PORT_SECURED | The port number specified by the incoming HTTPS request. | The EBX® server HTTPS port number. Note HTTPS support must be provided by a reverse proxy or an ingress that takes care of encryption. |
EBX_ROOT_PATH | By default, the context path is empty. | If set, all EBX® urls will be prefixed by this value. The value must have a leading / and must not have a trailing / except if value is / . For example a valid value is /mdm/sales . Setting this variable is useful when running more than one instance of EBX with the same host name. |
EBX_URL_DEFAULT | This environment variable is used when a background task needs to calculate a URL to EBX. It should be set to a full URL without the path component (EBX_ROOT_PATH applies for the path component). For example a valid value is: https://host_name . If EBX_URL_DEFAULT is not specified and EBX_HOSTNAME is specified, a default is calculated with following assumptions: - If EBX_IS_SECURED is true , then HTTPS is assumed with port number equal to EBX_PORT_SECURED (443 is the default). - If EBX_IS_SECURED is false or not set, then HTTP is assumed with port number equal to EBX_PORT (80 is the default). |
For information on supported databases see chapter Supported databases .
By default, an embedded H2 database is used. Data for this H2 database is persisted at location /ebx/data/h2 .
An external database may be configured using following variables:
Name | TIBCO EBX® main configuration file equivalent | Description |
---|---|---|
EBX_DB_FACTORY | ebx.persistence.factory | Specifies the type of database server. |
EBX_DB_URL | ebx.persistence.url | The JDBC URL. Its format is: jdbc:<dialect>://<database_host>:<database_port_number>/<database_name> . |
EBX_DB_USER | ebx.persistence.user | The database user id. |
EBX_DB_PASSWORD | ebx.persistence.password | The database user password. |
For more information on these variables see their TIBCO EBX® main configuration file equivalent in chapter Configuring the EBX® repository .
Note
The container includes JDBC drivers only for H2, PostgreSQL and Microsoft SQL Server. Using other databases that are supported by EBX® requires adding the driver.
For instructions on how to add a driver, see Adding a new JDBC driver .
Example
To start an instance of EBX® that connects to a PostgreSQL database, execute the following command:
docker run -d -p 8080:8080 \ -e "EBX_DB_FACTORY=postgresql" \ -e "EBX_DB_URL=jdbc:postgresql://<database_host>:5432/<database_name>" \ -e "EBX_DB_USER=<user_name>" \ -e "EBX_DB_PASSWORD=<user_password>" \ ebx:6.2.0
This setting is available only if the metadata management feature is activated on the image.
Metadata uses the SQLAlchemy toolkit to connect to its database. The SQLAlchemy toolkit supports most common databases.
By default, an embedded SQLite database is used. Data for this SQLite database is persisted at this location: /ebx/data/sqlite/ebx-metadata-classifier.db .
An external database may be configured using the following variables:
Name | Description |
---|---|
EBX_METADATA_DB_URL | The SQLAlchemy URL. Its format is: <dialect>://<database_host>:<database_port_number>/<database_name> . |
EBX_METADATA_DB_USER | The database user id. |
EBX_METADATA_DB_PASSWORD | The database user password. |
Example
To start an instance of Metadata that connects to a PostgreSQL database, execute the following command:
docker run -d -p 8080:8080 \ -e "METADATA_DB_URL=postgresql://<database_host>:5432/<database_name>" \ -e "METADATA_DB_USER=<user_name>" \ -e "METADATA_DB_PASSWORD=<user_password>" \ ebx:6.2.0
Notes
The Metadata database name ( database_name ) can be the same as Database connectivity .
For information about how to use a specific database API driver and how to escape special characters in the connection URL, please refer to the SQLAlchemy’s documentation.
The H2 database is not supported by SQLAlchemy.
The EBX Mail service can be configured through the following environment variables :
Name | TIBCO EBX® main configuration file equivalent | Default | Description |
---|---|---|---|
EBX_SMTP_HOST | ebx.mail.smtp.host | SMTP server host name. | |
EBX_SMTP_PORT | ebx.mail.smtp.port | SMTP server port number. | |
EBX_SMTP_CONNECTION_TIMEOUT | ebx.mail.smtp.connectionTimeout | 600000 | SMTP socket connection timeout value in milliseconds. |
EBX_SMTP_TIMEOUT | ebx.mail.smtp.timeout | 600000 | SMTP socket read timeout value in milliseconds. |
EBX_SMTP_WRITE_TIMEOUT | ebx.mail.smtp.writeTimeout | 600000 | SMTP socket write timeout value in milliseconds. |
EBX_SMTP_LOGIN | ebx.mail.smtp.login | SMTP server login id. | |
EBX_SMTP_PASSWORD | ebx.mail.smtp.password | SMTP server login password. | |
EBX_SMTP_SSL_ENABLED | ebx.mail.smtp.ssl.activate | true | Enables SSL. Value can be 'true' or 'false'. |
EBX_WORKFLOW_MAIL_SENDER | ebx.manager.workflow.mail.sender | The workflow sender email. If not set, Workflows cannot send notifications. |
More information on the used properties can be found in chapter Activating and configuring SMTP and emails .
Environment variables JAVA_MEMORY_PERCENT may be used to configure the percentage of the container memory that is assigned to the JVM the runs EBX®. It must be an integer value between 0 and 100.
If not set, a default value is used at startup.
Note
This variable is for advanced usage. Setting it too low or too high may cause runtime issues.
Basic authentication for REST services is not enabled by default.
To enable this feature, set environment variable EBX_REST_AUTHENTICATION_BASIC to true .
The environment variable EBX_STAGING_ACTIVATED activates, if value is true , or deactivates, if value is false , the staging feature.
By default, staging is activated.
Two Java property files are currently used to configure EBX®.
On startup EBX® reads property files in the following order:
/opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties
/my_custom/conf/ebx-container.properties
The file /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties sets default EBX® configuration properties for the container.
It should never be modified at runtime as this may prevent easily updating EBX® to a next version, instead use /opt/ebx/conf/ebx-container.properties .
The file /opt/ebx/conf/ebx-container.properties is by default empty. Any property value specified here will override the value set by ebx-default.properties .
This file is useful to change a property at runtime. To change a property at run time, create a new file, for example /my_custom/conf/ebx-container.properties , containing the new property values and mount de parent folder from the host to the container:
docker run -v /my-custom/conf:/opt/ebx/conf -p 8080:8080 -d ebx:6.2.0
For the list of properties supported by EBX® see chapter TIBCO EBX® main configuration file .
This image defines the following volumes:
Location | Description |
---|---|
/ebx/data | The EBX® root directory is located in this volume. It contains EBX® indexes and, when H2 embedded database is used, persisted data. It is recommended to use a high performance volume, for example an SSD. Using a shared network volume, for example a NFS mount, is not recommended and may cause performance and stability issues. |
/ebx/logs | This volume is used for log files. |
/ebx/temp | This volume is used for temporary files. |
Note
The volume /ebx/data should be mapped to a persistent volume even when an external database is used. If not, EBX will have to rebuild its indexes on startup which may considerably increase boot time.
The container is started using user ebx (uid 1500). User ebx’s primary group is root (guid 0).
Note
Red Hat® OpenShift® may use another UID than 1500 when starting the container. For details see Red Hat® OpenShift® documentation.
It may be necessary to configure the Host so that the EBX Container can reserve the resources required by numerous memory-mapped files.
On a Linux OS:
Command ulimit -n should return a value equal or greater than 512000 .
Command sysctl vm.max_map_count should return a value equal or greater than 262144 .
Logs are sent to the stdout and stderr output streams and can be viewed using the following command:
docker logs <container-id>
Logs for both EBX® and Tomcat will be displayed.
Log files are also available under folder /ebx/logs :
EBX® logs files are in folder /ebx/logs/ebx
Tomcat logs files are in folder /ebx/logs/tomcat .