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