Comment installer le logiciel de gestion d’entreprise Flectra avec Nginx sur CentOS 8

Flectra est un logiciel de gestion d’entreprise open-source et de nouvelle génération qui combine les systèmes CRM et ERP en un seul paquet. Son objectif est de permettre aux utilisateurs de modifier le système en fonction de leurs besoins commerciaux et d’ajouter facilement d’autres outils pour faire évoluer leur entreprise. En termes simples, Flectra te fournit une plateforme complète que tu peux facilement modifier ou configurer en fonction de tes besoins. Flectra propose de nombreuses fonctionnalités telles que la comptabilité, le commerce électronique, la gestion des stocks, le marketing, la gestion de projet, le CRM, les rapports, la gestion des congés et bien d’autres encore.

Dans ce tutoriel, nous allons te montrer comment installer Flectra avec Nginx sur CentOS 8.

Conditions préalables

  • Un serveur exécutant CentOS 8 avec un minimum de 4 Go de RAM.
  • Un mot de passe root est configuré dans ton serveur.

Pour commencer

Tout d’abord, tu dois mettre à jour les paquets de ton système avec la dernière version. Tu peux le faire avec la commande suivante :

dnf update -y

Après avoir mis à jour tous les paquets, il est recommandé de désactiver SELinux dans ton système. Tu peux le désactiver en modifiant le fichier /etc/selinux/config :

nano /etc/selinux/config

Change la ligne suivante :

SELINUX=disabled

Enregistre et ferme le fichier puis redémarre ton serveur pour appliquer les modifications.

Installe les dépendances de Python

Ensuite, tu devras installer Python et les autres dépendances de Flectra dans ton système. Tu peux tous les installer en exécutant la commande suivante :

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel -y

Une fois que tous les paquets sont installés, exécute la commande suivante pour installer le module Node.js :

npm install -g less

Ensuite, tu devras aussi installer le paquet wkhtmltopdf dans ton système. Tu peux le télécharger depuis leur page detéléchargement officielle :

Une fois téléchargé, installe le fichier téléchargé avec la commande suivante :

dnf localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpm

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe PostgreSQL

Flectra utilise PostgreSQL comme backend de base de données. Tu devras donc l’installer sur ton serveur. Tu peux l’installer avec la commande suivante :

dnf install postgresql-server -y

Après avoir installé le serveur PostgreSQL, initialise la base de données avec la commande suivante :

postgresql-setup --initdb --unit postgresql

Tu devrais obtenir le résultat suivant :

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Ensuite, démarre le service PostgreSQL et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start postgresql
systemctl enable postgresql

Ensuite, vérifie l’état du service PostgreSQL avec la commande suivante :

systemctl status postgresql-12

Tu devrais obtenir le résultat suivant :

? postgresql-12.service - PostgreSQL 12 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-13 04:39:31 EDT; 7s ago
     Docs: https://www.postgresql.org/docs/12/static/
  Process: 1176 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 1182 (postmaster)
    Tasks: 8 (limit: 12537)
   Memory: 17.3M
   CGroup: /system.slice/postgresql-12.service
           ??1182 /usr/pgsql-12/bin/postmaster -D /var/lib/pgsql/12/data/
           ??1183 postgres: logger   
           ??1185 postgres: checkpointer   
           ??1186 postgres: background writer   
           ??1187 postgres: walwriter   
           ??1188 postgres: autovacuum launcher   
           ??1189 postgres: stats collector   
           ??1190 postgres: logical replication launcher   

Aug 13 04:39:31 centos8 systemd[1]: Starting PostgreSQL 12 database server...
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.136 EDT [1182] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled b>
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.137 EDT [1182] LOG:  listening on IPv6 address "::1", port 5432
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.137 EDT [1182] LOG:  listening on IPv4 address "127.0.0.1", port 5432
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.139 EDT [1182] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.142 EDT [1182] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.161 EDT [1182] LOG:  redirecting log output to logging collector process
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.161 EDT [1182] HINT:  Future log output will appear in directory "log".
Aug 13 04:39:31 centos8 systemd[1]: Started PostgreSQL 12 database server.

Ensuite, tu devras créer un nouvel utilisateur PostgreSQL pour Flectra. Tu peux le créer avec la commande suivante :

su - postgres -c "createuser -s flectra"

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer Flectra

Avant d’installer Flectra, tu devras créer un utilisateur distinct pour Flectra. Tu peux le créer à l’aide de la commande suivante :

useradd -m -U -r -d /opt/flectra -s /bin/bash flectra

Remarque : Assure-toi que le nom d’utilisateur doit être le même que celui de PostgreSQL.

Ensuite, connecte-toi avec l’utilisateur Flectra et télécharge Flectra depuis le dépôt Git avec la commande suivante :

su - flectra
git clone --depth=1 --branch=1.0 https://gitlab.com/flectra-hq/flectra.git flectra

Ensuite, crée un environnement virtuel pour Flectra avec la commande suivante :

python3 -m venv my-flectra

Ensuite, active l’environnement virtuel avec la commande suivante :

source my-flectra/bin/activate

Ensuite, installe tous les modules Python en exécutant la commande suivante :

pip3 install -r flectra/requirements.txt

Une fois que tous les modules sont installés, désactive l’environnement virtuel avec la commande suivante: :

deactivate

Ensuite, quitte l’utilisateur Flectra en utilisant la commande suivante: :

exit

Configurer Flectra

Tout d’abord, tu dois créer des répertoires pour les addons Flectra, le fichier de configuration et le journal. Tu peux les créer à l’aide de la commande suivante :

mkdir /opt/flectra/flectra-custom-addons
mkdir /var/log/flectra
mkdir /etc/flectra
touch /var/log/flectra/flectra.log

Ensuite, change la propriété des répertoires ci-dessus en flectra à l’aide de la commande suivante :

chown -R flectra:flectra /opt/flectra/flectra-custom-addons
chown -R flectra:flectra /var/log/flectra/
chown -R flectra:flectra /etc/flectra

Ensuite, crée un fichier de configuration Flectra avec la commande suivante :

nano /etc/flectra/flectra.conf

Ajoute les lignes suivantes :

[options]
admin_passwd = your-flectra-password
db_host = False
db_port = False
db_user = flectra
db_password = False
logfile = /var/log/flectra/flectra.log
logrotate = True
proxy_mode = True
addons_path = /opt/flectra/flectra/addons, /opt/flectra/flectra-custom-addons

Sauvegarde et ferme le fichier lorsque tu as terminé.

Crée le fichier de service Systemd pour Flectra

Ensuite, tu devras créer un fichier de service systemd pour Flectra afin de gérer le service Flectra. Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/flectra.service

Ajoute les lignes suivantes :

[Unit]
Description=flectra
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=flectra
PermissionsStartOnly=true
User=flectra
Group=flectra
ExecStart=/opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, recharge le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service Flectra et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start flectra
systemctl enable flectra

Tu peux maintenant vérifier l’état du service Flectra avec la commande suivante :

systemctl status flectra

Si tout va bien, tu devrais obtenir le résultat suivant :

? flectra.service - flectra
   Loaded: loaded (/etc/systemd/system/flectra.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-13 05:34:15 EDT; 1min 3s ago
 Main PID: 10917 (python3)
    Tasks: 4 (limit: 25028)
   Memory: 57.9M
   CGroup: /system.slice/flectra.service
           ??10917 /opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf

Aug 13 05:34:15 centos8 systemd[1]: Started flectra.

Maintenant, Flectra est en cours d’exécution et écoute sur le port 7073. Tu peux le vérifier avec la commande suivante :

netstat -plntu | grep 7073

Tu devrais voir la sortie suivante :

tcp        0      0 0.0.0.0:7073            0.0.0.0:*               LISTEN      10917/python3

Configurer Nginx pour Flectra

Ensuite, tu devras configurer Nginx comme proxy inverse pour Flectra. Tu pourras ainsi accéder à Flectra en utilisant le port 80.

Tout d’abord, installe le serveur Web Nginx à l’aide de la commande suivante :

dnf install nginx -y

Après avoir installé Nginx, démarre le service Nginx et active-le pour qu’il démarre au redémarrage du système :

systemctl start nginx
systemctl enable nginx

Ensuite, crée un nouveau fichier de configuration d’hôte virtuel Nginx pour Flectra :

nano /etc/nginx/conf.d/flectra.conf

Ajoute les lignes suivantes :

#flectra server
upstream flectra {
 server 127.0.0.1:7073;
}

server {
   listen 80;
   server_name flectra.your-domain.com;

proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for flectra proxy mode
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header X-Real-IP $remote_addr;

 # log
 access_log /var/log/nginx/flectra.access.log;
 error_log /var/log/nginx/flectra.error.log;

 # Redirect requests to flectra backend server
 location / {
   proxy_redirect off;
   proxy_pass http://flectra;
 }

 # common gzip
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

À ce stade, le serveur Web Nginx est configuré pour servir Flectra. Tu peux maintenant passer à l’étape suivante.

Accéder à l’interface Web de Flectra

Maintenant, ouvre ton navigateur Web et tape l’URL http://flectra.your-domain.com. Tu seras redirigé vers l’écran suivant :

Détails de la base de données

Indique le mot de passe principal que tu as défini dans le fichier de configuration, les détails de la base de données, l’email, le mot de passe et clique sur le bouton Créer une base de données. Tu devrais voir le tableau de bord Flectra comme indiqué dans l’écran suivant :

Flectra CRM et ERP

Conclusion

Félicitations ! Tu as réussi à installer Flectra avec Nginx sur CentOS 8. Tu peux maintenant héberger ton propre système d’information commercial Flectra et développer ton entreprise grâce à la puissante conception modulaire de Flectra et à des tonnes d’add-ons. Pour plus d’informations sur Flectra, tu peux lire la documentation officielle deFlectra.

Vous aimerez aussi...