Installing Flectra¶
There are multiple ways to install Flectra, or not install it at all, depending on the intended use case.
This documents attempts to describe most of the installation options.
- Online
The easiest way to use Flectra in production or to try it.
- Packaged installers
Suitable for testing Flectra, developing modules and can be used for long-term production use with additional deployment and maintenance work.
- Source install
Provides greater flexibility: e.g. allow multiple running Flectra versions on the same system. Good for developing modules, can be used as base for production deployment.
- Docker
If you usually use docker for development or deployment, an official docker base image is available.
Editions¶
There are two different Editions of Flectra: the Community and Professional versions. Using the Professional version is possible on Flectra Online and accessing the code is restricted to Professional customers and partners. The Community version is freely available to anyone.
Online¶
Demo¶
To simply get a quick idea of Flectra, demo instances are available. They are shared instances which only live for a few hours, and can be used to browse around and try things out with no commitment.
Demo instances require no local installation, just a web browser.
Flectra Online¶
Trivial to start with, fully managed and migrated by Flectra S.A., Flectra Online provides private instances and starts out free. It can be used to discover and test Flectra and do non-code customizations (i.e. incompatible with custom modules or the Flectra Apps Store) without having to install it locally.
Can be used for both testing Flectra and long-term production use.
Like demo instances, Flectra Online instances require no local installation, a web browser is sufficient.
Packaged installers¶
Flectra provides packaged installers for Windows, deb-based distributions (Debian, Ubuntu, …) and RPM-based distributions (Fedora, CentOS, RHEL, …) for both the Community and Professional versions.
These packages automatically set up all dependencies (for the Community version), but may be difficult to keep up-to-date.
Official Community packages with all relevant dependency requirements are available on our nightly server. Both Community and Professional packages can be downloaded from our download page (you must to be logged in as a paying customer or partner to download the Professional packages).
Windows¶
Download the installer from our nightly server (Community only) or the Windows installer from the download page (any edition).
Execute the downloaded file.
Warning
On Windows 8 and later you may see a warning titled “Windows protected your PC”.Click on More Info and then on Run anyway.Accept the UAC prompt.
Go through the various installation steps.
Flectra will automatically be started at the end of the installation.
Linux¶
Prepare¶
Flectra needs a PostgreSQL server to run properly. The default configuration for the Flectra ‘deb’ package is to use the PostgreSQL server on the same host as your Flectra instance. Execute the following command in order to install the PostgreSQL server:
$ sudo apt install postgresql -y
Flectra needs a PostgreSQL server to run properly. Make sure that the sudo
command is
available and well configured and, only then, execute the following command in order to
install the PostgreSQL server:
$ sudo dnf install -y postgresql-server
$ sudo postgresql-setup --initdb --unit postgresql
$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql
Repository¶
Flectra S.A. provides a repository that can be used with Debian and Ubuntu distributions. It can be used to install Flectra Community Edition by executing the following commands:
$ wget -q -O - https://nightly.flectra.com/flectra.key | sudo gpg --dearmor -o /usr/share/keyrings/flectra-archive-keyring.gpg
$ echo 'deb [signed-by=/usr/share/keyrings/flectra-archive-keyring.gpg] https://nightly.flectra.com/3.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/flectra.list
$ sudo apt-get update && sudo apt-get install flectra
You can then use the usual apt-get upgrade
command to keep your installation up-to-date.
Flectra S.A. provides a repository that can be used with the Fedora distributions. It can be used to install Flectra Community Edition by executing the following commands:
$ sudo dnf config-manager --add-repo=https://nightly.flectra.com/3.0/nightly/rpm/flectra.repo
$ sudo dnf install -y flectra
$ sudo systemctl enable flectra
$ sudo systemctl start flectra
Note
At this moment, there is no nightly repository for the Professional Edition.
Distribution package¶
Instead of using the repository as described above, the ‘deb’ packages for both the Community and Professional editions can be downloaded from the official download page.
Note
Flectra 3 ‘deb’ package currently supports Debian 11 (Bullseye), Ubuntu 22.04 (Jammy) or above.
Next, execute the following commands as root:
# dpkg -i <path_to_installation_package> # this probably fails with missing dependencies
# apt-get install -f # should install the missing dependencies
# dpkg -i <path_to_installation_package>
This will install Flectra as a service, create the necessary PostgreSQL user and automatically start the server.
Warning
The
python3-xlwt
Debian package does not exists in Debian Buster nor Ubuntu 18.04. This python module is needed to export into xls format.If you need the feature, you can install it manually with:
$ sudo pip3 install xlwt
The
num2words
python package does not exists in Debian Buster nor Ubuntu 18.04. Textual amounts will not be rendered by Flectra and this could cause problems with thel10n_mx_edi
module.If you need this feature, you can install manually with:
$ sudo pip3 install num2words
Instead of using the repository as described above, the ‘rpm’ packages for both the Community and Professional editions can be downloaded from the official download page.
Note
Flectra 3 ‘rpm’ package supports Fedora 36.
Once downloaded, the package can be installed using the ‘dnf’ package manager:
$ sudo dnf localinstall flectra_3.0.latest.noarch.rpm
$ sudo systemctl enable flectra
$ sudo systemctl start flectra
Source install¶
The source “installation” is really about not installing Flectra, and running it directly from source instead.
It can be more convenient for module developers as the Flectra source is more easily accessible than using packaged installation.
It also makes starting and stopping Flectra more flexible and explicit than the services set up by the packaged installations, and allows overriding settings using command-line parameters without needing to edit a configuration file.
Finally it provides greater control over the system’s set up, and allows to more easily keep (and run) multiple versions of Flectra side-by-side.
Fetch the sources¶
There are two ways to obtain the source code of Flectra: as a zip archive or through git.
Archive¶
Community Edition:
Git¶
The following requires Git to be installed on your machine and that you have basic knowledge of Git commands. To clone a Git repository, you must choose between cloning with HTTPS or SSH. If you do not know the difference between the two, the best option is most likely HTTPS. If you are following the Getting started developer tutorial, or plan on contributing to Flectra source code, choose SSH.
Note
The Professional Git repository does not contain the full Flectra source code. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Professional version actually means running the server from the Community version with the addons-path option set to the folder with the Professional version. You need to clone both the Community and Professional repository to have a working Flectra Professional installation. See Editions to get access to the Professional repository.
C:\> git clone https://gitlab.com/flectra-hq/flectra.git
C:\> git clone git@gitlab.com:flectra-hq/flectra.git
$ git clone https://gitlab.com/flectra-hq/flectra.git
$ git clone git@gitlab.com:flectra-hq/flectra.git
$ git clone https://gitlab.com/flectra-hq/flectra.git
$ git clone git@gitlab.com:flectra-hq/flectra.git
Note
The Professional git repository does not contain the full Flectra source code. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Professional version actually means running the server from the Community version with the addons-path option set to the folder with the Professional version. You need to clone both the Community and Professional repository to have a working Flectra Professional installation.
Prepare¶
Python¶
Flectra requires Python 3.7 or later to run. Visit Python’s download page to download and install the latest version of Python 3 on your machine.
During installation, check Add Python 3 to PATH, then click Customize Installation and make sure that pip is checked.
Note
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous versions are not compatible with Flectra.
C:\> python --version
Verify also that pip is installed for this version.
C:\> pip --version
Flectra requires Python 3.7 or later to run. Use your package manager to download and install Python 3 on your machine if it is not already done.
Note
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous versions are not compatible with Flectra.
$ python3 --version
Verify also that pip is installed for this version.
$ pip3 --version
Flectra requires Python 3.7 or later to run. Use your preferred package manager (homebrew, macports) to download and install Python 3 on your machine if it is not already done.
Note
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous versions are not compatible with Flectra.
$ python3 --version
Verify also that pip is installed for this version.
$ pip3 --version
PostgreSQL¶
Flectra uses PostgreSQL as database management system. Download and install PostgreSQL (supported version: 12.0 and later).
By default, the only user is postgres
but Flectra forbids connecting as postgres
, so you need
to create a new PostgreSQL user:
Add PostgreSQL’s
bin
directory (by default:C:\Program Files\PostgreSQL\<version>\bin
) to yourPATH
.Create a postgres user with a password using the pg admin gui:
Open pgAdmin.
Double-click the server to create a connection.
Select
.Enter the username in the Role Name field (e.g.
flectra
).Open the Definition tab and enter the password (e.g.
flectra
), then click Save.Open the Privileges tab and switch Can login? to
Yes
and Create database? toYes
.
Flectra uses PostgreSQL as database management system. Use your package manager to download and install PostgreSQL (supported version: 12.0 and later).
It can be achieved by executing the following:
$ sudo apt install postgresql postgresql-client
By default, the only user is postgres
but Flectra forbids connecting as postgres
, so you need
to create a new PostgreSQL user:
$ sudo -u postgres createuser -s $USER
$ createdb $USER
Note
Because your PostgreSQL user has the same name as your Unix login, you will be able to connect to the database without password.
Flectra uses PostgreSQL as database management system. Use postgres.app to download and install PostgreSQL (supported version: 12.0 and later).
Tip
To make the command line tools bundled with postgres.app
available, make sure to setup your
$PATH
variable by following the Postgres.app CLI Tools Instructions.
By default, the only user is postgres
but Flectra forbids connecting as postgres
, so you need
to create a new PostgreSQL user:
$ sudo -u postgres createuser -s $USER
$ createdb $USER
Note
Because your PostgreSQL user has the same name as your Unix login, you will be able to connect to the database without password.
Dependencies¶
Before installing the dependencies, you must download and install the Build Tools for Visual Studio. When prompted, select C++ build tools in the Workloads tab and install them.
Flectra dependencies are listed in the requirements.txt
file located at the root of the Flectra
community directory.
Tip
It can be preferable to not mix python modules packages between different instances of Flectra or with your system. You can use virtualenv to create isolated Python environments.
Navigate to the path of your Flectra Community installation (CommunityPath
) and run pip on
the requirements file in a terminal with Administrator privileges:
C:\> cd \CommunityPath
C:\> pip install setuptools wheel
C:\> pip install -r requirements.txt
For languages with right-to-left interface (such as Arabic or Hebrew), the package rtlcss
is needed:
Download and install nodejs.
Install
rtlcss
:C:\> npm install -g rtlcss
Edit the System Environment’s variable
PATH
to add the folder wherertlcss.cmd
is located (typically:C:\Users\<user>\AppData\Roaming\npm\
).
Using your distribution packages is the preferred way of installing dependencies. Alternatively, you can install the python dependencies with pip.
For Debian-based systems, the packages are listed in the debian/control file of the Flectra sources.
On Debian/Ubuntu, the following commands should install the required packages:
$ cd /CommunityPath
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
As some of the python packages need a compilation step, they require system libraries to be installed.
On Debian/Ubuntu-based systems, the following command should install these required libraries:
$ sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev
Flectra dependencies are listed in the requirements.txt
file located at the root of
the Flectra community directory.
Note
requirements.txt
are based on their stable/LTS
Debian/Ubuntu corresponding version at the moment of the Flectra release.python3-babel
package version is 2.8.0 in Debian
Bullseye and 2.6.0 in Ubuntu Focal. The lowest version is then chosen in the
requirements.txt
.Tip
It can be preferable to not mix python modules packages between different instances of Flectra or with your system. You can use virtualenv to create isolated Python environments.
Navigate to the path of your Flectra Community installation (CommunityPath
) and run
pip on the requirements file to install the requirements for the current user.
$ cd /CommunityPath
$ pip install -r requirements.txt
For languages with right-to-left interface (such as Arabic or Hebrew), the package rtlcss
is
needed:
Download and install nodejs and npm with your package manager.
Install
rtlcss
:$ sudo npm install -g rtlcss
Flectra dependencies are listed in the requirements.txt
file located at the root of the Flectra
community directory.
Tip
It can be preferable to not mix python modules packages between different instances of Flectra or with your system. You can use virtualenv to create isolated Python environments.
Navigate to the path of your Flectra Community installation (CommunityPath
) and run pip on
the requirements file:
$ cd /CommunityPath
$ pip3 install setuptools wheel
$ pip3 install -r requirements.txt
Warning
Non-Python dependencies need to be installed with a package manager:
For languages with right-to-left interface (such as Arabic or Hebrew), the package rtlcss
is
needed:
Running Flectra¶
Once all dependencies are set up, Flectra can be launched by running flectra-bin
, the
command-line interface of the server. It is located at the root of the Flectra Community directory.
To configure the server, you can either specify command-line arguments or a configuration file.
Tip
For the Professional edition, you must add the path to the professional
addons to the addons-path
argument. Note that it must come before the other paths in addons-path
for addons to be loaded
correctly.
Common necessary configurations are:
PostgreSQL user and password.
Custom addon paths beyond the defaults, to load your own modules.
A typical way to run the server would be:
C:\> cd CommunityPath/
C:\> python flectra-bin -r dbuser -w dbpassword --addons-path=addons -d mydb
Where CommunityPath
is the path of the Flectra Community installation, dbuser
is the
PostgreSQL login, dbpassword
is the PostgreSQL password, and mydb
is the name of the
PostgreSQL database.
$ cd /CommunityPath
$ python3 flectra-bin --addons-path=addons -d mydb
Where CommunityPath
is the path of the Flectra Community installation, and mydb
is the name
of the PostgreSQL database.
$ cd /CommunityPath
$ python3 flectra-bin --addons-path=addons -d mydb
Where CommunityPath
is the path of the Flectra Community installation, and mydb
is the name
of the PostgreSQL database.
After the server has started (the INFO log flectra.modules.loading: Modules loaded.
is printed), open
http://localhost:8069 in your web browser and log in with the base administrator account: Use
admin
for the Email and, again, admin
for the Password. That’s it, you
just logged into your own Flectra database!
Tip
Docker¶
The full documentation on how to use Flectra with Docker can be found on the official Flectra docker image page.