Cómo instalar el software de gestión empresarial Flectra con Nginx en CentOS 8

Flectra es un software de gestión empresarial de código abierto y de nueva generación que combina los sistemas CRM y ERP en un único paquete. Su objetivo es que los usuarios puedan modificar el sistema según sus necesidades empresariales y puedan añadir fácilmente más herramientas para ampliar su negocio. En términos sencillos, Flectra te proporciona una plataforma completa que puedes modificar o configurar fácilmente según tus necesidades. Flectra proporciona muchas funciones, como Contabilidad, Comercio Electrónico, Gestión de Inventarios, Marketing, Gestión de Proyectos, CRM, Informes, Gestión de Vacaciones y muchas más.

En este tutorial, te mostraremos cómo instalar Flectra con Nginx en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8 con un mínimo de 4 GB de RAM.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

En primer lugar, tendrás que actualizar los paquetes de tu sistema a la última versión. Puedes hacerlo con el siguiente comando:

dnf update -y

Después de actualizar todos los paquetes, se recomienda desactivar SELinux en tu sistema. Puedes desactivarlo editando el archivo /etc/selinux/config:

nano /etc/selinux/config

Cambia la siguiente línea:

SELINUX=disabled

Guarda y cierra el archivo y reinicia tu servidor para aplicar los cambios.

Instalar las dependencias de Python

A continuación, tendrás que instalar Python y otras dependencias de Flectra en tu sistema. Puedes instalarlas todas ejecutando el siguiente comando:

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

Una vez instalados todos los paquetes, ejecuta el siguiente comando para instalar el módulo Node.js:

npm install -g less

A continuación, también tendrás que instalar el paquete wkhtmltopdf en tu sistema. Puedes descargarlo desde su página oficial de descargas:

Una vez descargado, instala el archivo descargado con el siguiente comando:

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

Cuando hayas terminado, puedes pasar al siguiente paso.

Instalar PostgreSQL

Flectra utiliza PostgreSQL como base de datos. Por tanto, necesitarás instalarlo en tu servidor. Puedes instalarlo con el siguiente comando:

dnf install postgresql-server -y

Tras instalar el servidor PostgreSQL, inicializa la base de datos con el siguiente comando:

postgresql-setup --initdb --unit postgresql

Deberías obtener la siguiente salida:

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

A continuación, inicia el servicio PostgreSQL y habilítalo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start postgresql
systemctl enable postgresql

A continuación, verifica el estado del servicio PostgreSQL con el siguiente comando:

systemctl status postgresql-12

Deberías obtener la siguiente salida:

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

A continuación, tendrás que crear un nuevo usuario PostgreSQL para Flectra. Puedes crearlo con el siguiente comando:

su - postgres -c "createuser -s flectra"

Una vez que hayas terminado, puedes continuar con el siguiente paso.

Instalar Flectra

Antes de instalar Flectra, tendrás que crear un usuario independiente para Flectra. Puedes crearlo utilizando el siguiente comando:

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

Nota : Asegúrate de que el nombre de usuario debe ser el mismo que el usuario PostgreSQL.

A continuación, inicia sesión con el usuario Flectra y descarga Flectra del repositorio Git con el siguiente comando:

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

A continuación, crea un entorno virtual para Flectra con el siguiente comando:

python3 -m venv my-flectra

A continuación, activa el entorno virtual con el siguiente comando:

source my-flectra/bin/activate

A continuación, instala todos los módulos de Python ejecutando el siguiente comando:

pip3 install -r flectra/requirements.txt

Una vez instalados todos los módulos, desactiva el entorno virtual con el siguiente comando:

deactivate

A continuación, sal del usuario Flectra con el siguiente comando:

exit

Configurar Flectra

En primer lugar, tendrás que crear algunos directorios para los complementos de Flectra, el archivo de configuración y el registro. Puedes crearlos con el siguiente comando:

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

A continuación, cambia la propiedad de los directorios anteriores a flectra utilizando el siguiente comando:

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

A continuación, crea un archivo de configuración de Flectra con el siguiente comando:

nano /etc/flectra/flectra.conf

Añade las siguientes líneas:

[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

Guarda y cierra el archivo cuando hayas terminado.

Crear un archivo de servicio Systemd para Flectra

A continuación, tendrás que crear un archivo de servicio systemd para Flectra para gestionar el servicio Flectra. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/flectra.service

Añade las siguientes líneas:

[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

Guarda y cierra el archivo cuando hayas terminado. A continuación, recarga el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicia el servicio Flectra y habilítalo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start flectra
systemctl enable flectra

Ahora puedes comprobar el estado del servicio Flectra con el siguiente comando:

systemctl status flectra

Si todo va bien, deberías obtener la siguiente salida:

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

Ahora, Flectra se está ejecutando y está a la escucha en el puerto 7073. Puedes verificarlo con el siguiente comando

netstat -plntu | grep 7073

Deberías ver la siguiente salida:

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

Configurar Nginx para Flectra

A continuación, tendrás que configurar Nginx como proxy inverso para Flectra. Así podrás acceder a Flectra utilizando el puerto 80.

En primer lugar, instala el servidor web Nginx utilizando el siguiente comando:

dnf install nginx -y

Tras instalar Nginx, inicia el servicio Nginx y habilítalo para que se inicie al reiniciar el sistema:

systemctl start nginx
systemctl enable nginx

A continuación, crea un nuevo archivo de configuración de host virtual Nginx para Flectra:

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

Añade las siguientes líneas:

#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;
}

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

En este punto, el servidor web Nginx está configurado para servir a Flectra. Ya puedes pasar al siguiente paso.

Acceder a la interfaz web de Flectra

Ahora, abre tu navegador web y escribe la URL http://flectra.your-domain.com. Se te redirigirá a la siguiente pantalla:

Detalles de la base de datos

Introduce la contraseña maestra que has definido en el archivo de configuración, los detalles de la base de datos, el correo electrónico, la contraseña y haz clic en el botón Crear base de datos. Deberías ver el panel de control de Flectra como se muestra en la siguiente pantalla:

Flectra CRM y ERP

Conclusión

Enhorabuena! has instalado correctamente Flectra con Nginx en CentOS 8. Ahora puedes alojar tu propio sistema de información empresarial Flectra y hacer crecer tu negocio con el potente diseño modular de Flectra y sus montones de complementos. Para obtener más información sobre Flectra, puedes leer la documentación oficial de Flectra.

También te podría gustar...