flex.bi Enterprise installation guide on CentOS 8
These are instructions for flex.bi Enterprise 6.0 and later. For earlier version please contact flex.bi support.
Information about system requirements for flex.bi Enterprise installation can be found here: Requirements.
Make sure you have set up server entropy to avoid your server from being slow and unresponsive. See our guide for Setting up server entropy using Haveged.
Our default setup
We have chosen Linux CentOS 8 as our default server platform and MySQL/MariaDB as a database engine, so these instruction apply for this specific setup.
However, flex.bi Enterprise can also be installed on older CentOS, Redhat versions as well as other distributions of Linux, by adjusting the available software, it's versions and installation methods. For example using
yum instead of
PostgreSQP instead of
Versions mentioned here are current as of 2021.03.24 - they might of course change in the future.
The following are instructions for flex.bi Enterprise and the required software installation on Centos 8 operating system.
Run the following command to install Java JDK 11:
sudo dnf install java-11-openjdk-develCODE
Run the following command, to test if the result matches the version you installed
MySQL Server installation
The CentOS 8 AppStream repository only contain MySQL 8.0 packages, so, to install MySQL 5.7, we need to do some prep-work.
Disable MySQL default AppStream repository.
sudo dnf remove @mysql sudo dnf module reset mysql && sudo dnf module disable mysqlCODE
Create a new repository file..
sudo vi /etc/yum.repos.d/mysql-community.repoCODE
Paste the following dat into the new repo file.
[mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=0 [mysql-connectors-community] name=MySQL Connectors Community baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/ enabled=1 gpgcheck=0 [mysql-tools-community] name=MySQL Tools Community baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/ enabled=1 gpgcheck=0CODE
Disable MySQL 8 repository.
sudo dnf config-manager --disable mysql80-communityCODE
Enable repository for MySQL 5.7.
sudo dnf config-manager --enable mysql57-communityCODE
Install MySQL 5.7.
sudo dnf install mysql-community-serverCODE
flex.bi Enterprise installation
For security reasons we recommend creating dedicated
flexbiuser. Run the following command to achieve that:
sudo useradd flexbiCODE
Move the flex.bi Enterprise installation
.ziparchive file to
/home/flexbidirectory on your server.
Run the following command to unzip the
.ziparchive file (file name in the example can differ from the actual file depending on the software version):
After the unzip process finishes, you should have a new
/home/flexbi/flexbi_privatedirectory containing the following folders:
app bin config examples lib log public spec tmpCODE
Run the following commands, to ensure that the flex.bi folder and its contents are owned by the user flexbi:
chown -R flexbi:flexbi flexbi_privateCODE
MySQL connector installation
- Download the MySQL JDBC driver version 8.0.23.
Move the downloaded
/home/flexbidirectory on your server and then run the following command to unzip the archive (file name in the example can differ from the actual file depending on the software version):
.jarfile from the newly created folder to the
/home/flexbi/flexbi_private/libdirectory (if it doesn't exist, create it). Run the following command to achieve that (file name in the example can differ from the actual name depending on the software version):
cp mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar flexbi_private/lib/CODE
Setup and configuration
MySQL Server configuration
If you have large amount of records, we suggest to adjust the database engine performance by editing
/etc/my.cnffile using appropriate values.
The following is an example of a good performance configuration that you can insert under the [
mysqld]part of the configuration file:
innodb_buffer_pool_size = 1024M innodb_log_file_size = 256M query_cache_size= 16M query_cache_type = 1 max_connections = 200CODE
If you change the log file size after starting the MySQL server, you have to delete
innodb_buffer_pool_sizeto a level that you can actually afford on your server, taking into account Java and other application memory need
Run the following command to start MySQL Server and ensure that it will be automatically started during server startup:
systemctl enable --now mysqld.serviceCODE
Run the following command, to get the automatically generated MySQL Server
sudo grep 'A temporary password' /var/log/mysqld.log |tail -1CODE
Make note of the password shown on screen.
Start MySQL Secure Installation to change the
rootpassword, Disallow root login remotely, remove anonymous users and remove test database.
Connect to MySQL Database as
rootuser, using the new password.
mysql -u root -pCODE
Run the following commands, to create a flex.bi user named
secretwith the actual password you want to use.)
CREATE USER 'flexbi_private'@'localhost' IDENTIFIED BY 'secret'; GRANT ALL PRIVILEGES ON `flexbi_private%`.* TO 'flexbi_private'@'%' IDENTIFIED BY 'secret'; FLUSH PRIVILEGES;CODE
By default flex.bi Enterprise runs on the port
8080, so you should open ths port in your firewall.
To do this, follow these instructions:
Run the following command to open the port
firewall-cmd --permanent --add-port=8080/tcpCODE
Run the following command to reload the firewall:
Run the following command to check if the port is open:
Google Chrome Installation
flex.bi uses Google Chrome for report exports, so for this feature to work you have to install Google Chrome.
Do do this, follow these instructions:
Get Google Chrome rpm.
Install Google Chrome from the .rpm file you just downloaded.
sudo dnf localinstall google-chrome-stable_current_x86_64.rpmCODE
Centos 8 configuration
To ensure full functionality of the flex.bi Enterprise, you have to change the default Centos 8 crypto policy level to LEGACY.
To do this, run the following command:
update-crypto-policies --set LEGACY
flex.bi Enterprise configuration
The main tool for flex.bi Enterprise configuration is the Configure the
eazybi.toml file located in the
/config folder in your flex.bi direcotry.
Run the following command, to copy the
eazybi.toml.samplefile in the
/configfolder to a new file named
cp /home/flexbi/flexbi_private/config/eazybi.toml.sample /home/flexbi/flexbi_private/config/eazybi.tomlCODE
In a text editor of your choice, open the newly created
eazybi.tomlfile and make the necessary configurations:
Add licence information:
[license] name = "Organization name" key = """ Paste license key here """CODE
Configure general parameters, like, time zone, user registration, account creation etc.
[general] # By default local server time zone will be used. Specify different if necessary. # time_zone = "Europe/Riga" # Uncomment to allow account creation only to system admins. # disable_account_creation = true # Uncomment to disable user registration. # disable_user_registration = true ......CODE
Specify default URL parameters like host and port for accessing your flex.bi Enterprise installation:
[default_url_options] # This example is for the default http://localhost:8080 URL. host = "localhost" port = 8080 # This example is for the https://example.com URL. # host = "example.com" # protocol = "https"CODE
Specify Mailer parameter, to set the e-mail address that will be used as the sender address for communication from the flex.bi Enterprise.
[mailer] from = "email@example.com"CODE
Configure SMPT parameters for sending out e-mails from flex.bi Enterprise.
[mailer.smtp] # address = "smtp.gmail.com" # port = "587" # domain = "example.com" # user_name = "firstname.lastname@example.org" # password = "secret" # authentication = "plain" # enable_starttls_auto = trueCODE
- Add a
systemdinitialization script for starting flex.bi service.
Copy the sample initialization script from the
/bin/systemddirectory of the flex.bi installation folder to the
/etc/systemd/system/directory in your server.
cp /home/flexbi/flexbi_private/bin/systemd/flexbi.service /etc/systemd/system/CODE
Open the file with a text editor of your choice and adjust the configuration to your needs.
# Sample init script for flex.bi [Unit] Description=flex.bi reporting service After=syslog.target network.target [Service] Type=simple # Run the service as this user and group User=flexbi Group=flexbi TimeoutSec=30 # Remember to change /home/flexbi/flexbi_private to the actual home directory of flex.bi in all places WorkingDirectory=/home/flexbi/flexbi_private Environment="RAILS_ENV=production" Environment="EAZYBI_HOME=/home/flexbi/flexbi_private" Environment="EAZYBI_PREFIX=/flexbi" Environment="RUBYOPT=-W0" # Adjust to available memory Environment="JAVA_OPTS=-Xmx1024m -Xms256m -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dorg.eclipse.jetty.LEVEL=OFF -Djava.io.tmpdir=/home/flexbi/flexbi_private/tmp" # Default configuration ExecStart=/usr/bin/java $JAVA_OPTS -Dwarbler.host=localhost -Dwarbler.port=8080 -jar flexbi_private.jar Restart=on-failure StandardOutput=syslog StandardError=syslog SyslogIdentifier=flexbi #LimitNOFILE=10000 [Install] WantedBy=multi-user.targetCODE
Run the following command to start flex.bi service and ensure it is started during server startup:
systemctl enable --now flexbi.serviceCODE
- To ensure secure connection using https protocol, follow instructions in our documentation page HTTPS or SSL setup.
- Once the flexbi.service is started, you should be able to open the previously configured URL in your browser and start using flex.bi Enterprise.