Cloud Software Group, Inc. EBX®
Documentation > Administration Guide > EBX® Container Edition
Navigation modeDocumentation > Administration Guide > EBX® Container Edition

Running the image

Support Policy

Docker

TIBCO EBX® Container Edition is tested with the Docker Engine version 20.10.

Kubernetes

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.

Starting EBX®

First-launch assistant

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 .

Automatic initialization

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 .

Supported browsers

For details a supported browsers see: Supported Web Browsers .

Container access

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

Environment variables

This chapter describes the environment variables supported by EBX® Container Edition .

All are optional.

Disabling First-launch assistant

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 .

Automatic repository installation on first launch

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:

NameDefaultDescription

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

URL configuration

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.

NameDefaultDescription

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

EBX® Database connectivity

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:

NameTIBCO EBX® main configuration file equivalentDescription

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

Metadata database connectivity

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:

NameDescription

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

Email connectivity

The EBX Mail service can be configured through the following environment variables :

NameTIBCO EBX® main configuration file equivalentDefaultDescription

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 .

Memory configuration

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.

Authentication for REST services

Basic authentication for REST services is not enabled by default.

To enable this feature, set environment variable EBX_REST_AUTHENTICATION_BASIC to true .

Staging

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.

Configuration files

Two Java property files are currently used to configure EBX®.

On startup EBX® reads property files in the following order:

File ebx-default.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 .

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

Volumes

This image defines the following volumes:

LocationDescription

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

Linux user and group

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.

Host configuration

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:

Logs access

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 :

Documentation > Administration Guide > EBX® Container Edition